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)