You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2018/11/14 09:00:58 UTC
[sling-slingfeature-maven-plugin] branch master updated: SLING-8108
: Provide setter methods for optional context info
This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 76268ac SLING-8108 : Provide setter methods for optional context info
76268ac is described below
commit 76268ac215d161d2cc2e6d6123fe978c66c865e9
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Nov 14 10:00:48 2018 +0100
SLING-8108 : Provide setter methods for optional context info
---
pom.xml | 9 +++------
.../apache/sling/feature/maven/Preprocessor.java | 8 ++++++--
.../apache/sling/feature/maven/ProjectHelper.java | 10 ++++++++++
.../feature/maven/mojos/AggregateFeaturesMojo.java | 22 ++++++++++------------
.../org/apache/sling/feature/maven/mojos/Scan.java | 9 +++++++--
5 files changed, 36 insertions(+), 22 deletions(-)
diff --git a/pom.xml b/pom.xml
index e8e3826..2531517 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,13 +37,11 @@
<maven.site.path>${project.artifactId}-archives/${project.artifactId}-LATEST</maven.site.path>
</properties>
- <!--
<scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/tooling/maven/osgifeature-maven-plugin</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/tooling/maven/osgifeature-maven-plugin</developerConnection>
- <url>http://svn.apache.org/viewvc/sling/trunk/tooling/maven/osgifeature-maven-plugin</url>
+ <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git</connection>
+ <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git</developerConnection>
+ <url>https://gitbox.apache.org/repos/asf?p=sling-slingfeature-maven-plugin.git</url>
</scm>
- -->
<build>
<plugins>
@@ -134,7 +132,6 @@
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<version>6.0.0</version>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
diff --git a/src/main/java/org/apache/sling/feature/maven/Preprocessor.java b/src/main/java/org/apache/sling/feature/maven/Preprocessor.java
index de56ed0..d9de879 100644
--- a/src/main/java/org/apache/sling/feature/maven/Preprocessor.java
+++ b/src/main/java/org/apache/sling/feature/maven/Preprocessor.java
@@ -215,8 +215,12 @@ public class Preprocessor {
info,
config.isTestConfig(),
config.isSkipAddDependencies(),
- config.getScope(), null),
- aid -> ProjectHelper.getOrResolveArtifact(info.project, env.session, env.artifactHandlerManager, env.resolver, aid).getFile()));
+ config.getScope(), null))
+ .setArtifactProvider(
+ aid -> ProjectHelper
+ .getOrResolveArtifact(info.project, env.session,
+ env.artifactHandlerManager, env.resolver, aid)
+ .getFile()));
aggregatedFeatures.put(entry.getKey(), assembledFeature);
break;
}
diff --git a/src/main/java/org/apache/sling/feature/maven/ProjectHelper.java b/src/main/java/org/apache/sling/feature/maven/ProjectHelper.java
index b5d6b26..7f0983e 100644
--- a/src/main/java/org/apache/sling/feature/maven/ProjectHelper.java
+++ b/src/main/java/org/apache/sling/feature/maven/ProjectHelper.java
@@ -28,6 +28,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import java.util.TreeMap;
import java.util.stream.Collectors;
@@ -46,6 +47,7 @@ import org.apache.maven.model.PluginExecution;
import org.apache.maven.project.MavenProject;
import org.apache.sling.feature.ArtifactId;
import org.apache.sling.feature.Feature;
+import org.apache.sling.feature.KeyValueMap;
import org.apache.sling.feature.io.json.FeatureJSONReader;
import org.apache.sling.feature.io.json.FeatureJSONWriter;
import org.codehaus.plexus.util.xml.Xpp3Dom;
@@ -431,4 +433,12 @@ public abstract class ProjectHelper {
&& id.getArtifactId().equals(project.getArtifactId())
&& id.getVersion().equals(project.getVersion());
}
+
+ public static KeyValueMap toKeyValueMap(final Properties value) {
+ final KeyValueMap kvm = new KeyValueMap();
+ for (final Object key : value.keySet()) {
+ kvm.put(key.toString(), value.getProperty(key.toString()));
+ }
+ return kvm;
+ }
}
diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/AggregateFeaturesMojo.java b/src/main/java/org/apache/sling/feature/maven/mojos/AggregateFeaturesMojo.java
index af550ce..1d0360b 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/AggregateFeaturesMojo.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/AggregateFeaturesMojo.java
@@ -63,7 +63,6 @@ public class AggregateFeaturesMojo extends AbstractIncludingFeatureMojo {
@Parameter
Map<String, Properties> handlerConfiguration = new HashMap<>();
- @SuppressWarnings("unchecked")
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
ProjectHelper.checkPreprocessorRun(this.project);
@@ -77,12 +76,10 @@ public class AggregateFeaturesMojo extends AbstractIncludingFeatureMojo {
"No features found for aggregate with classifier " + aggregate.classifier);
}
- KeyValueMap variableOverrides = new KeyValueMap();
- if (aggregate.variables != null) {
- for (Map.Entry<String, String> entry : aggregate.variables.entrySet()) {
- variableOverrides.put(entry.getKey(), entry.getValue());
- }
- }
+ final KeyValueMap variablesOverwrites = new KeyValueMap();
+ variablesOverwrites.putAll(aggregate.variables);
+ final KeyValueMap frameworkPropertiesOverwrites = new KeyValueMap();
+ frameworkPropertiesOverwrites.putAll(aggregate.frameworkProperties);
final BuilderContext builderContext = new BuilderContext(new FeatureProvider() {
@Override
@@ -109,7 +106,7 @@ public class AggregateFeaturesMojo extends AbstractIncludingFeatureMojo {
return ProjectHelper.getOrResolveFeature(project, mavenSession, artifactHandlerManager,
artifactResolver, id);
}
- }, new ArtifactProvider() {
+ }).setArtifactProvider(new ArtifactProvider() {
@Override
public File provide(final ArtifactId id) {
@@ -127,7 +124,8 @@ public class AggregateFeaturesMojo extends AbstractIncludingFeatureMojo {
.getOrResolveArtifact(project, mavenSession, artifactHandlerManager, artifactResolver, id)
.getFile();
}
- }, variableOverrides, aggregate.frameworkProperties)
+ }).addVariablesOverwrites(variablesOverwrites)
+ .addFrameworkPropertiesOverwrites(frameworkPropertiesOverwrites)
.addMergeExtensions(
StreamSupport.stream(Spliterators
.spliteratorUnknownSize(ServiceLoader.load(MergeHandler.class).iterator(),
@@ -137,9 +135,9 @@ public class AggregateFeaturesMojo extends AbstractIncludingFeatureMojo {
ServiceLoader.load(PostProcessHandler.class).iterator(), Spliterator.ORDERED),
false).toArray(PostProcessHandler[]::new));
- @SuppressWarnings("rawtypes")
- Map<String, Map<String,String>> hc = (Map) handlerConfiguration;
- builderContext.getHandlerConfiguration().putAll(hc);
+ for (final Map.Entry<String, Properties> entry : handlerConfiguration.entrySet()) {
+ builderContext.setHandlerConfiguration(entry.getKey(), ProjectHelper.toKeyValueMap(entry.getValue()));
+ }
final ArtifactId newFeatureID = new ArtifactId(project.getGroupId(), project.getArtifactId(),
project.getVersion(), aggregate.classifier, FeatureConstants.PACKAGING_FEATURE);
diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/Scan.java b/src/main/java/org/apache/sling/feature/maven/mojos/Scan.java
index cde58ce..9c9f59f 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/Scan.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/Scan.java
@@ -23,6 +23,7 @@ import java.util.Properties;
import java.util.Set;
import org.apache.maven.model.Dependency;
+import org.apache.sling.feature.KeyValueMap;
import org.apache.sling.feature.maven.ProjectHelper;
public class Scan extends FeatureSelectionConfig {
@@ -51,8 +52,12 @@ public class Scan extends FeatureSelectionConfig {
return this.excludeTasks.isEmpty() ? null : this.excludeTasks;
}
- public Map<String, Properties> getTaskConfiguration() {
- return taskConfiguration;
+ public Map<String, KeyValueMap> getTaskConfiguration() {
+ final Map<String, KeyValueMap> result = new HashMap<>();
+ for (final Map.Entry<String, Properties> entry : taskConfiguration.entrySet()) {
+ result.put(entry.getKey(), ProjectHelper.toKeyValueMap(entry.getValue()));
+ }
+ return result;
}
public void setFramework(final Dependency d) {