Protobuf's Linakge Monitor check to use a local test BOM rather than google-cloud-shared-dependencies
PiperOrigin-RevId: 547882989
diff --git a/java/BUILD.bazel b/java/BUILD.bazel
index fa6d8ba..1b45507 100644
--- a/java/BUILD.bazel
+++ b/java/BUILD.bazel
@@ -26,6 +26,7 @@
] + glob([
"pom.xml",
"*/pom.xml",
+ "test/linkage-monitor-check-bom/pom.xml",
]),
)
diff --git a/java/linkage_monitor.sh b/java/linkage_monitor.sh
index 3adae2b..e6a54a8 100755
--- a/java/linkage_monitor.sh
+++ b/java/linkage_monitor.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-set -e
+set -e -o pipefail
echo "Running Linkage Monitor check"
@@ -17,22 +17,27 @@
cd java
+# Install the test BOM for Linkage Monitor
+pushd test/linkage-monitor-check-bom
+mvn -e -B install
+popd
+
# Linkage Monitor requires the artifacts to be available in local Maven
# repository.
-mvn --projects "bom,core,util" -e -B -Dhttps.protocols=TLSv1.2 clean generate-sources install \
+mvn -e -B clean generate-sources install \
+ -Dhttps.protocols=TLSv1.2 \
-Dmaven.test.skip=true \
-Dprotobuf.basedir="../.." \
-Dprotoc="${protoc_location}"
echo "Installed the artifacts to local Maven repository"
-curl -v -O "https://storage.googleapis.com/cloud-opensource-java-linkage-monitor/linkage-monitor-latest-all-deps.jar"
+curl -O "https://storage.googleapis.com/cloud-opensource-java-linkage-monitor/linkage-monitor-latest-all-deps.jar"
echo "Running linkage-monitor-latest-all-deps.jar."
-# The generated libraries in google-cloud-shared-dependencies would detect
-# incompatible changes via Linkage Monitor
-# https://github.com/googleapis/sdk-platform-java/tree/main/java-shared-dependencies
-java -Xmx2048m -jar linkage-monitor-latest-all-deps.jar com.google.cloud:google-cloud-shared-dependencies
+# The libraries in the BOM would detect incompatible changes via Linkage Monitor
+java -Xmx2048m -jar linkage-monitor-latest-all-deps.jar \
+ com.google.protobuf.test:linkage-monitor-check-bom
echo "Finished running Linkage Monitor check"
diff --git a/java/test/linkage-monitor-check-bom/pom.xml b/java/test/linkage-monitor-check-bom/pom.xml
new file mode 100644
index 0000000..e666cde
--- /dev/null
+++ b/java/test/linkage-monitor-check-bom/pom.xml
@@ -0,0 +1,75 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.google.protobuf.test</groupId>
+ <artifactId>linkage-monitor-check-bom</artifactId>
+ <packaging>pom</packaging>
+ <version>0.0.1-SNAPSHOT</version><!-- we don't release this BOM -->
+ <name>Protobuf linkage monitor validation BOM</name>
+ <description>
+ A BOM to use in Linkage Monitor. This lists artifacts that use
+ Protobuf runtime libraries, such as gRPC and Google Cloud
+ client libraries.
+ We do not publish this pom.xml to Maven Central.
+ </description>
+ <properties>
+ <!--
+ This verison is ok to kept old. Linkage Monitor overrides this
+ version when checking linakage errors
+ -->
+ <protobuf.version>3.23.2</protobuf.version>
+ </properties>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-bom</artifactId>
+ <version>${protobuf.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-bom</artifactId>
+ <version>1.55.3</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.api.grpc</groupId>
+ <artifactId>grpc-google-common-protos</artifactId>
+ <version>2.22.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.api.grpc</groupId>
+ <artifactId>proto-google-common-protos</artifactId>
+ <version>2.22.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.api.grpc</groupId>
+ <artifactId>proto-google-iam-v1</artifactId>
+ <version>1.17.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.api.grpc</groupId>
+ <artifactId>proto-google-iam-v2</artifactId>
+ <version>1.17.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.api.grpc</groupId>
+ <artifactId>proto-google-iam-v2beta</artifactId>
+ <version>1.17.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.cloud</groupId>
+ <artifactId>google-cloud-bigquery</artifactId>
+ <version>2.29.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.cloud</groupId>
+ <artifactId>google-cloud-bigtable</artifactId>
+ <version>2.24.1</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+</project>