Hello,

I am not sure that it's compliant with the SCR specification (in fact, I am sure that it's not compliant), but I implement the config admin support in iPOJO as following :
- (Public) Component factory exposes ManagedServiceFactory
- Component Instance can be created (and deleted) by using the ManagedServiceFactory - Component Instance does not directly exposed ManagedService. Indeed, the exposed pid and the pid who create the instance are the same, and the config admin does not suport this case. The reconfiguration of the instance must use the ManagedServiceFactory, but as you mentioned this update is called asynchronously.

The problem of this strategy in iPOJO is that instances created by private factories are not configurable. An extension of this way could be : if an instance want to be configurable, and the ManagedServiceFactory is not exposed (private factory), the instance can exposes ManagedService. I don't implement this extension because it seems to be difficult to understand (and to use).

Clement


Felix Meschberger a écrit :
Hi all,

I am currently integrating support for Configuration Admin Service into the
Felix Declarative Service implementation (o.a.f.scr). This includes
providing the configuration from Configuration Admin to the component.

The issue I stumbled upon is the question of how to get at the configuration
to be provided to components. There are two ways to get these: (1) call
ConfigurationAdmin.getConfiguration(String pid) and (2) register a
ManagedService and have its updated(Dictionary) method called (I assume the
ManagedFactory situation is comparable, hence I ignore it for now).

The problem with the first method is, that the ConfigurationPlugins are not
called (I interpret this from the sentence "If a bundle needs to force a
Configuration plugin service to be called again, it must fetch the
appropriate Configuration object from the Configuration Admin Service and
call the update() method (the no parameter version) on this object" in
Section 104.9.4, Forcing a Callback). The problem with the second method is,
that the configuration update must be executed asynchronously.

What shall I do in the SCR ? Should I ignore the Configuration Plugin
services and use the "simple" getConfiguration method or do I have to
support this (nasty) asynchronous situation ?

What is the intention of the Specification here ?

Thanks alot for any clarifications.

Regards
Felix



--
Clement Escoffier
Grenoble University
LSR - Bat. C
220, Rue de la Chimie
BP 53
38041 GRENOBLE CEDEX 9
04.76.51.40.24
http://clement.plop-plop.net


Reply via email to