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;