Link to JGit source as git submodule
Using a submodule to bring in the source files vastly simplifies
updating JGit. Gitiles developers can bump the SHA-1 of the submodule
and not deal with the Maven rebuild process for JGit.
This follows the approach taken in Gerrit in I16370e57f27.
Change-Id: Ib35f7bad8b8f61e73f416937a387e3675bf1e3a2
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..b339fa4
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "modules/jgit"]
+ path = modules/jgit
+ url = ../jgit
diff --git a/WORKSPACE b/WORKSPACE
index 0739533..1fd87c1 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -18,10 +18,15 @@
load(
"@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl",
- "MAVEN_CENTRAL",
"maven_jar",
)
+# JGit external repository consumed from git submodule
+local_repository(
+ name = "jgit",
+ path = "modules/jgit",
+)
+
maven_jar(
name = "commons-lang3",
artifact = "org.apache.commons:commons-lang3:3.8.1",
@@ -148,38 +153,6 @@
sha1 = "198ea005f41219f038f4291f0b0e9f3259730e92",
)
-JGIT_VERS = "5.12.0.202106070339-r"
-
-JGIT_REPO = MAVEN_CENTRAL
-
-maven_jar(
- name = "jgit-lib",
- artifact = "org.eclipse.jgit:org.eclipse.jgit:" + JGIT_VERS,
- repository = JGIT_REPO,
- sha1 = "b7792da62103c956d3e58e29fb2e6e5c5f0e1317",
-)
-
-maven_jar(
- name = "jgit-servlet",
- artifact = "org.eclipse.jgit:org.eclipse.jgit.http.server:" + JGIT_VERS,
- repository = JGIT_REPO,
- sha1 = "c50ee52951bdcd119af0181926c25e09ae913aab",
-)
-
-maven_jar(
- name = "jgit-junit",
- artifact = "org.eclipse.jgit:org.eclipse.jgit.junit:" + JGIT_VERS,
- repository = JGIT_REPO,
- sha1 = "1bb81c9104f318f16748dbaa43f95509a53e7aa0",
-)
-
-maven_jar(
- name = "jgit-archive",
- artifact = "org.eclipse.jgit:org.eclipse.jgit.archive:" + JGIT_VERS,
- repository = JGIT_REPO,
- sha1 = "93f59b510a923bd757ea6b2a6e359d222daf2e1d",
-)
-
maven_jar(
name = "javaewah",
artifact = "com.googlecode.javaewah:JavaEWAH:1.1.7",
@@ -210,11 +183,43 @@
)
maven_jar(
+ name = "hamcrest-library",
+ artifact = "org.hamcrest:hamcrest-library:1.3",
+ sha1 = "4785a3c21320980282f9f33d0d1264a69040538f",
+)
+
+maven_jar(
name = "hamcrest-core",
artifact = "org.hamcrest:hamcrest-core:1.3",
sha1 = "42a25dc3219429f0e5d060061f71acb49bf010a0",
)
+maven_jar(
+ name = "mockito",
+ artifact = "org.mockito:mockito-core:2.23.0",
+ sha1 = "497ddb32fd5d01f9dbe99a2ec790aeb931dff1b1",
+)
+
+BYTE_BUDDY_VERSION = "1.9.0"
+
+maven_jar(
+ name = "bytebuddy",
+ artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
+ sha1 = "8cb0d5baae526c9df46ae17693bbba302640538b",
+)
+
+maven_jar(
+ name = "bytebuddy-agent",
+ artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
+ sha1 = "37b5703b4a6290be3fffc63ae9c6bcaaee0ff856",
+)
+
+maven_jar(
+ name = "objenesis",
+ artifact = "org.objenesis:objenesis:2.6",
+ sha1 = "639033469776fd37c08358c6b92a4761feb2af4b",
+)
+
SL_VERS = "1.7.26"
maven_jar(
diff --git a/java/com/google/gitiles/BUILD b/java/com/google/gitiles/BUILD
index de70adb..8e79933 100644
--- a/java/com/google/gitiles/BUILD
+++ b/java/com/google/gitiles/BUILD
@@ -15,15 +15,15 @@
"//lib:gfm-tables",
"//lib:gfm-strikethrough",
"//lib:prettify",
- "//lib/jgit:jgit",
- "//lib/jgit:jgit-servlet",
+ "//lib:jgit",
+ "//lib:jgit-servlet",
"//lib:slf4j-api",
"//lib/soy:soy",
"//java/com/google/gitiles/blame/cache",
]
DEPS_ALL = DEPS + [
- "//lib/jgit:jgit-archive",
+ "//lib:jgit-archive",
"//lib/guice:guice",
]
diff --git a/java/com/google/gitiles/blame/cache/BUILD b/java/com/google/gitiles/blame/cache/BUILD
index e1491fc..e256ea3 100644
--- a/java/com/google/gitiles/blame/cache/BUILD
+++ b/java/com/google/gitiles/blame/cache/BUILD
@@ -8,7 +8,7 @@
visibility = ["//visibility:public"],
deps = [
"//lib:guava",
- "//lib/jgit",
+ "//lib:jgit",
],
)
@@ -17,7 +17,7 @@
libs = [
":cache",
"//lib:guava",
- "//lib/jgit:jgit",
+ "//lib:jgit",
],
pkgs = ["com.google.gitiles.blame.cache"],
title = "Blame Cache API Documentation",
diff --git a/java/com/google/gitiles/dev/BUILD b/java/com/google/gitiles/dev/BUILD
index 942cb2b..1394fff 100644
--- a/java/com/google/gitiles/dev/BUILD
+++ b/java/com/google/gitiles/dev/BUILD
@@ -12,8 +12,8 @@
"//lib:servlet-api",
"//lib/jetty:server",
"//lib/jetty:servlet",
- "//lib/jgit",
- "//lib/jgit:jgit-servlet",
+ "//lib:jgit",
+ "//lib:jgit-servlet",
"//lib:slf4j-api",
"//lib:slf4j-simple",
"//lib/soy",
diff --git a/javatests/com/google/gitiles/BUILD b/javatests/com/google/gitiles/BUILD
index 4021114..8597e2e 100644
--- a/javatests/com/google/gitiles/BUILD
+++ b/javatests/com/google/gitiles/BUILD
@@ -5,8 +5,8 @@
"//lib:gson",
"//lib:guava",
"//lib:guava-failureaccess",
- "//lib/jgit:jgit",
- "//lib/jgit:jgit-servlet",
+ "//lib:jgit",
+ "//lib:jgit-servlet",
"//lib/soy:soy",
]
@@ -21,7 +21,7 @@
"//lib:jsr305",
"//lib:servlet-api_2_5",
"//lib/truth",
- "//lib/jgit:junit",
+ "//lib:jgit-junit",
"//lib/junit",
],
)
@@ -42,7 +42,7 @@
":testutil",
"//lib:servlet-api_2_5",
"//lib/truth",
- "//lib/jgit:junit",
+ "//lib:jgit-junit",
"//lib/junit",
],
)
diff --git a/lib/BUILD b/lib/BUILD
index 282643d..0f9620e 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -42,3 +42,45 @@
"@slf4j-simple//jar",
],
)
+
+java_library(
+ name = "jgit",
+ visibility = ["//visibility:public"],
+ exports = ["@jgit//org.eclipse.jgit:jgit"],
+ runtime_deps = [
+ ":slf4j-api",
+ "@javaewah//jar",
+ ],
+)
+
+java_library(
+ name = "jgit-archive",
+ visibility = ["//visibility:public"],
+ exports = ["@jgit//org.eclipse.jgit.archive:jgit-archive"],
+ runtime_deps = [":jgit"],
+)
+
+java_library(
+ name = "jgit-junit",
+ testonly = True,
+ visibility = ["//visibility:public"],
+ exports = ["@jgit//org.eclipse.jgit.junit:junit"],
+ runtime_deps = [":jgit"],
+)
+
+java_library(
+ name = "jgit-servlet",
+ visibility = ["//visibility:public"],
+ exports = ["@jgit//org.eclipse.jgit.http.server:jgit-servlet"],
+ runtime_deps = [":jgit"],
+)
+
+java_library(
+ name = "tukaani-xz",
+ exports = ["@tukaani-xz//jar"],
+)
+
+java_library(
+ name = "commons-compress",
+ exports = ["@commons-compress//jar"],
+)
diff --git a/lib/jgit/BUILD b/lib/jgit/BUILD
deleted file mode 100644
index d813fd7..0000000
--- a/lib/jgit/BUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-load("@rules_java//java:defs.bzl", "java_library")
-
-package(
- default_visibility = ["//visibility:public"],
-)
-
-java_library(
- name = "jgit-servlet",
- exports = ["@jgit-servlet//jar"],
-)
-
-java_library(
- name = "jgit",
- exports = ["@jgit-lib//jar"],
-)
-
-java_library(
- name = "jgit-archive",
- exports = [
- ":commons-compress",
- ":jgit-archive_library",
- ":tukaani-xz",
- ],
-)
-
-java_library(
- name = "tukaani-xz",
- exports = ["@tukaani-xz//jar"],
-)
-
-java_library(
- name = "commons-compress",
- exports = ["@commons-compress//jar"],
-)
-
-java_library(
- name = "jgit-archive_library",
- exports = ["@jgit-archive//jar"],
-)
-
-java_library(
- name = "junit",
- exports = ["@jgit-junit//jar"],
-)
diff --git a/modules/jgit b/modules/jgit
new file mode 160000
index 0000000..1f062c6
--- /dev/null
+++ b/modules/jgit
@@ -0,0 +1 @@
+Subproject commit 1f062c64be839a66e9ddd7faa0040312ef8ea774
diff --git a/tools/workspace_status.py b/tools/workspace_status.py
index aae9318..bd0689a 100644
--- a/tools/workspace_status.py
+++ b/tools/workspace_status.py
@@ -36,3 +36,11 @@
print("STABLE_BUILD_GITILES_LABEL %s" % revision(ROOT, ROOT))
+for kind in ['modules']:
+ kind_dir = os.path.join(ROOT, kind)
+ for d in os.listdir(kind_dir):
+ p = os.path.join(kind_dir, d)
+ if os.path.isdir(p):
+ v = revision(p, ROOT)
+ print('STABLE_BUILD_%s_LABEL %s' % (os.path.basename(p).upper(),
+ v if v else 'unknown'))