Hi Martin Looking at the SCR code, this should really work: A component with ignoring configuration policy is not handled if a configuration event arrives whose service.pid matches the component name. You might want to look at the ConfigurationSupport.configurationEvent method.
But you behaviour is probably due to some other effect: Your component is a Delayed Component. Which means, that the component is instantiated when its service is required and disposed off when the service is ungot. Now, this is what happens, probably: * SCR registers component as ServiceFactory service * ConfigurationAdmin gets the service * SCR activates the service * ConfigurationAdmin sends configuration * ConfigurationAdmin ungets service * SCR deactivates services I suggest you define the immediate=true attribute on the component element to make the service an immediate service and preventing SCR from deactivating the service after ConfigurationAdmin used it. Regards Felix Am 29.07.2013 um 13:45 schrieb Martin Ždila: > Hello > > We are using Apache Felix Declarative Services 1.7.0.SNAPSHOT. I have > question about following configuration: > > <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" > name="SomeName" configuration-policy="ignore"> > <service> > <provide interface="org.osgi.service.cm.ManagedServiceFactory"/> > </service> > ... > </scr:component> > > If I create multiple configurations of SomeName, where SomeName is > also factory configuration PID, SCR calls SomeName component activator > immediately followed by calling its deactivator, for every > configuration. It is caused probably by providing > org.osgi.service.cm.ManagedServiceFactory service and I think this > behavior is buggy. > > Properties passed to activator includes only three fields > (service.pid, component.name, component.id) and all other fields > present in configuration are hidden, regardless of > configuration-policy. Behavior is same if I omit configuration-policy > attribute. > > I would expect that configuration should be in case > configuration-policy="ignore" ignored completely. What I want to > achieve is to register org.osgi.service.cm.ManagedServiceFactory as > component but I want SCR to ignore configurations and leave > configuration manager to pass it to ManagedServiceFactory update > method. Is this possible? > > Note that I really don't want to have multiple components - one for > every coniguration. I only want to register only one service extending > ManagedServiceFactory that handles configurations on its own. > Workaround it to create component that in activator registers > ManagedServiceFactory manually. > > Thanks in advance > > Best regards > -- > Ing. Martin Ždila > Senior Analyst / Developer > > M-Way Solutions Slovakia s.r.o. > Letná 27, 040 01 Košice > Slovakia > > tel:+421-908-363-848 > mailto:[email protected] > http://www.mwaysolutions.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

