On Monday, July 09, 2012 08:06:49 AM XiLai Dai wrote: > Thanks Andrei! > > You're right about 1) but I don't want to make any change to the Service1 > bundle. I found a way adding the META-INF/cxf/bus-extensions.txt to the > ServerLifeCycleListener/ClientLifeCycleListener bundle. Seems it works > but need more test.
Starting with CXF 2.6, you shouldn't need to modify the Service1 bundle. Any of the lifecycle things registered as OSGi services will automatically get picked up and used by all bundles. The bus-extensions.txt definitely works, but of course that needs a default/bus constructor and no real ability to configure the objects very easily (or requires more work). Dan > > Xilai > -----Original Message----- > From: Andrei Shakirin [mailto:[email protected]] > Sent: Monday, July 09, 2012 3:48 PM > To: [email protected] > Subject: RE: How to register > ServerLifeCycleListener/ClientLifeCycleListener accoss multi cxf bus? > > Hi XiLai, > > Two things: > > 1) Up to CXF 2.5.1 to register ServerLifecycleListener in OSGi environment > it is enough to export OSGi service implemented > org.apache.cxf.endpoint.ServerLifeCycleListener interface. In spring it > looks like: > > <bean id="serverListener" class="org.mypackage.MyServerListener"/> > <osgi:service ref=" serverListener > " interface="org.apache.cxf.endpoint.ServerLifeCycleListener" /> > > 2) If you register service endpoint in another project/bundle and deploy > both bundles into container, call of your Server Listener will depend on > bundles startup order: if bundle with server listener is started first, > it will be called when endpoint from another bundle is registered. > Otherwise server listener will not be called. In my case I guaranteed the > startup order using OSGi service references. > > Regards, > Andrei. > > -----Original Message----- > From: XiLai Dai [mailto:[email protected]] > Sent: 09 July 2012 07:22 > To: [email protected] > Subject: How to register ServerLifeCycleListener/ClientLifeCycleListener > accoss multi cxf bus? > > Hi, > > There are impls for ServerLifeCycleListener/ClientLifeCycleListener within > one bundle with spring configuration: > > <bean id="serviceListenerImpl" class="my.ServiceListenerImpl" /> <bean > id="clientListenerImpl" class="my.ClientListenerImpl" /> > > And there has a Service1 project which has a jaxws:endpoint with spring > configuration like this: <import > resource="classpath:META-INF/cxf/cxf.xml"/> > > <jaxws:endpoint id="service1" > implementor="#Service1Impl" > address="/service1"> > </jaxws:endpoint> > > All these bundles can be deployed into OSGi container. My question will > be: without modification to Service1 project, how to add the > serviceListenerImpl to the bus of Service1? > > Thanks in advance! > Xilai -- Daniel Kulp [email protected] - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com
