You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/05/30 13:29:04 UTC
[jira] [Commented] (ARIES-1578) blueprint-cm doesn't support
org.osgi.service.cm.ConfigurationPlugin
[ https://issues.apache.org/jira/browse/ARIES-1578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16029422#comment-16029422 ]
ASF GitHub Bot commented on ARIES-1578:
---------------------------------------
Github user paoloantinori closed the pull request at:
https://github.com/apache/aries/pull/49
> 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
> Assignee: Guillaume Nodet
> Fix For: blueprint-cm-1.0.9
>
>
> 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.15#6346)