Hi Felix

Thanks for your help, now it works :-)

Just for curiosity, is it possible to have @Component implementing
ManagedFactory so that component has separate configuration PID from
that of ManagedFactory? In other words configuration with PID A would
be passed to @Activate/@Modified methods and configurations with PID B
be passed to ManagedServiceFactory.updated?

Best regards

On Mon, Jul 29, 2013 at 2:26 PM, Felix Meschberger <[email protected]> wrote:
> 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]
>



-- 
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]

Reply via email to