felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clement Escoffier (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-222) iPOJO should automatically propagate configuration properties as service properties, per CM spec.
Date Mon, 05 Mar 2007 10:25:50 GMT

    [ https://issues.apache.org/jira/browse/FELIX-222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12477967
] 

Clement Escoffier commented on FELIX-222:
-----------------------------------------

iPOJO does not propagate property received by the ManagedServiceFactory. Some of these properties
can be private, and must not be published inside service registration. 

However, an iPOJO instance can be dynamically re-configured if exposing the ManagedService.
In this case, the component instance say : "I am re-configurable via the configuration admin,
and updated properties will be propagated to my service registrations". To allow this behavior,
put configurable="true" in the "properties" element.
<properties configurable="true">
  <property ..../>
  <property .../>
</properties>

I don't think that configurable="true" is the good way to say this. If somebody has a better
word (perhaps reconfigurable is better).


> iPOJO should automatically propagate configuration properties as service properties,
per CM spec.
> -------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-222
>                 URL: https://issues.apache.org/jira/browse/FELIX-222
>             Project: Felix
>          Issue Type: Improvement
>          Components: iPOJO
>         Environment: Not relevant.
>            Reporter: Steven E. Harris
>
> The Configuration Admin Service Specification advises in Section 104.4.3, Property Propagation,
that:
>   An implementation of a Managed Service should copy all the properties of the Dictionary
object
>   argument in updated(Dictionary), known or unknown, into its service registration properties
>   using ServiceRegistration.setProperties.
> It looks like iPOJO does some of this propagation for a ManagedService in ConfigurationHandler.updated()
around line 256, apparently only propagating the properties not known as "configurable properties".
However, I think this reading of the specification may be too literal, in that iPOJO does
not do the same propagation of the initial properties provided to a ManagedServiceFactory.
> ComponentManager implements ManagedServiceFactory. In its updated(String, Dictionary)
method, it calls on createComponentInstance(), which then calls on InstanceManager.configure(),
which lets each Handler take its turn configuring the new instance. Of particular interest
here is ProvidedServiceHandler.configure(). It only exposes properties defined in <property>
elements inside the <provides> element of a component metadata specification. Any properties
provided in the initial configuration not defined beforehand in the metadata are ignored and
not published as service properties.
> The CM specification does note:
>   A configuration target service may ignore any configuration properties it
>   does not recognize, or it may change the values of the configuration properties
>   before these properties are registered. Configuration properties in the
>   Framework service registry are not strictly related to the configuration
>   information.
> This seems to contradict the advice in the first paragraph, perhaps just clarifying that
compliance is not mandatory. What would be useful is some directive on the <provides>
element that would allow all unknown configuration properties to be propagated as service
properties. At present, this propagation must be done manually by defining each service property
under the <provides> element, which makes it impossible to ever propagate an unknown
configuration property.
> Finally, though the CM specification does talk about "a Managed Service" and mentions
the single-argument updated(Dictionary) method, the rest of the text in Section 104.4.3 sounds
as though it's describing how both ManagedService and ManagedServiceFactory should work.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message