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:29 UTC
[sling-org-apache-sling-feature-launcher] 01/01: SLING-8647:
Provide policies for configuration merging
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);