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) {