Hi Xilai, If Service1 bundle exports package with my.ServiceListenerImpl, my.ClientListenerImpl (package my), it is not necessary to register ServerListener OSGi service in same bundle (Service1). You can do it in other bundle, that imports package my and provides appropriate spring/bluepring configuration.
Regards, Andrei. -----Original Message----- From: XiLai Dai [mailto:[email protected]] Sent: 09 July 2012 10:07 To: [email protected] Subject: RE: How to register ServerLifeCycleListener/ClientLifeCycleListener accoss multi cxf bus? 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. 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
