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 2019/06/18 06:39:24 UTC

[sling-slingfeature-maven-plugin] branch master updated: SLING-8520 : Improve artifact/bundle merging

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 5083be0  SLING-8520 : Improve artifact/bundle merging
5083be0 is described below

commit 5083be0028847c9d78ecd3963d76534654cfc40b
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Jun 18 08:39:16 2019 +0200

    SLING-8520 : Improve artifact/bundle merging
---
 pom.xml                                            |  2 +-
 .../apache/sling/feature/maven/Preprocessor.java   |  1 -
 .../maven/mojos/AbstractRepositoryMojo.java        |  1 -
 .../sling/feature/maven/mojos/Aggregate.java       | 12 ++++++++
 .../feature/maven/mojos/AggregateFeaturesMojo.java | 35 ++++++++++------------
 .../sling/feature/maven/mojos/ApisJarMojo.java     |  1 -
 6 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/pom.xml b/pom.xml
index d923ef5..df337df 100644
--- a/pom.xml
+++ b/pom.xml
@@ -159,7 +159,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature</artifactId>
-            <version>1.0.4</version>
+            <version>1.0.5-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</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 9562877..80666cc 100644
--- a/src/main/java/org/apache/sling/feature/maven/Preprocessor.java
+++ b/src/main/java/org/apache/sling/feature/maven/Preprocessor.java
@@ -23,7 +23,6 @@ import java.io.Reader;
 import java.io.StringReader;
 import java.io.StringWriter;
 import java.io.Writer;
-import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.Formatter;
 import java.util.HashMap;
diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/AbstractRepositoryMojo.java b/src/main/java/org/apache/sling/feature/maven/mojos/AbstractRepositoryMojo.java
index ecc8a80..988fddf 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/AbstractRepositoryMojo.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/AbstractRepositoryMojo.java
@@ -28,7 +28,6 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/Aggregate.java b/src/main/java/org/apache/sling/feature/maven/mojos/Aggregate.java
index e012d24..91c0d47 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/Aggregate.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/Aggregate.java
@@ -18,6 +18,11 @@ package org.apache.sling.feature.maven.mojos;
 
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.sling.feature.ArtifactId;
+
+import edu.emory.mathcs.backport.java.util.Collections;
 
 public class Aggregate extends FeatureSelectionConfig {
 
@@ -66,4 +71,11 @@ public class Aggregate extends FeatureSelectionConfig {
                 + ", description=" + description + ", vendor=" + vendor + ", artifactsOverrides=" + artifactsOverrides
                 + ", variablesOverrides=" + variablesOverrides + ", frameworkPropertiesOverrides=" + frameworkPropertiesOverrides + "]";
     }
+
+    public List<ArtifactId> getArtifactOverrideRules() {
+        if (artifactsOverrides == null) {
+            return Collections.emptyList();
+        }
+        return artifactsOverrides.stream().map(r -> ArtifactId.parse(r)).collect(Collectors.toList());
+    }
 }
\ No newline at end of file
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 6ba448b..f112e8a 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
@@ -16,6 +16,18 @@
  */
 package org.apache.sling.feature.maven.mojos;
 
+import java.io.File;
+import java.net.URL;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.ServiceLoader;
+import java.util.Spliterator;
+import java.util.Spliterators;
+import java.util.stream.StreamSupport;
+
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -33,20 +45,6 @@ import org.apache.sling.feature.builder.PostProcessHandler;
 import org.apache.sling.feature.maven.FeatureConstants;
 import org.apache.sling.feature.maven.ProjectHelper;
 
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.ServiceLoader;
-import java.util.Spliterator;
-import java.util.Spliterators;
-import java.util.stream.StreamSupport;
-
 /**
  * Aggregate multiple features into a single one.
  */
@@ -81,9 +79,6 @@ public class AggregateFeaturesMojo extends AbstractIncludingFeatureMojo {
                         "No features found for aggregate with classifier " + aggregate.classifier);
             }
 
-            final List<String> artifactsOverrides = new ArrayList<>();
-            if (aggregate.artifactsOverrides != null)
-                artifactsOverrides.addAll(aggregate.artifactsOverrides);
             final Map<String,String> variablesOverwrites = new HashMap<>();
             if (aggregate.variablesOverrides != null)
                 variablesOverwrites.putAll(aggregate.variablesOverrides);
@@ -142,8 +137,7 @@ public class AggregateFeaturesMojo extends AbstractIncludingFeatureMojo {
                         return null;
                     }
                 }
-            }).addArtifactsOverrides(artifactsOverrides)
-                .addVariablesOverrides(variablesOverwrites)
+            }).addVariablesOverrides(variablesOverwrites)
                 .addFrameworkPropertiesOverrides(frameworkPropertiesOverwrites)
                 .addMergeExtensions(StreamSupport.stream(Spliterators.spliteratorUnknownSize(
                     ServiceLoader.load(MergeHandler.class).iterator(), Spliterator.ORDERED),
@@ -151,6 +145,9 @@ public class AggregateFeaturesMojo extends AbstractIncludingFeatureMojo {
                 .addPostProcessExtensions(StreamSupport.stream(Spliterators.spliteratorUnknownSize(
                     ServiceLoader.load(PostProcessHandler.class).iterator(), Spliterator.ORDERED),
                     false).toArray(PostProcessHandler[]::new));
+            for (final ArtifactId rule : aggregate.getArtifactOverrideRules()) {
+                builderContext.addArtifactsOverride(rule);
+            }
 
             boolean wildcardSet = false;
             for (final Map.Entry<String, Properties> entry : handlerConfiguration.entrySet()) {
diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java b/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
index d4785e7..1d382bc 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
@@ -19,7 +19,6 @@ package org.apache.sling.feature.maven.mojos;
 import java.io.File;
 import java.io.IOException;
 import java.io.StringReader;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;