[ https://issues.apache.org/jira/browse/DOSGI-73?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Schneider resolved DOSGI-73. -------------------------------------- Resolution: Fixed Assignee: Christian Schneider Fix Version/s: 2.0.0 I switched the tests to DS and can not observe this problem anymore. I guess this was fixed in scr. > OSGi Declarative Service-based consumer does not register proxy service on > demand > --------------------------------------------------------------------------------- > > Key: DOSGI-73 > URL: https://issues.apache.org/jira/browse/DOSGI-73 > Project: CXF Distributed OSGi > Issue Type: Bug > Components: DSW > Affects Versions: 1.2 > Environment: Equinox 3.6 with DS > Reporter: David Bosschaert > Assignee: Christian Schneider > Fix For: 2.0.0 > > > When using OSGi Declarative Services (DS) you can express interest in an OSGi > service through an XML descriptor, like this one (from the samples/ds demo): > {code:xml}<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" > name="DS Consumer Sample" activate="start"> > <implementation > class="org.apache.cxf.dosgi.samples.ds.consumer.AdderConsumer"/> > <reference interface="org.apache.cxf.dosgi.samples.ds.AdderService" > name="AdderService" cardinality="1..1" policy="dynamic" bind="bindAdder" > unbind="unbindAdder"/> > </scr:component>{code} > The declarative services implementation will then inject your service into > your component. > With CXF-DOSGi a remote service is always registered on-the-fly when a > service is requested. This is done through a ListenerHook. The listenerhook > gets called with the filter of services that are looked up by a consumer, > e.g. what the consumer passed in to a ServiceTracker. > It seems like the DS implementation uses a single tracker or listener for all > the services it's interested in, which probably uses an empty filter. This is > currently ignored by the CXF-DOSGi listener hook implementation, which means > that the AdderService proxy is not automatically injected in the component. > There is a workaround. Simply create a bundle (any bundle) in the consumer > that registers a service tracker to listen for the service that you want to > be discovered remotely. -- This message was sent by Atlassian JIRA (v6.3.4#6332)