Use java_import_external() for maven artifacts to allow usage of web proxy
Change-Id: I5c116ce33d35e51174b14c5022a5a9f183d01ecd
diff --git a/tools/build/libgen/pom.xml b/tools/build/libgen/pom.xml
index 057dfa7..9288bb3 100644
--- a/tools/build/libgen/pom.xml
+++ b/tools/build/libgen/pom.xml
@@ -29,7 +29,7 @@
<groupId>org.onosproject</groupId>
<artifactId>onos-libgen</artifactId>
<packaging>jar</packaging>
- <version>1.3-SNAPSHOT</version>
+ <version>1.6-SNAPSHOT</version>
<description>Third-party library generator for Buck and Bazel workspaces</description>
<url>http://onosproject.org/</url>
diff --git a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckArtifact.java b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckArtifact.java
index be336c8..0af9255 100644
--- a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckArtifact.java
+++ b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckArtifact.java
@@ -76,13 +76,16 @@
return generateForBazel;
}
+ String httpUrl() {
+ return "";
+ }
String mavenCoords() {
return null;
}
String bazelExport() {
- return "@" + jarTarget() + "//jar";
+ return "@" + jarTarget() + "//:" + jarTarget();
}
private boolean isJar() {
@@ -118,29 +121,25 @@
}
String getBazelMavenJarFragment() {
- if (isJar() && mavenCoords() != null) {
- String repo = extractRepo();
- String repoAttribute = "";
- if (!"".equals(repo)) {
- repoAttribute = " repository = \"" + repo + "\",\n";
- }
- String format =
- "\n native.maven_jar(\n" +
- " name = \"%s\",\n" +
- " artifact = \"%s\",\n" +
- " sha1 = \"%s\",\n" +
- "%s" +
- " )\n";
- return String.format(format, jarTarget(), mavenCoords(), sha, repoAttribute);
- } else {
- String format =
- "\n native.http_file(\n" +
- " name = \"%s\",\n" +
- " url = \"%s\",\n" +
- " sha256 = \"%s\",\n" +
- " )\n";
- return String.format(format, jarTarget(), url(), sha);
- }
+ System.out.println(name + " == " + httpUrl());
+
+ //String repo = extractRepo();
+ //String repoAttribute = "";
+ //if (!"".equals(repo)) {
+ // repoAttribute = " repository = \"" + repo + "\",\n";
+ //}
+
+ String sha256 = BuckLibGenerator.getHttpSha256(name, httpUrl());
+ String format = "\n" +
+ " if \"%s\" not in native.existing_rules():\n" +
+ " java_import_external(\n" +
+ " name = \"%s\",\n" +
+ " jar_sha256 = \"%s\",\n" +
+ " licenses = [\"notice\"],\n" +
+ " jar_urls = [\"%s\"]," +
+ " )";
+
+ return String.format(format, jarTarget(), jarTarget(), sha256, httpUrl());
}
public String getBuckFragment() {
@@ -190,6 +189,11 @@
String url(boolean withClassifier) {
return url;
}
+
+ @Override
+ String httpUrl() {
+ return url;
+ }
}
private static class MavenArtifact extends BuckArtifact {
@@ -221,6 +225,15 @@
}
@Override
+ String httpUrl() {
+ return "http://repo1.maven.org/maven2/" +
+ artifact.getGroupId().replace(".", "/") +
+ "/" + artifact.getArtifactId() +
+ "/" + artifact.getVersion() +
+ "/" + artifact.getFile().getName();
+ }
+
+ @Override
String url(boolean withClassifier) {
String url = url();
if (withClassifier && !isOsgiReady()) {
diff --git a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
index 9355079..538c959 100644
--- a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
+++ b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
@@ -247,6 +247,7 @@
")\n\n");
} else {
writer.write("\nload(\"//tools/build/bazel:variables.bzl\", \"ONOS_GROUP_ID\", \"ONOS_VERSION\")\n\n");
+ writer.write("\nload(\"@bazel_tools//tools/build_defs/repo:java.bzl\", \"java_import_external\")\n\n");
}
libraries.forEach(library -> writer.print(library.getFragment()));
@@ -263,16 +264,15 @@
}
}
- String getHttpSha1(String name, String urlStr) {
+ static String getHttpSha1(String name, String urlStr) {
return getHttpSha(name, urlStr, "SHA-1");
}
- String getHttpSha256(String name, String urlStr) {
+ static String getHttpSha256(String name, String urlStr) {
return getHttpSha(name, urlStr, "SHA-256");
}
- String getHttpSha(String name, String urlStr, String algorithm) {
- //FIXME need http download cache
+ private static String getHttpSha(String name, String urlStr, String algorithm) {
try {
MessageDigest md = MessageDigest.getInstance(algorithm);
byte[] buffer = new byte[8192];
diff --git a/tools/build/onos-lib-gen b/tools/build/onos-lib-gen
index e3bc403..3a083f8 100755
--- a/tools/build/onos-lib-gen
+++ b/tools/build/onos-lib-gen
@@ -9,7 +9,7 @@
cd $ONOS_ROOT
REPO=${M2_REPO:-~/.m2/repository}
-VER=1.2
+VER=1.5
ARTIFACT=org/onosproject/onos-libgen/$VER/onos-libgen-$VER.jar
JAR=$REPO/$ARTIFACT