You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/03/08 09:36:10 UTC

svn commit: r1785938 - in /sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl: ConfigInstallTask.java ConfigUtil.java

Author: rombert
Date: Wed Mar  8 09:36:10 2017
New Revision: 1785938

URL: http://svn.apache.org/viewvc?rev=1785938&view=rev
Log:
SLING-6313 - Sling installer can duplicate factory configurations if an
invalid RegisteredResourceList.ser is found

Reinstate the behaviour of adding a
'org.apache.sling.installer.osgi.factoryaliaspid' property to factory
configs to prevent duplicate factory configurations from being
generated.

Modified:
    sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigInstallTask.java
    sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java

Modified: sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigInstallTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigInstallTask.java?rev=1785938&r1=1785937&r2=1785938&view=diff
==============================================================================
--- sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigInstallTask.java (original)
+++ sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigInstallTask.java Wed Mar  8 09:36:10 2017
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.installer.factories.configuration.impl;
 
+import java.util.Dictionary;
+
 import org.apache.sling.installer.api.tasks.InstallationContext;
 import org.apache.sling.installer.api.tasks.ResourceState;
 import org.apache.sling.installer.api.tasks.TaskResourceGroup;
@@ -72,7 +74,11 @@ public class ConfigInstallTask extends A
                 }
 
                 if (config != null) {
-                    config.update(getDictionary());
+                    Dictionary<String, Object> dictionary = getDictionary();
+                    if ( this.factoryPid != null && this.configPid != null ) {
+                        dictionary.put(ConfigUtil.ALIAS_KEY, this.configPid);
+                    }
+                    config.update(dictionary);
                     ctx.log("Installed configuration {} from resource {}", config.getPid(), getResource());
                     if ( this.factoryPid != null ) {
                         this.aliasPid = config.getPid();

Modified: sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java?rev=1785938&r1=1785937&r2=1785938&view=diff
==============================================================================
--- sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java (original)
+++ sling/trunk/installer/factories/configuration/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUtil.java Wed Mar  8 09:36:10 2017
@@ -48,10 +48,9 @@ abstract class ConfigUtil {
     private static final String CONFIG_PATH_KEY = "org.apache.sling.installer.osgi.path";
 
     /**
-     * This property has been used in older versions to keep track of factory
-     * configurations.
+     * This property is used to keep track of factory configurations.
      */
-    private static final String ALIAS_KEY = "org.apache.sling.installer.osgi.factoryaliaspid";
+    static final String ALIAS_KEY = "org.apache.sling.installer.osgi.factoryaliaspid";
 
     /** Configuration properties to ignore when comparing configs */
     private static final Set<String> IGNORED_PROPERTIES = new HashSet<String>();