This is an automated email from the ASF dual-hosted git repository.

cschneider pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 4aa10e5  SLING-9582 - adjust lookup of osgi config via 
ConfigurationAdmin to use getProcessedProperties
     new c96d3fb  Merge pull request #42 from DominikSuess/issue/SLING-9582
4aa10e5 is described below

commit 4aa10e5b1b3881dd13722ca37674b6b1fde44c0d
Author: Dominik Suess <[email protected]>
AuthorDate: Tue Jul 14 17:50:14 2020 +0200

    SLING-9582 - adjust lookup of osgi config via ConfigurationAdmin to use 
getProcessedProperties
---
 pom.xml                                                  | 16 +++++++++++++++-
 .../impl/DefaultDistributionConfigurationManager.java    |  5 +++--
 .../component/impl/OsgiConfigurationManager.java         | 10 ++++++----
 3 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/pom.xml b/pom.xml
index a809352..a134cbc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,9 +157,23 @@
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>osgi.cmpn</artifactId>
+            <artifactId>org.osgi.service.cm</artifactId>
+            <version>1.6.0</version>
+           <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component</artifactId>
+            <version>1.4.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.event</artifactId>
+            <version>1.4.0</version>
             <scope>provided</scope>
         </dependency>
+
         <!-- need it here as to avoid classpath conflicts with testing mock -->
         <dependency>
             <groupId>org.apache.sling</groupId>
diff --git 
a/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java
 
b/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java
index a14bb8b..6c2538b 100644
--- 
a/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java
+++ 
b/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java
@@ -33,6 +33,7 @@ import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -75,7 +76,7 @@ public class DefaultDistributionConfigurationManager 
implements DistributionConf
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     @Activate
-    void activate(Map<String, Object> properties) {
+    void activate(ComponentContext ctx, Map<String, Object> properties) {
         boolean configEnabled = 
PropertiesUtil.toBoolean(properties.get(CONFIG_ENABLED), false);
 
         String configRoot = 
SettingsUtils.removeEmptyEntry(PropertiesUtil.toString(properties.get(CONFIG_ROOT),
 null));
@@ -89,7 +90,7 @@ public class DefaultDistributionConfigurationManager 
implements DistributionConf
             resourceManager = new ResourceConfigurationManager(configRoot, 
configProperties, configDefaults);
         }
 
-        osgiManager = new OsgiConfigurationManager(configurationAdmin, 
componentFactoryMap);
+        osgiManager = new OsgiConfigurationManager(configurationAdmin, 
componentFactoryMap, ctx.getServiceReference());
     }
 
     @Deactivate
diff --git 
a/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java
 
b/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java
index d82868c..a4466b8 100644
--- 
a/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java
+++ 
b/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java
@@ -34,6 +34,7 @@ import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.apache.sling.distribution.resources.impl.OsgiUtils;
 import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.slf4j.Logger;
@@ -45,11 +46,12 @@ import org.slf4j.LoggerFactory;
 public class OsgiConfigurationManager implements 
DistributionConfigurationManager {
     private final ConfigurationAdmin configurationAdmin;
     private final Logger log = LoggerFactory.getLogger(getClass());
+    private final ServiceReference<?> ref;
 
     private final DistributionComponentFactoryMap componentFactoryMap;
 
-    public OsgiConfigurationManager(ConfigurationAdmin configurationAdmin, 
DistributionComponentFactoryMap componentFactoryMap) {
-
+    public OsgiConfigurationManager(ConfigurationAdmin configurationAdmin, 
DistributionComponentFactoryMap componentFactoryMap, ServiceReference<?> ref) {
+        this.ref = ref;
         this.configurationAdmin = configurationAdmin;
         this.componentFactoryMap = componentFactoryMap;
     }
@@ -65,7 +67,7 @@ public class OsgiConfigurationManager implements 
DistributionConfigurationManage
 
 
         for (Configuration configuration : configurations) {
-            Dictionary<String, Object> propertiesDict = 
configuration.getProperties();
+            Dictionary<String, Object> propertiesDict = 
configuration.getProcessedProperties(ref);
             Map<String, Object> properties = 
OsgiUtils.fromDictionary(propertiesDict);
 
             properties = filterBeforeRead(properties);
@@ -92,7 +94,7 @@ public class OsgiConfigurationManager implements 
DistributionConfigurationManage
         Configuration configuration = configurations.get(0);
 
         if (configuration != null) {
-            Dictionary<String, Object> properties = 
configuration.getProperties();
+            Dictionary<String, Object> properties = 
configuration.getProcessedProperties(ref);
             Map<String, Object> result = OsgiUtils.fromDictionary(properties);
 
             String factoryPid = 
PropertiesUtil.toString(result.get(ConfigurationAdmin.SERVICE_FACTORYPID), 
null);

Reply via email to