You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2015/10/08 15:38:33 UTC

karaf git commit: KARAF-4032: Added support for using repositories from pom.xml to resolve assembly artifacts

Repository: karaf
Updated Branches:
  refs/heads/master de27df856 -> fb857f479


KARAF-4032: Added support for using repositories from pom.xml to resolve assembly artifacts


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

Branch: refs/heads/master
Commit: fb857f479e982ec7785ce799b5041a2b70334791
Parents: de27df8
Author: Dhiraj Bokde <db...@redhat.com>
Authored: Wed Oct 7 21:31:51 2015 -0700
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Oct 8 15:31:28 2015 +0200

----------------------------------------------------------------------
 .../apache/karaf/profile/assembly/Builder.java  | 12 +++++++
 .../org/apache/karaf/tooling/AssemblyMojo.java  | 37 ++++++++++++++++++++
 2 files changed, 49 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/fb857f47/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 1728261..d1407db 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
@@ -148,6 +148,7 @@ public class Builder {
     Path homeDirectory;
     boolean offline;
     String localRepository;
+    String mavenRepositories;
 
     private ScheduledExecutorService executor;
     private DownloadManager manager;
@@ -312,6 +313,11 @@ public class Builder {
         return this;
     }
 
+    public Builder mavenRepositories(String mavenRepositories) {
+        this.mavenRepositories = mavenRepositories;
+        return this;
+    }
+
     public Builder staticFramework() {
         // TODO: load this from resources
         return staticFramework("4.0.0-SNAPSHOT");
@@ -387,6 +393,12 @@ public class Builder {
         if (offline) {
             props.put(ORG_OPS4J_PAX_URL_MVN_PID + "offline", "true");
         }
+        if (localRepository != null) {
+            props.put(Builder.ORG_OPS4J_PAX_URL_MVN_PID + ".localRepository", localRepository);
+        }
+        if (mavenRepositories != null) {
+            props.put(Builder.ORG_OPS4J_PAX_URL_MVN_PID + ".repositories", mavenRepositories);
+        }
         MavenResolver resolver = MavenResolvers.createMavenResolver(props, ORG_OPS4J_PAX_URL_MVN_PID);
         executor = Executors.newScheduledThreadPool(8);
         manager = new CustomDownloadManager(resolver, executor);

http://git-wip-us.apache.org/repos/asf/karaf/blob/fb857f47/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 43ac257..79f5f4c 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
@@ -209,9 +209,26 @@ public class AssemblyMojo extends MojoSupport {
             installedRepositories.addAll(featureRepositories);
         }
 
+        StringBuilder remote = new StringBuilder();
+        for (Object obj : project.getRemoteProjectRepositories()) {
+            if (remote.length() > 0) {
+                remote.append(",");
+            }
+            remote.append(invoke(obj, "getUrl"));
+            remote.append("@id=").append(invoke(obj, "getId"));
+            if (!((Boolean) invoke(getPolicy(obj, false), "isEnabled"))) {
+                remote.append("@noreleases");
+            }
+            if ((Boolean) invoke(getPolicy(obj, true), "isEnabled")) {
+                remote.append("@snapshots");
+            }
+        }
+        getLog().info("Using repositories: " + remote.toString());
+
         Builder builder = Builder.newInstance();
         builder.offline(mavenSession.isOffline());
         builder.localRepository(localRepo.getBasedir());
+        builder.mavenRepositories(remote.toString());
         builder.javase(javase);
 
         // Set up blacklisted items
@@ -325,6 +342,26 @@ public class AssemblyMojo extends MojoSupport {
         }
     }
 
+    private Object invoke(Object object, String getter) throws MojoExecutionException {
+        try {
+            return object.getClass().getMethod(getter).invoke(object);
+        } catch (Exception e) {
+            throw new MojoExecutionException("Unable to build remote repository from " + object.toString(), e);
+        }
+    }
+
+    private Object getPolicy(Object object, boolean snapshots) throws MojoExecutionException {
+        return invoke(object, "getPolicy", new Class[] { Boolean.TYPE }, new Object[] { snapshots });
+    }
+
+    private Object invoke(Object object, String getter, Class[] types, Object[] params) throws MojoExecutionException {
+        try {
+            return object.getClass().getMethod(getter, types).invoke(object, params);
+        } catch (Exception e) {
+            throw new MojoExecutionException("Unable to build remote repository from " + object.toString(), e);
+        }
+    }
+
     private String artifactToMvn(Artifact artifact) throws MojoExecutionException {
         String uri;