Hi, I modified code as you suggested. Removed the activator logic and converted it into simple bean. The bundle when starts it does activate the spring framework which instantiates the beans and does DI. The client bean is now POJO and its instantiated upon bundle start and destroyed on bundle stop. Also the service reference is being set fine.
Now I have question on usage of osgi container like felix. can I use it as middle tier for ejbs like the service bean made available to tomcat instance running outside felix via jndi lookup ? Regards, Miten. ________________________________ From: Chetan Mehrotra <[email protected]> To: miten mehta <[email protected]> Cc: "[email protected]" <[email protected]> Sent: Tuesday, May 29, 2012 3:54 PM Subject: Re: activator with dependency injection for service Not sure about your usecase here. But as I said you can configure Spring call any method of the ActivatorClient class of yours upon bean factory initialization which would happen once your bundle is activated. And in that call you can perform required invocation Chetan Mehrotra On Tue, May 29, 2012 at 10:36 AM, miten mehta <[email protected]> wrote: Hi, > > >Then how will I invoke the bean ? I thought that if I start/stop module the >activator start/stop happens and I can then invoke the remote method from >service reference in activator. > > >Basically I have trying to write a client bean which can do a call to another >osgi module service (spring dm bean). > > >Regards, > > >Miten. > > > >________________________________ > From: Chetan Mehrotra <[email protected]> >To: [email protected]; miten mehta <[email protected]> >Sent: Tuesday, May 29, 2012 9:22 AM >Subject: Re: activator with dependency injection for service > > > >The activator instance is created by OSGi framework itself outside of Spring. >Hence you would not be able to access services via DI. The one created through >your entry in spring cofig is a different instance. Instead you can remove >activator entry from your pom.xml and rely on Spring itself to call lifecycle >methods like init and destroy > ><bean id="client" class="org.springframework. >osgi.samples.ActivatorClient" scope="singleton" init="activate" >destroy="deactivate"> > <property name="service" ref="simpleServiceOsgi"/> ></bean> > >Chetan Mehrotra > > > >On Mon, May 28, 2012 at 10:17 PM, miten mehta <[email protected]> wrote: > >Hi, >> >>I am trying to use spring dm in felix for doing a client module with >>activator in which I wanting to do dependency injection of service. I am not >>getting the service set. It gives Null pointer. could one guide if I am >>doing things right ? >> >> >>spring/bean_config.xml >>------------------------ >> >><?xml version="1.0" encoding="UTF-8"?> >><beans xmlns="http://www.springframework.org/schema/beans" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns:osgi="http://www.springframework.org/schema/osgi" >> xsi:schemaLocation="http://www.springframework.org/schema/beans >>http://www.springframework.org/schema/beans/spring-beans.xsd >> http://www.springframework.org/schema/osgi >>http://www.springframework.org/schema/osgi/spring-osgi.xsd"> >> >> >> >> <osgi:reference id="simpleServiceOsgi" >>interface="org.springframework.osgi.samples.simpleservice.MyService"></osgi:reference> >> >><bean id="client" class="org.springframework.osgi.samples.ActivatorClient" >>scope="singleton"> >> <property name="service" ref="simpleServiceOsgi"/> >></bean> >> >></beans> >> >> >>pom.xml snippet: >>----------------- >><plugin> <!-- (2) START --> >> <groupId>org.apache.felix</groupId> >> <artifactId>maven-bundle-plugin</artifactId> >> <extensions>true</extensions> >> <configuration> >> <instructions> >> <!-- >>>Export-Package>org.springframework.osgi.samples.simpleservice</Export-Package >> --> >> >> >><Private-Package>org.springframework.osgi.samples</Private-Package> >> >><Bundle-Activator>org.springframework.osgi.samples.ActivatorClient</Bundle-Activator> >> >> </instructions> >> </configuration> >> </plugin> > > >

