This is great. Let us know if you need anything or have suggestions. Also make sure to try out the Pax Exam 3 Milestones. 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:34 PM, neeraj bhusare <[email protected]>wrote: > Thanks. Now it makes more sense. > > --- > Best regards, Neeraj > > > > On Thu, Sep 6, 2012 at 3:25 PM, Toni Menzel <[email protected]>wrote: > >> Injecting the service itself is of cause a shortcut. I was unsure what >> you wanted to test. >> I understand you are just getting into it, its possibly best to go step >> by step: >> - my test uses the native container rather than paxrunner container (you >> can switch back to paxrunner if desired but its not recommended as this >> will go away in Pax Exam 3) >> - I upgraded to Pax Exam 2.5 >> - Used Felix instead of Eclipse >> >> Thats roughly about it. So you should just look at the consumer pom.xml >> and understand the dependencies. >> Native Container (pax-exam-container-native) needs a concrete OSGi >> framework, so i added felix. You can also use equinox if wanted. Just look >> it up on search.maven.org. >> >> >> 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 11:48 AM, neeraj bhusare >> <[email protected]>wrote: >> >>> 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 >>> >>> >> >> _______________________________________________ >> 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
