aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorEric Chang <erichang@google.com>2021-05-26 15:41:51 -0700
committerDagger Team <dagger-dev+copybara@google.com>2021-05-26 15:43:42 -0700
commitcb308856ac76b39d996cc63b236687907f385ea5 (patch)
tree7ff520cd6522a023956c3c61fc0e7f2efa2529b1 /util
parent50f54ee0afd524d06312abf6d25d56a83f29bd22 (diff)
downloaddagger2-cb308856ac76b39d996cc63b236687907f385ea5.tar.gz
Add an automatic module name entry into the MANIFEST.MF to support JPMS.
Fixes #1079. RELNOTES=Added an automatic module name to the Dagger artifact PiperOrigin-RevId: 376045144
Diffstat (limited to 'util')
-rwxr-xr-xutil/deploy-dagger.sh43
-rwxr-xr-xutil/deploy-hilt.sh19
-rwxr-xr-xutil/deploy-library.sh31
3 files changed, 73 insertions, 20 deletions
diff --git a/util/deploy-dagger.sh b/util/deploy-dagger.sh
index 071cd9917..164c2c24e 100755
--- a/util/deploy-dagger.sh
+++ b/util/deploy-dagger.sh
@@ -14,16 +14,20 @@ readonly EXTRA_MAVEN_ARGS=("$@")
# parameter, if provided then javadoc must also be provided.
# @param {string} javadoc the java doc jar of the library. This is an optional
# parameter, if provided then srcjar must also be provided.
+# @param {string} module_name the JPMS module name to include in the jar. This
+# is an optional parameter and can only be used with jar files.
_deploy() {
local library=$1
local pomfile=$2
local srcjar=$3
local javadoc=$4
+ local module_name=$5
bash $(dirname $0)/deploy-library.sh \
"$library" \
"$pomfile" \
"$srcjar" \
"$javadoc" \
+ "$module_name" \
"$MVN_GOAL" \
"$VERSION_NAME" \
"${EXTRA_MAVEN_ARGS[@]:+${EXTRA_MAVEN_ARGS[@]}}"
@@ -33,88 +37,103 @@ _deploy \
java/dagger/libcore.jar \
java/dagger/pom.xml \
java/dagger/libcore-src.jar \
- java/dagger/core-javadoc.jar
+ java/dagger/core-javadoc.jar \
+ "dagger"
_deploy \
gwt/libgwt.jar \
gwt/pom.xml \
gwt/libgwt.jar \
- gwt/libgwt.jar
+ gwt/libgwt.jar \
+ ""
_deploy \
java/dagger/internal/codegen/artifact.jar \
java/dagger/internal/codegen/pom.xml \
java/dagger/internal/codegen/artifact-src.jar \
- java/dagger/internal/codegen/artifact-javadoc.jar
+ java/dagger/internal/codegen/artifact-javadoc.jar \
+ ""
_deploy \
java/dagger/producers/artifact.jar \
java/dagger/producers/pom.xml \
java/dagger/producers/artifact-src.jar \
- java/dagger/producers/artifact-javadoc.jar
+ java/dagger/producers/artifact-javadoc.jar \
+ ""
_deploy \
java/dagger/spi/artifact.jar \
java/dagger/spi/pom.xml \
java/dagger/spi/artifact-src.jar \
- java/dagger/spi/artifact-javadoc.jar
+ java/dagger/spi/artifact-javadoc.jar \
+ ""
_deploy \
java/dagger/android/android.aar \
java/dagger/android/pom.xml \
java/dagger/android/libandroid-src.jar \
- java/dagger/android/android-javadoc.jar
+ java/dagger/android/android-javadoc.jar \
+ ""
_deploy \
java/dagger/android/android-legacy.aar \
java/dagger/android/legacy-pom.xml \
"" \
+ "" \
""
_deploy \
java/dagger/android/support/support.aar \
java/dagger/android/support/pom.xml \
java/dagger/android/support/libsupport-src.jar \
- java/dagger/android/support/support-javadoc.jar
+ java/dagger/android/support/support-javadoc.jar \
+ ""
_deploy \
java/dagger/android/support/support-legacy.aar \
java/dagger/android/support/legacy-pom.xml \
"" \
+ "" \
""
_deploy \
shaded_android_processor.jar \
java/dagger/android/processor/pom.xml \
java/dagger/android/processor/libprocessor-src.jar \
- java/dagger/android/processor/processor-javadoc.jar
+ java/dagger/android/processor/processor-javadoc.jar \
+ ""
_deploy \
java/dagger/grpc/server/libserver.jar \
java/dagger/grpc/server/server-pom.xml \
java/dagger/grpc/server/libserver-src.jar \
- java/dagger/grpc/server/javadoc.jar
+ java/dagger/grpc/server/javadoc.jar \
+ ""
_deploy \
java/dagger/grpc/server/libannotations.jar \
java/dagger/grpc/server/annotations-pom.xml \
java/dagger/grpc/server/libannotations-src.jar \
- java/dagger/grpc/server/javadoc.jar
+ java/dagger/grpc/server/javadoc.jar \
+ ""
_deploy \
shaded_grpc_server_processor.jar \
java/dagger/grpc/server/processor/pom.xml \
java/dagger/grpc/server/processor/libprocessor-src.jar \
- java/dagger/grpc/server/processor/javadoc.jar
+ java/dagger/grpc/server/processor/javadoc.jar \
+ ""
_deploy \
java/dagger/lint/lint-artifact.jar \
java/dagger/lint/lint-pom.xml \
java/dagger/lint/lint-artifact-src.jar \
- java/dagger/lint/lint-artifact-javadoc.jar
+ java/dagger/lint/lint-artifact-javadoc.jar \
+ ""
_deploy \
java/dagger/lint/lint-android-artifact.aar \
java/dagger/lint/lint-android-pom.xml \
"" \
+ "" \
""
diff --git a/util/deploy-hilt.sh b/util/deploy-hilt.sh
index d5e40a2a6..b295a7a92 100755
--- a/util/deploy-hilt.sh
+++ b/util/deploy-hilt.sh
@@ -14,16 +14,20 @@ readonly EXTRA_MAVEN_ARGS=("$@")
# parameter, if provided then javadoc must also be provided.
# @param {string} javadoc the java doc jar of the library. This is an optional
# parameter, if provided then srcjar must also be provided.
+# @param {string} module_name the JPMS module name to include in the jar. This
+# is an optional parameter and can only be used with jar files.
_deploy() {
local library=$1
local pomfile=$2
local srcjar=$3
local javadoc=$4
+ local module_name=$5
bash $(dirname $0)/deploy-library.sh \
"$library" \
"$pomfile" \
"$srcjar" \
"$javadoc" \
+ "$module_name" \
"$MVN_GOAL" \
"$VERSION_NAME" \
"${EXTRA_MAVEN_ARGS[@]:+${EXTRA_MAVEN_ARGS[@]}}"
@@ -33,28 +37,33 @@ _deploy \
java/dagger/hilt/android/artifact.aar \
java/dagger/hilt/android/pom.xml \
java/dagger/hilt/android/artifact-src.jar \
- java/dagger/hilt/android/artifact-javadoc.jar
+ java/dagger/hilt/android/artifact-javadoc.jar \
+ ""
_deploy \
java/dagger/hilt/android/testing/artifact.aar \
java/dagger/hilt/android/testing/pom.xml \
java/dagger/hilt/android/testing/artifact-src.jar \
- java/dagger/hilt/android/testing/artifact-javadoc.jar
+ java/dagger/hilt/android/testing/artifact-javadoc.jar \
+ ""
_deploy \
java/dagger/hilt/processor/artifact.jar \
java/dagger/hilt/processor/pom.xml \
java/dagger/hilt/processor/artifact-src.jar \
- java/dagger/hilt/processor/artifact-javadoc.jar
+ java/dagger/hilt/processor/artifact-javadoc.jar \
+ ""
_deploy \
java/dagger/hilt/android/processor/artifact.jar \
java/dagger/hilt/android/processor/pom.xml \
java/dagger/hilt/android/processor/artifact-src.jar \
- java/dagger/hilt/android/processor/artifact-javadoc.jar
+ java/dagger/hilt/android/processor/artifact-javadoc.jar \
+ ""
_deploy \
java/dagger/hilt/artifact-core.jar \
java/dagger/hilt/pom.xml \
java/dagger/hilt/artifact-core-src.jar \
- java/dagger/hilt/artifact-core-javadoc.jar
+ java/dagger/hilt/artifact-core-javadoc.jar \
+ ""
diff --git a/util/deploy-library.sh b/util/deploy-library.sh
index a744402ba..719a47f75 100755
--- a/util/deploy-library.sh
+++ b/util/deploy-library.sh
@@ -9,14 +9,17 @@ set -eu
# parameter, if provided then javadoc must also be provided.
# @param {string} javadoc the java doc jar of the library. This is an optional
# parameter, if provided then srcjar must also be provided.
+# @param {string} module_name the JPMS module name to include in the jar. This
+# is an optional parameter and can only be used with jar files.
deploy_library() {
local library=$1
local pomfile=$2
local srcjar=$3
local javadoc=$4
- local mvn_goal=$5
- local version_name=$6
- shift 6
+ local module_name=$5
+ local mvn_goal=$6
+ local version_name=$7
+ shift 7
local extra_maven_args=("$@")
bazel build --define=pom_version="$version_name" \
@@ -29,6 +32,12 @@ deploy_library() {
$(bazel_output_file $pomfile) \
$version_name
+ # TODO(bcorso): Consider moving this into the "gen_maven_artifact" macro once
+ # all our targets are using gen_maven_artifact
+ add_automatic_module_name_manifest_entry \
+ $(bazel_output_file $library) \
+ "${module_name}"
+
if [ -n "$srcjar" ] && [ -n "$javadoc" ] ; then
bazel build --define=pom_version="$version_name" \
$srcjar $javadoc
@@ -81,6 +90,22 @@ add_tracking_version() {
fi
}
+add_automatic_module_name_manifest_entry() {
+ local library=$1
+ local module_name=$2
+ if [ -n "$module_name" ] ; then
+ if [[ $library =~ \.jar$ ]]; then
+ local temp_dir=$(mktemp -d)
+ echo "Automatic-Module-Name: ${module_name}" > $temp_dir/module_name_file
+ # The "m" flag is specifically for adding manifest entries.
+ jar ufm $library $temp_dir/module_name_file
+ else
+ echo "Could not add module name to $library"
+ exit 1
+ fi
+ fi
+}
+
find_pom_value() {
local pomfile=$1
local attribute=$2