aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paolo Antinori (JIRA)" <j...@apache.org>
Subject [jira] [Created] (ARIES-1578) blueprint-cm doesn't support org.osgi.service.cm.ConfigurationPlugin
Date Tue, 21 Jun 2016 12:48:57 GMT
Paolo Antinori created ARIES-1578:
-------------------------------------

             Summary: blueprint-cm doesn't support org.osgi.service.cm.ConfigurationPlugin
                 Key: ARIES-1578
                 URL: https://issues.apache.org/jira/browse/ARIES-1578
             Project: Aries
          Issue Type: Bug
          Components: Blueprint
            Reporter: Paolo Antinori


I have found an issue with the {{blueprint-cm}} module:

it doesn't integrate with possible implementation of {{org.osgi.service.cm.ConfigurationPlugin}}
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}}:

https://github.com/apache/aries/blob/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmPropertyPlaceholder.java#L130-L140

{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
(v6.3.4#6332)

Mime
View raw message