You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2019/08/21 20:55:28 UTC

[sling-org-apache-sling-feature-launcher] branch issues/SLING-8647 created (now 98e5a20)

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

pauls pushed a change to branch issues/SLING-8647
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-launcher.git.


      at 98e5a20  SLING-8647: Provide policies for configuration merging

This branch includes the following new commits:

     new 98e5a20  SLING-8647: Provide policies for configuration merging

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[sling-org-apache-sling-feature-launcher] 01/01: SLING-8647: Provide policies for configuration merging

Posted by pa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

pauls pushed a commit to branch issues/SLING-8647
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-launcher.git

commit 98e5a207186f39e967dbc2ce9edac9302a4bc1a3
Author: Karl Pauls <ka...@gmail.com>
AuthorDate: Wed Aug 21 22:55:09 2019 +0200

    SLING-8647: Provide policies for configuration merging
---
 pom.xml                                                           | 2 +-
 .../org/apache/sling/feature/launcher/impl/FeatureProcessor.java  | 1 +
 .../org/apache/sling/feature/launcher/impl/LauncherConfig.java    | 7 +++++++
 src/main/java/org/apache/sling/feature/launcher/impl/Main.java    | 8 ++++++++
 4 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 444b542..fa6c1ff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -113,7 +113,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature</artifactId>
-            <version>1.0.6</version>
+            <version>1.0.7-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java b/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
index 68facce..764afab 100644
--- a/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
+++ b/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
@@ -81,6 +81,7 @@ public class FeatureProcessor {
             }
         });
         builderContext.addArtifactsOverrides(config.getArtifactClashOverrides());
+        builderContext.addConfigsOverrides(config.getConfigClashOverrides());
         builderContext.addVariablesOverrides(config.getVariables());
         builderContext.addFrameworkPropertiesOverrides(config.getInstallation().getFrameworkProperties());
         builderContext.addMergeExtensions(StreamSupport.stream(Spliterators.spliteratorUnknownSize(
diff --git a/src/main/java/org/apache/sling/feature/launcher/impl/LauncherConfig.java b/src/main/java/org/apache/sling/feature/launcher/impl/LauncherConfig.java
index 5dd73cd..bacb449 100644
--- a/src/main/java/org/apache/sling/feature/launcher/impl/LauncherConfig.java
+++ b/src/main/java/org/apache/sling/feature/launcher/impl/LauncherConfig.java
@@ -20,6 +20,7 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
@@ -40,6 +41,8 @@ public class LauncherConfig
 
     private final List<String> artifactClashOverrides = new ArrayList<>();
 
+    private final Map<String,String> configClashOverrides = new LinkedHashMap<>();
+
     private final Map<String, Map<String,String>> extensionConfiguration = new HashMap<>();
 
     /** The feature files or directories. */
@@ -67,6 +70,10 @@ public class LauncherConfig
         return this.artifactClashOverrides;
     }
 
+    public Map<String, String> getConfigClashOverrides() {
+        return this.configClashOverrides;
+    }
+
     public Map<String, Map<String, String>> getExtensionConfiguration() {
         return this.extensionConfiguration;
     }
diff --git a/src/main/java/org/apache/sling/feature/launcher/impl/Main.java b/src/main/java/org/apache/sling/feature/launcher/impl/Main.java
index 890d20b..0ecef1f 100644
--- a/src/main/java/org/apache/sling/feature/launcher/impl/Main.java
+++ b/src/main/java/org/apache/sling/feature/launcher/impl/Main.java
@@ -81,6 +81,7 @@ public class Main {
         final Options options = new Options();
 
         final Option artifactClashOverride = new Option("C", true, "Set artifact clash override");
+        final Option configClashOverride = new Option("CC", true, "Set config clash override");
         final Option repoOption =  new Option("u", true, "Set repository url");
         final Option featureOption =  new Option("f", true, "Set feature files");
         final Option fwkProperties = new Option("D", true, "Set framework properties");
@@ -95,6 +96,7 @@ public class Main {
         final Option frameworkArtifactOption = new Option("fa", true, "Set framework artifact (overrides felix framework version)");
 
         options.addOption(artifactClashOverride);
+        options.addOption(configClashOverride);
         options.addOption(repoOption);
         options.addOption(featureOption);
         options.addOption(fwkProperties);
@@ -119,6 +121,12 @@ public class Main {
                     config.getArtifactClashOverrides().add(override);
                 }
             }
+            if ( cl.hasOption(configClashOverride.getOpt()) ) {
+                for(final String override : cl.getOptionValues(configClashOverride.getOpt())) {
+                    final String[] keyVal = split(override);
+                    config.getConfigClashOverrides().put(keyVal[0], keyVal[1]);
+                }
+            }
             if ( cl.hasOption(fwkProperties.getOpt()) ) {
                 for(final String value : cl.getOptionValues(fwkProperties.getOpt())) {
                     final String[] keyVal = split(value);