Hi Christian, The code I'm using is available at https://github.com/sneakybeaky/DOSGi-Spike and I've added details to the README about how to recreate.
Thanks, Jon. On Mon, May 13, 2013, at 11:48 PM, Christian Schneider wrote: > I think the patch will not work for your problem as you only register > the service once. > > I will try to recreate the problem on my system. > > Christian > > Am 13.05.2013 21:36, schrieb Jon Barber: > > Hi, > > > > I applied that patch, built as 1.5.0-SNAPSHOT and loaded into a running > > Karaf instance. Same issue - this doesn't seem to fix the problem. > > > > Jon. > > > > On Mon, May 13, 2013, at 04:36 PM, Sergey Beryozkin wrote: > >> Hi > >> > >> Please watch the following JIRA: > >> > >> https://issues.apache.org/jira/browse/DOSGI-177 > >> > >> it even has a patch attached, so will be fixed for DOSGi 1.5 > >> > >> Sergey > >> On 13/05/13 16:03, Jon Barber wrote: > >>> Hi, > >>> > >>> I have a simple OSGi service I've exposed via CXF DOSGi 1.4.0 using > >>> Karaf 2.2.11 - it's pretty much a straight copy from the discovery > >>> sample from the 1.4.0 release of cxf-dosgi. The service is exposed by > >>> the bundle activator as follows : > >>> > >>> private ServiceRegistration reg; > >>> > >>> public void start(BundleContext bc) throws Exception { > >>> Dictionary<String, Object> props = new Hashtable<String, > >>> Object>(); > >>> > >>> String host = getHostName(); > >>> int port = getPort(); > >>> > >>> String address = getAddress(host,port); > >>> LOG.info("Registering ws address {}",address); > >>> > >>> props.put("service.exported.interfaces", "*"); > >>> props.put("service.exported.configs", "org.apache.cxf.ws"); > >>> props.put("org.apache.cxf.ws.address", address); // old obsolete > >>> value > >>> props.put("endpoint.id", address); > >>> > >>> reg = bc.registerService(PingService.class.getName(), > >>> new SimplePingService(), props); > >>> } > >>> > >>> public void stop(BundleContext bc) throws Exception { > >>> LOG.info("Unregistering ping service"); > >>> > >>> reg.unregister(); > >>> } > >>> > >>> > >>> And sure enough it gets registered as a SOAP service and I can see it in > >>> zookeeper too. However, when I stop the bundle the service is indeed > >>> removed in the local OSGi registry but I can still access the SOAP > >>> endpoint, and it's still visible in zookeeper too. Furthermore, if I > >>> re-activate the bundle the service is now available on the old endpoint > >>> and the new one. > >>> > >>> So either my understanding is wrong (I would have thought unregistering > >>> the service would remove the SOAP service too) or there's a bug in > >>> DOSGi, or I'm missing something / doing something wrong. > >>> > >>> Could someone give some guidance please ? > >>> > >>> Thanks, > >>> > >>> Jon. > >> > >> -- > >> Sergey Beryozkin > >> > >> Talend Community Coders > >> http://coders.talend.com/ > >> > >> Blog: http://sberyozkin.blogspot.com > > > -- > > Christian Schneider > http://www.liquid-reality.de > > Open Source Architect > Talend Application Integration Division http://www.talend.com >
