Thank you very much. In addition to your changes, I have injected the
service (@Inject HelloWorldService service) and it worked fine. I
understand the changes you have made, but I still don't understand what was
wrong in my code. Do  you have any pointers that might help me understand
what was the issue. From my side I am also going through the PAX EXAM
documentation.

NOTE: I had made the changes you had recommended in your previous reply and
tested the same, which for some reason didn't work.
---
Best regards, Neeraj



On Thu, Sep 6, 2012 at 2:24 PM, Toni Menzel <[email protected]> wrote:

> Here are my changes. You can also download as ZIP if you don't like Git:
> https://github.com/tonit/temp-paxexam-neeraj
>
> --
> Toni Menzel | Founder | Rebaze GmbH
> [email protected] | www.rebaze.com
> Access To Alien Technology: Great software needs a great foundation. We
> help unlocking the next level in technology.
> Rebaze Pass for Maven <http://goo.gl/1YLlt>, Rebaze Pass for 
> OSGi<http://goo.gl/WP8XT>
> , Rebaze Pass for Neo4j <http://www.rebaze.com/services/>, Rebaze Pass
> for Jenkins <http://www.rebaze.com/services/>
>
>
>
> On Thu, Sep 6, 2012 at 10:38 AM, Toni Menzel <[email protected]>wrote:
>
>> I will push my changes to your code later and let you know. There you can
>> review.
>>
>>
>>
>> On Thu, Sep 6, 2012 at 10:34 AM, neeraj bhusare 
>> <[email protected]>wrote:
>>
>>> Thanks for the review. I made the changes to the publisher pom, and the
>>> generated manifest now has the metadata about the bundle activator. In
>>> addition, I also added "org.neclipse.helloworld.service" in the imported
>>> packages, which was missing. But still the publish bundle stays in the
>>> Installed (ID=2) state and the service is not registered.
>>>
>>> >Also be aware that the service might not have been published already
>>> when the test is called. At best consume with a >service tracker or similar.
>>>
>>> Assuming that the service is not published, the test will fail and I am
>>> ok with that for now. What I don't understand is that the publish bundle
>>> doesn't go into the starting/active state. I had read that the bundle might
>>> stay in the Installed state if its dependencies are not resolved. But that
>>> doesn't seem to be the case. Could there be anything else causing the issue.
>>>
>>> For now, I plan to use the simple BundleContext#registerService() and
>>> BundleContext#getServiceReference api. I'll use the DS approach sometime
>>> later. I assume this has nothing to do with the bundle remaining in
>>> installed state.
>>>
>>> Thanks again for the review and posting your findings. I'll make the
>>> changes you suggested.
>>> ---
>>> Best regards, Neeraj
>>>
>>>
>>>
>>> On Thu, Sep 6, 2012 at 12:53 PM, Toni Menzel <[email protected]>wrote:
>>>
>>>> Also be aware that the service might not have been published already
>>>> when the test is called. At best consume with a service tracker or similar.
>>>>
>>>> Please note: this message sent from a Mobile device.
>>>> On Sep 6, 2012 9:04 AM, "Toni Menzel" <[email protected]> wrote:
>>>>
>>>>> Hi Neeraj,
>>>>>
>>>>> You are never publishing the service because the activator is not
>>>>> called.
>>>>> Add
>>>>>
>>>>>  
>>>>> <Bundle-Activator>org.neclipse.helloworld.publish.HelloWorldActivator</Bundle-Activator>
>>>>> to the manifest of your publisher or use some other meaning of
>>>>> automatically publish the service (DS,Blueprint etc).
>>>>>
>>>>> Other than the problem itself, here are some more findings after
>>>>> reviewing your example code:
>>>>> - Upgrade to Pax Exam 2.5
>>>>> - Is there a particular reason you are using paxrunner container ? Try
>>>>> the Native Container. Much faster. Gives you more options choosing the
>>>>> framework.
>>>>> - Never(!) use artifact.version=0.0.1 in development iteration.
>>>>> Instead, you are always using -SNAPSHOT versions (e.g. 0.0.1-SNAPSHOT).  A
>>>>> released version (everything non snapshot) is assumed to never change. 
>>>>> Just
>>>>> leads you into trouble.
>>>>>
>>>>> Let me know if this works for you.
>>>>> Toni
>>>>>
>>>>> Toni Menzel | Founder | Rebaze GmbH
>>>>> [email protected] | www.rebaze.com
>>>>> Access To Alien Technology: Great software needs a great foundation.
>>>>> We help unlocking the next level in technology.
>>>>> Rebaze Pass for Maven <http://goo.gl/1YLlt>, Rebaze Pass for 
>>>>> OSGi<http://goo.gl/WP8XT>
>>>>> , Rebaze Pass for Neo4j <http://www.rebaze.com/services/>, Rebaze
>>>>> Pass for Jenkins <http://www.rebaze.com/services/>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Sep 6, 2012 at 12:32 AM, neeraj bhusare <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> I have some problems sharing the project via Github. Could you please
>>>>>> take a look at the attached project zip. Also, please ignore the
>>>>>> typos in my previous post. I meant, I had tried using #start(),
>>>>>> #start(true)...
>>>>>>
>>>>>>
>>>>>> Thanks in advance.
>>>>>> ---
>>>>>> Best regards, Neeraj
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Sep 6, 2012 at 1:46 AM, Toni Menzel 
>>>>>> <[email protected]>wrote:
>>>>>>
>>>>>>> Can you share example code ? Best via Github?
>>>>>>>
>>>>>>> --
>>>>>>> Toni Menzel | Founder | Rebaze GmbH
>>>>>>> [email protected] | www.rebaze.com
>>>>>>> Access To Alien Technology: Great software needs a great
>>>>>>> foundation. We help unlocking the next level in technology.
>>>>>>> Rebaze Pass for Maven <http://goo.gl/1YLlt>, Rebaze Pass for 
>>>>>>> OSGi<http://goo.gl/WP8XT>
>>>>>>> , Rebaze Pass for Neo4j <http://www.rebaze.com/services/>, Rebaze
>>>>>>> Pass for Jenkins <http://www.rebaze.com/services/>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Sep 5, 2012 at 9:59 PM, neeraj bhusare <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> I am working on a small example project that has two bundles. The
>>>>>>>> first bundle publishes a service and the second contains the test that
>>>>>>>> tries to read/test the presence of the service in one of its @Test 
>>>>>>>> methods.
>>>>>>>> I also iterate through the list of installed bundles and print their 
>>>>>>>> state.
>>>>>>>> All the bundles, except the first bundle (that exposes the service) 
>>>>>>>> are in
>>>>>>>> the Active state. I have tried using #state(), #state(true) but the 
>>>>>>>> state
>>>>>>>> of the bundle remains the same (Installed). Unless the bundle goes into
>>>>>>>> Starting/Active state, the services won't get registered and I can't 
>>>>>>>> test
>>>>>>>> it.
>>>>>>>> I have tried installing the first bundle separately using the OSGi
>>>>>>>> console and it works fine. The services are registered properly. But 
>>>>>>>> the
>>>>>>>> same doesn't work when the bundle is provisioned in the test. Am I 
>>>>>>>> missing
>>>>>>>> something here?
>>>>>>>>
>>>>>>>> Thanks in advance.
>>>>>>>> ---
>>>>>>>> Best regards, Neeraj
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> general mailing list
>>>>>>>> [email protected]
>>>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> general mailing list
>>>>>>> [email protected]
>>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> general mailing list
>>>>>> [email protected]
>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>
>>>>>>
>>>>>
>>>> _______________________________________________
>>>> general mailing list
>>>> [email protected]
>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>
>>>>
>>>
>>> _______________________________________________
>>> general mailing list
>>> [email protected]
>>> http://lists.ops4j.org/mailman/listinfo/general
>>>
>>>
>>
>
> _______________________________________________
> general mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/general
>
>
_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to