aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet (JIRA)" <>
Subject [jira] [Commented] (ARIES-1578) blueprint-cm doesn't support
Date Fri, 26 Aug 2016 09:19:20 GMT


Guillaume Nodet commented on ARIES-1578:

I don't think using a static map is a good idea.
The code is problematic because of the use of CmUtils.getConfiguration to retrieve the initial
configuration, but we should be able to remove it since the  ManagedService#update method
is guaranteed to be called by ConfigAdmin.

> blueprint-cm doesn't support
> --------------------------------------------------------------------
>                 Key: ARIES-1578
>                 URL:
>             Project: Aries
>          Issue Type: Bug
>          Components: Blueprint
>            Reporter: Paolo Antinori
>            Assignee: Grzegorz Grzybek
> I have found an issue with the {{blueprint-cm}} module:
> it doesn't integrate with possible implementation of {{}}
registered in the OSGi framework.
> That interface allows to intercept {{ConfigAdmin}} properties updates, allowing to manipulate
their content without persisting them anywhere.
> A sample usacase can be a decrypt component that decrypts values on the fly.
> The issue on {{blueprint-cm}} is with the current implementation of {{CmPropertyPlaceholder}}:
> {code:java}
> public void updated(Dictionary props) {
>     if ("reload".equalsIgnoreCase(updateStrategy) && !equals(properties, props))
>         LOGGER.debug("Configuration updated for pid={}", persistentId);
>         // Run in a separate thread to avoid re-entrance
>         new Thread() {
>             public void run() {
>                 blueprintContainer.reload();
>             }
>         }.start();
>     }
> {code}
>  {{updated()}} is correctly forwarded the {{props}} param, containing eventual manipulation
of registered {{ConfigurationPlugin}} instances, but that content is discarded. The event
will trigger a reload of the whole blueprint context, that will fetch the configuration from
{{ConfigAdmin}} directly, thus bypassing the plugin behavior.

This message was sent by Atlassian JIRA

View raw message