You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gg...@apache.org on 2017/07/12 13:07:14 UTC

karaf git commit: [KARAF-5164] Use Maven reactor to resolve artifacts needed by VerifyMojo and AssemblyMojo

Repository: karaf
Updated Branches:
  refs/heads/grgrzybek-KARAF-5164-master [created] 5f5163d13


[KARAF-5164] Use Maven reactor to resolve artifacts needed by VerifyMojo and AssemblyMojo


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/5f5163d1
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/5f5163d1
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/5f5163d1

Branch: refs/heads/grgrzybek-KARAF-5164-master
Commit: 5f5163d13df1ee2fdfc3857bec1e67272fa78c47
Parents: e409ee5
Author: Grzegorz Grzybek <gr...@gmail.com>
Authored: Wed Jul 12 15:06:58 2017 +0200
Committer: Grzegorz Grzybek <gr...@gmail.com>
Committed: Wed Jul 12 15:06:58 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/karaf/profile/assembly/Builder.java  | 11 +++++++++++
 .../main/java/org/apache/karaf/tooling/AssemblyMojo.java |  7 +++++++
 .../main/java/org/apache/karaf/tooling/VerifyMojo.java   |  8 +++++++-
 3 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/5f5163d1/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
----------------------------------------------------------------------
diff --git a/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java b/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
index 808c333..163997b 100644
--- a/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
+++ b/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
@@ -45,6 +45,7 @@ import java.util.TreeSet;
 import java.util.UUID;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.function.Function;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
 import java.util.regex.Pattern;
@@ -175,6 +176,8 @@ public class Builder {
     private KarafPropertyEdits propertyEdits;
     private Map<String, String> translatedUrls;
 
+    private Function<MavenResolver, MavenResolver> resolverWrapper = null;
+
     public static Builder newInstance() {
         return new Builder();
     }
@@ -336,6 +339,11 @@ public class Builder {
         return this;
     }
 
+    public Builder resolverWrapper(Function<MavenResolver, MavenResolver> wrapper) {
+        this.resolverWrapper = wrapper;
+        return this;
+    }
+
     public Builder staticFramework() {
         // TODO: load this from resources
         return staticFramework("4.0.0-SNAPSHOT");
@@ -471,6 +479,9 @@ public class Builder {
             props.put(Builder.ORG_OPS4J_PAX_URL_MVN_PID + ".repositories", mavenRepositories);
         }
         MavenResolver resolver = MavenResolvers.createMavenResolver(props, ORG_OPS4J_PAX_URL_MVN_PID);
+        if (resolverWrapper != null) {
+            resolver = resolverWrapper.apply(resolver);
+        }
         executor = Executors.newScheduledThreadPool(8);
         manager = new CustomDownloadManager(resolver, executor, null, translatedUrls);
         this.resolver = new ResolverImpl(new Slf4jResolverLog(LOGGER));

http://git-wip-us.apache.org/repos/asf/karaf/blob/5f5163d1/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/AssemblyMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/AssemblyMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/AssemblyMojo.java
index 4c5a5d0..3bc5b08 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/AssemblyMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/AssemblyMojo.java
@@ -37,15 +37,18 @@ import org.apache.karaf.profile.assembly.Builder;
 import org.apache.karaf.tooling.utils.IoUtils;
 import org.apache.karaf.tooling.utils.MavenUtil;
 import org.apache.karaf.tooling.utils.MojoSupport;
+import org.apache.karaf.tooling.utils.ReactorMavenResolver;
 import org.apache.karaf.tools.utils.model.KarafPropertyEdits;
 import org.apache.karaf.tools.utils.model.io.stax.KarafPropertyInstructionsModelStaxReader;
 import org.apache.maven.artifact.Artifact;
 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.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.repository.internal.MavenWorkspaceReader;
 
 /**
  * Creates a customized Karaf distribution by installing features and setting up
@@ -258,6 +261,9 @@ public class AssemblyMojo extends MojoSupport {
     @Parameter
     protected Map<String, String> system;
 
+    @Component(role = MavenWorkspaceReader.class, hint = "reactor")
+    protected MavenWorkspaceReader reactor;
+
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         try {
@@ -322,6 +328,7 @@ public class AssemblyMojo extends MojoSupport {
         builder.offline(mavenSession.isOffline());
         builder.localRepository(localRepo.getBasedir());
         builder.mavenRepositories(remote.toString());
+        builder.resolverWrapper((resolver) -> new ReactorMavenResolver(reactor, resolver));
         builder.javase(javase);
 
         // Set up config and system props

http://git-wip-us.apache.org/repos/asf/karaf/blob/5f5163d1/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java
index 5dad76a..1b592d7 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java
@@ -80,14 +80,17 @@ import org.apache.karaf.features.internal.util.MapUtils;
 import org.apache.karaf.features.internal.util.MultiException;
 import org.apache.karaf.profile.assembly.CustomDownloadManager;
 import org.apache.karaf.tooling.utils.MojoSupport;
+import org.apache.karaf.tooling.utils.ReactorMavenResolver;
 import org.apache.karaf.util.config.PropertiesLoader;
 import org.apache.maven.artifact.Artifact;
 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.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.repository.internal.MavenWorkspaceReader;
 import org.ops4j.pax.url.mvn.MavenResolver;
 import org.ops4j.pax.url.mvn.MavenResolvers;
 import org.osgi.framework.Bundle;
@@ -148,6 +151,9 @@ public class VerifyMojo extends MojoSupport {
     @Parameter(defaultValue = "${project}", readonly = true)
     protected MavenProject project;
 
+    @Component(role = MavenWorkspaceReader.class, hint = "reactor")
+    protected MavenWorkspaceReader reactor;
+
     @Parameter(property = "skip", defaultValue = "${features.verify.skip}")
     protected boolean skip;
 
@@ -189,7 +195,7 @@ public class VerifyMojo extends MojoSupport {
         config.put("maven.localRepository", localRepo.getBasedir());
         config.put("maven.settings", mavenSession.getRequest().getUserSettingsFile().toString());
         // TODO: add more configuration bits ?
-        resolver = MavenResolvers.createMavenResolver(config, "maven");
+        resolver = new ReactorMavenResolver(reactor, MavenResolvers.createMavenResolver(config, "maven"));
         doExecute();
     }