From 77c7ccf2bc421345dfc06e48b92e7a296f907fe6 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Thu, 16 Jan 2025 18:14:42 +0530 Subject: [PATCH 01/22] in-progress changes --- gradle/libs.versions.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4d871239cc2..edbd8a7e648 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,10 +10,10 @@ protobuf = "3.25.5" [libraries] android-annotations = "com.google.android:annotations:4.1.1.4" -androidx-annotation = "androidx.annotation:annotation:1.9.0" -androidx-core = "androidx.core:core:1.13.1" -androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.8.6" -androidx-lifecycle-service = "androidx.lifecycle:lifecycle-service:2.8.6" +androidx-annotation = "androidx.annotation:annotation:1.9.1" +androidx-core = "androidx.core:core:1.15.0" +androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.8.7" +androidx-lifecycle-service = "androidx.lifecycle:lifecycle-service:2.8.7" androidx-test-core = "androidx.test:core:1.6.1" androidx-test-ext-junit = "androidx.test.ext:junit:1.2.1" androidx-test-rules = "androidx.test:rules:1.6.1" From 659baf50331c769ca3cb742b5a2fc26189953987 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Tue, 21 Jan 2025 10:19:42 +0530 Subject: [PATCH 02/22] Version upgrades. Upgrading org.eclipse.jetty:jetty-servlet:11.0.24 to org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.16org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.16 is causing JakartaInteropTests to fail, that needs work. --- gradle/libs.versions.toml | 49 ++++++++++++++++++++---------------- servlet/jakarta/build.gradle | 1 + 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index edbd8a7e648..26d61666e24 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,10 +19,10 @@ androidx-test-ext-junit = "androidx.test.ext:junit:1.2.1" androidx-test-rules = "androidx.test:rules:1.6.1" animalsniffer = "org.codehaus.mojo:animal-sniffer:1.24" animalsniffer-annotations = "org.codehaus.mojo:animal-sniffer-annotations:1.24" -assertj-core = "org.assertj:assertj-core:3.26.3" +assertj-core = "org.assertj:assertj-core:3.27.2" auto-value = "com.google.auto.value:auto-value:1.11.0" auto-value-annotations = "com.google.auto.value:auto-value-annotations:1.11.0" -checkstyle = "com.puppycrawl.tools:checkstyle:10.19.0" +checkstyle = "com.puppycrawl.tools:checkstyle:10.21.1" commons-math3 = "org.apache.commons:commons-math3:3.6.1" conscrypt = "org.conscrypt:conscrypt-openjdk-uber:2.5.2" cronet-api = "org.chromium.net:cronet-api:119.6045.31" @@ -31,35 +31,40 @@ cronet-embedded = "org.chromium.net:cronet-embedded:119.6045.31" # It breaks Bazel (ArrayIndexOutOfBoundsException in turbine) and Dexing ("D8: # java.lang.NullPointerException"). We can trivially upgrade the Bazel CI to # 6.3.0+ (https://github.com/bazelbuild/bazel/issues/18743). -errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.30.0" +errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.36.0" # error-prone 2.32.0+ require Java 17+ -errorprone-core = "com.google.errorprone:error_prone_core:2.31.0" -google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.48.0" +errorprone-core = "com.google.errorprone:error_prone_core:2.36.0" +google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.50.1" # google-auth-library 1.25.0+ requires error_prone_annotations 2.31.0+, which # breaks the Android build -google-auth-credentials = "com.google.auth:google-auth-library-credentials:1.24.1" -google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.24.1" +google-auth-credentials = "com.google.auth:google-auth-library-credentials:1.30.1" +google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.30.1" # Release notes: https://cloud.google.com/logging/docs/release-notes -google-cloud-logging = "com.google.cloud:google-cloud-logging:3.20.6" +google-cloud-logging = "com.google.cloud:google-cloud-logging:3.21.1" gson = "com.google.code.gson:gson:2.11.0" -guava = "com.google.guava:guava:33.3.1-android" +guava = "com.google.guava:guava:33.4.0-android" guava-betaChecker = "com.google.guava:guava-beta-checker:1.0" -guava-testlib = "com.google.guava:guava-testlib:33.3.1-android" +guava-testlib = "com.google.guava:guava-testlib:33.4.0-android" # JRE version is needed for projects where its a transitive dependency, f.e. gcp-observability. # May be different from the -android version. -guava-jre = "com.google.guava:guava:33.3.1-jre" +guava-jre = "com.google.guava:guava:33.4.0-jre" hdrhistogram = "org.hdrhistogram:HdrHistogram:2.2.2" # 6.0.0+ use java.lang.Deprecated forRemoval and since from Java 9 -jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:5.0.0" +jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.1.0" +# Not using the relocated org.apache.tomcat:tomcat-annotations-api because it requires migrating +# java.annotation to jakarta.annotation. According to +# https://github.com/grpc/grpc-java/issues/6833#issuecomment-602242609 +# there are so many different artifacts containing it, which causes classpath collisions. javax-annotation = "org.apache.tomcat:annotations-api:6.0.53" javax-servlet-api = "javax.servlet:javax.servlet-api:4.0.1" # 12.0.0+ require Java 17+ jetty-client = "org.eclipse.jetty:jetty-client:11.0.24" +# Relocated to jetty-http3-server that we don't use jetty-http2-server = "org.eclipse.jetty.http2:http2-server:11.0.24" jetty-http2-server10 = "org.eclipse.jetty.http2:http2-server:10.0.20" -jetty-servlet = "org.eclipse.jetty:jetty-servlet:11.0.24" +jetty-servlet = "org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.16" jetty-servlet10 = "org.eclipse.jetty:jetty-servlet:10.0.20" -jsr305 = "com.google.code.findbugs:jsr305:3.0.2" +jsr305 = "com.github.spotbugs:spotbugs-annotations:4.8.6" junit = "junit:junit:4.13.2" # 2.17+ require Java 11+ (not mentioned in release notes) lincheck = "org.jetbrains.kotlinx:lincheck:2.16" @@ -85,18 +90,18 @@ opencensus-contrib-grpc-metrics = { module = "io.opencensus:opencensus-contrib-g opencensus-exporter-stats-stackdriver = { module = "io.opencensus:opencensus-exporter-stats-stackdriver", version.ref = "opencensus" } opencensus-exporter-trace-stackdriver = { module = "io.opencensus:opencensus-exporter-trace-stackdriver", version.ref = "opencensus" } opencensus-impl = { module = "io.opencensus:opencensus-impl", version.ref = "opencensus" } -opentelemetry-api = "io.opentelemetry:opentelemetry-api:1.43.0" -opentelemetry-exporter-prometheus = "io.opentelemetry:opentelemetry-exporter-prometheus:1.43.0-alpha" -opentelemetry-gcp-resources = "io.opentelemetry.contrib:opentelemetry-gcp-resources:1.40.0-alpha" -opentelemetry-sdk-extension-autoconfigure = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.43.0" -opentelemetry-sdk-testing = "io.opentelemetry:opentelemetry-sdk-testing:1.43.0" +opentelemetry-api = "io.opentelemetry:opentelemetry-api:1.46.0" +opentelemetry-exporter-prometheus = "io.opentelemetry:opentelemetry-exporter-prometheus:1.46.0-alpha" +opentelemetry-gcp-resources = "io.opentelemetry.contrib:opentelemetry-gcp-resources:1.43.0-alpha" +opentelemetry-sdk-extension-autoconfigure = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.46.0" +opentelemetry-sdk-testing = "io.opentelemetry:opentelemetry-sdk-testing:1.46.0" perfmark-api = "io.perfmark:perfmark-api:0.27.0" protobuf-java = { module = "com.google.protobuf:protobuf-java", version.ref = "protobuf" } protobuf-java-util = { module = "com.google.protobuf:protobuf-java-util", version.ref = "protobuf" } protobuf-javalite = { module = "com.google.protobuf:protobuf-javalite", version.ref = "protobuf" } protobuf-protoc = { module = "com.google.protobuf:protoc", version.ref = "protobuf" } -re2j = "com.google.re2j:re2j:1.7" -robolectric = "org.robolectric:robolectric:4.13" +re2j = "com.google.re2j:re2j:1.8" +robolectric = "org.robolectric:robolectric:4.14.1" signature-android = "net.sf.androidscents.signature:android-api-level-21:5.0.1_r2" signature-java = "org.codehaus.mojo.signature:java18:1.0" # 11.0.0+ require Java 17+ @@ -109,5 +114,5 @@ undertow-servlet = "io.undertow:undertow-servlet:2.3.18.Final" # Do not update: Pinned to the last version supporting Java 8. # See https://checkstyle.sourceforge.io/releasenotes.html#Release_10.1 checkstylejava8 = "com.puppycrawl.tools:checkstyle:9.3" -# See https://github.com/google/error-prone/releases/tag/v2.11.0 +# 2.11.0+ requires JDK 11+ (See https://github.com/google/error-prone/releases/tag/v2.11.0) errorprone-corejava8 = "com.google.errorprone:error_prone_core:2.10.0" diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 51333856ddf..6c1635d5808 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -50,6 +50,7 @@ def migrate(String name, String inputDir, SourceSet sourceSet) { filter { String line -> line.replace('javax.servlet', 'jakarta.servlet') .replace('io.grpc.servlet', 'io.grpc.servlet.jakarta') + .replace('org.eclipse.jetty.servlet', 'org.eclipse.jetty.ee10.servlet') } } } From 9278833ce7ae20db8657b30897d2d46ab8bba15c Mon Sep 17 00:00:00 2001 From: deadEternally Date: Sat, 1 Feb 2025 18:13:16 +0530 Subject: [PATCH 03/22] Undo jetty ee10 migration for now. --- gradle/libs.versions.toml | 3 ++- servlet/jakarta/build.gradle | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 26d61666e24..c6c0bf33851 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -62,8 +62,9 @@ jetty-client = "org.eclipse.jetty:jetty-client:11.0.24" # Relocated to jetty-http3-server that we don't use jetty-http2-server = "org.eclipse.jetty.http2:http2-server:11.0.24" jetty-http2-server10 = "org.eclipse.jetty.http2:http2-server:10.0.20" -jetty-servlet = "org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.16" +jetty-servlet = "org.eclipse.jetty:jetty-servlet:11.0.24" jetty-servlet10 = "org.eclipse.jetty:jetty-servlet:10.0.20" +# 4.9.0+ requires Java 11. jsr305 = "com.github.spotbugs:spotbugs-annotations:4.8.6" junit = "junit:junit:4.13.2" # 2.17+ require Java 11+ (not mentioned in release notes) diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 6c1635d5808..51333856ddf 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -50,7 +50,6 @@ def migrate(String name, String inputDir, SourceSet sourceSet) { filter { String line -> line.replace('javax.servlet', 'jakarta.servlet') .replace('io.grpc.servlet', 'io.grpc.servlet.jakarta') - .replace('org.eclipse.jetty.servlet', 'org.eclipse.jetty.ee10.servlet') } } } From 4bd09bd56998e0ab027eaab67363e2503fc27221 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Sat, 1 Feb 2025 20:20:24 +0530 Subject: [PATCH 04/22] Fix jetty servlet version upgrades. --- gradle/libs.versions.toml | 5 ++--- servlet/jakarta/build.gradle | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c6c0bf33851..633f8515f62 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,10 +59,9 @@ javax-annotation = "org.apache.tomcat:annotations-api:6.0.53" javax-servlet-api = "javax.servlet:javax.servlet-api:4.0.1" # 12.0.0+ require Java 17+ jetty-client = "org.eclipse.jetty:jetty-client:11.0.24" -# Relocated to jetty-http3-server that we don't use -jetty-http2-server = "org.eclipse.jetty.http2:http2-server:11.0.24" +jetty-http2-server = "org.eclipse.jetty.http2:jetty-http2-server:12.0.16" jetty-http2-server10 = "org.eclipse.jetty.http2:http2-server:10.0.20" -jetty-servlet = "org.eclipse.jetty:jetty-servlet:11.0.24" +jetty-servlet = "org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.16" jetty-servlet10 = "org.eclipse.jetty:jetty-servlet:10.0.20" # 4.9.0+ requires Java 11. jsr305 = "com.github.spotbugs:spotbugs-annotations:4.8.6" diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 51333856ddf..62ff5ed86b4 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -50,6 +50,8 @@ def migrate(String name, String inputDir, SourceSet sourceSet) { filter { String line -> line.replace('javax.servlet', 'jakarta.servlet') .replace('io.grpc.servlet', 'io.grpc.servlet.jakarta') + .replace('org.eclipse.jetty.http2.parser', 'org.eclipse.jetty.http2') + .replace('org.eclipse.jetty.servlet', 'org.eclipse.jetty.ee10.servlet') } } } From 14178943825a71d9bc2d1289d501f0e8c53d75e9 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Mon, 3 Feb 2025 20:40:20 +0530 Subject: [PATCH 05/22] Revert jakarta version upgrades, since it fails build about Java 11 compiled class files: https://github.com/grpc/grpc-java/actions/runs/13116274751/job/36591256364?pr=11874 --- gradle/libs.versions.toml | 4 ++-- servlet/jakarta/build.gradle | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 33c2667c5ca..0a557e7c427 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,9 +59,9 @@ javax-annotation = "org.apache.tomcat:annotations-api:6.0.53" javax-servlet-api = "javax.servlet:javax.servlet-api:4.0.1" # 12.0.0+ require Java 17+ jetty-client = "org.eclipse.jetty:jetty-client:11.0.24" -jetty-http2-server = "org.eclipse.jetty.http2:jetty-http2-server:12.0.16" +jetty-http2-server = "org.eclipse.jetty.http2:http2-server:11.0.24" jetty-http2-server10 = "org.eclipse.jetty.http2:http2-server:10.0.20" -jetty-servlet = "org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.16" +jetty-servlet = "org.eclipse.jetty:jetty-servlet:11.0.24" jetty-servlet10 = "org.eclipse.jetty:jetty-servlet:10.0.20" # 4.9.0+ requires Java 11. jsr305 = "com.github.spotbugs:spotbugs-annotations:4.8.6" diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 62ff5ed86b4..51333856ddf 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -50,8 +50,6 @@ def migrate(String name, String inputDir, SourceSet sourceSet) { filter { String line -> line.replace('javax.servlet', 'jakarta.servlet') .replace('io.grpc.servlet', 'io.grpc.servlet.jakarta') - .replace('org.eclipse.jetty.http2.parser', 'org.eclipse.jetty.http2') - .replace('org.eclipse.jetty.servlet', 'org.eclipse.jetty.ee10.servlet') } } } From 528e731b609aad2742c4437b012bd09d285c9064 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Mon, 3 Feb 2025 20:48:03 +0530 Subject: [PATCH 06/22] Revert errorprone version upgrades, requires higher Java version. --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0a557e7c427..a61d3585d52 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -31,9 +31,9 @@ cronet-embedded = "org.chromium.net:cronet-embedded:119.6045.31" # It breaks Bazel (ArrayIndexOutOfBoundsException in turbine) and Dexing ("D8: # java.lang.NullPointerException"). We can trivially upgrade the Bazel CI to # 6.3.0+ (https://github.com/bazelbuild/bazel/issues/18743). -errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.36.0" +errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.30.0" # error-prone 2.32.0+ require Java 17+ -errorprone-core = "com.google.errorprone:error_prone_core:2.36.0" +errorprone-core = "com.google.errorprone:error_prone_core:2.31.0" google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.50.1" # google-auth-library 1.25.0+ requires error_prone_annotations 2.31.0+, which # breaks the Android build From 318a6a98b55c3103b9f2bd063a23eb4c0ae1244a Mon Sep 17 00:00:00 2001 From: deadEternally Date: Mon, 3 Feb 2025 21:14:01 +0530 Subject: [PATCH 07/22] Revert guava upgrade since it seems to require higher erorrprone annotations. --- gradle/libs.versions.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a61d3585d52..b55829b4dcb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -42,12 +42,13 @@ google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.30.1 # Release notes: https://cloud.google.com/logging/docs/release-notes google-cloud-logging = "com.google.cloud:google-cloud-logging:3.21.1" gson = "com.google.code.gson:gson:2.11.0" -guava = "com.google.guava:guava:33.4.0-android" +# 33.4.0 requires com.google.errorprone:error_prone_annotations:2.36.0 but we are stuck with 2.30.0 (see above) +guava = "com.google.guava:guava:33.3.1-android" guava-betaChecker = "com.google.guava:guava-beta-checker:1.0" guava-testlib = "com.google.guava:guava-testlib:33.4.0-android" # JRE version is needed for projects where its a transitive dependency, f.e. gcp-observability. # May be different from the -android version. -guava-jre = "com.google.guava:guava:33.4.0-jre" +guava-jre = "com.google.guava:guava:33.3.1-jre" hdrhistogram = "org.hdrhistogram:HdrHistogram:2.2.2" # 6.0.0+ use java.lang.Deprecated forRemoval and since from Java 9 jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.1.0" From 89f15d026dccbfd48a46f777b5ddd4f04b37bb3c Mon Sep 17 00:00:00 2001 From: deadEternally Date: Tue, 4 Feb 2025 11:16:36 +0530 Subject: [PATCH 08/22] Revert guava upgrade since it seems to require higher erorrprone annotations. --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b55829b4dcb..6f443734a15 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -45,7 +45,7 @@ gson = "com.google.code.gson:gson:2.11.0" # 33.4.0 requires com.google.errorprone:error_prone_annotations:2.36.0 but we are stuck with 2.30.0 (see above) guava = "com.google.guava:guava:33.3.1-android" guava-betaChecker = "com.google.guava:guava-beta-checker:1.0" -guava-testlib = "com.google.guava:guava-testlib:33.4.0-android" +guava-testlib = "com.google.guava:guava-testlib:33.1.0-android" # JRE version is needed for projects where its a transitive dependency, f.e. gcp-observability. # May be different from the -android version. guava-jre = "com.google.guava:guava:33.3.1-jre" From ab540c5fe666b11cd95781030e1cb57d9de8e4f6 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Tue, 4 Feb 2025 11:26:42 +0530 Subject: [PATCH 09/22] Re-introduce jetty servlet upgrades, the error was due to jakarta-servlet-api upgrade, not jetty, reverted jakarta-servlet-api back to 5.0.0 from 6.1.0 for Java 11 unsupported. --- gradle/libs.versions.toml | 6 +++--- servlet/jakarta/build.gradle | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6f443734a15..83123f60696 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -51,7 +51,7 @@ guava-testlib = "com.google.guava:guava-testlib:33.1.0-android" guava-jre = "com.google.guava:guava:33.3.1-jre" hdrhistogram = "org.hdrhistogram:HdrHistogram:2.2.2" # 6.0.0+ use java.lang.Deprecated forRemoval and since from Java 9 -jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.1.0" +jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:5.0.0" # Not using the relocated org.apache.tomcat:tomcat-annotations-api because it requires migrating # java.annotation to jakarta.annotation. According to # https://github.com/grpc/grpc-java/issues/6833#issuecomment-602242609 @@ -60,9 +60,9 @@ javax-annotation = "org.apache.tomcat:annotations-api:6.0.53" javax-servlet-api = "javax.servlet:javax.servlet-api:4.0.1" # 12.0.0+ require Java 17+ jetty-client = "org.eclipse.jetty:jetty-client:11.0.24" -jetty-http2-server = "org.eclipse.jetty.http2:http2-server:11.0.24" +jetty-http2-server = "org.eclipse.jetty.http2:jetty-http2-server:12.0.16" jetty-http2-server10 = "org.eclipse.jetty.http2:http2-server:10.0.20" -jetty-servlet = "org.eclipse.jetty:jetty-servlet:11.0.24" +jetty-servlet = "org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.16" jetty-servlet10 = "org.eclipse.jetty:jetty-servlet:10.0.20" # 4.9.0+ requires Java 11. jsr305 = "com.github.spotbugs:spotbugs-annotations:4.8.6" diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 51333856ddf..62ff5ed86b4 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -50,6 +50,8 @@ def migrate(String name, String inputDir, SourceSet sourceSet) { filter { String line -> line.replace('javax.servlet', 'jakarta.servlet') .replace('io.grpc.servlet', 'io.grpc.servlet.jakarta') + .replace('org.eclipse.jetty.http2.parser', 'org.eclipse.jetty.http2') + .replace('org.eclipse.jetty.servlet', 'org.eclipse.jetty.ee10.servlet') } } } From b9ef60efb01eec60cfdc39bffc7657670316ba4f Mon Sep 17 00:00:00 2001 From: deadEternally Date: Tue, 4 Feb 2025 11:41:03 +0530 Subject: [PATCH 10/22] Figured we can't upgrade google-auth libraries and the error_prone_annotations:2.36.0 is coming via it. | | | +--- com.google.auth:google-auth-library-oauth2-http:1.30.1 | | | | +--- com.google.auto.value:auto-value-annotations:1.11.0 | | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | | +--- com.google.auth:google-auth-library-credentials:1.30.1 | | | | +--- com.google.http-client:google-http-client:1.45.2 | | | | | +--- org.apache.httpcomponents:httpclient:4.5.14 | | | | | | +--- org.apache.httpcomponents:httpcore:4.4.16 | | | | | | \--- commons-codec:commons-codec:1.11 | | | | | +--- org.apache.httpcomponents:httpcore:4.4.16 | | | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | | | +--- com.google.errorprone:error_prone_annotations:2.36.0 --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 83123f60696..4bd3c1f173a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -37,8 +37,8 @@ errorprone-core = "com.google.errorprone:error_prone_core:2.31.0" google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.50.1" # google-auth-library 1.25.0+ requires error_prone_annotations 2.31.0+, which # breaks the Android build -google-auth-credentials = "com.google.auth:google-auth-library-credentials:1.30.1" -google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.30.1" +google-auth-credentials = "com.google.auth:google-auth-library-credentials:1.24.1" +google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.24.1" # Release notes: https://cloud.google.com/logging/docs/release-notes google-cloud-logging = "com.google.cloud:google-cloud-logging:3.21.1" gson = "com.google.code.gson:gson:2.11.0" From 4801e34fabb01456a4c6c923686aa490edfa0727 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Wed, 5 Feb 2025 15:42:25 +0530 Subject: [PATCH 11/22] Only compile and run Jetty test if Java 17. --- gradle/libs.versions.toml | 12 ++++++------ servlet/jakarta/build.gradle | 22 +++++++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4bd3c1f173a..9ba6dddff43 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,10 +19,10 @@ androidx-test-ext-junit = "androidx.test.ext:junit:1.2.1" androidx-test-rules = "androidx.test:rules:1.6.1" animalsniffer = "org.codehaus.mojo:animal-sniffer:1.24" animalsniffer-annotations = "org.codehaus.mojo:animal-sniffer-annotations:1.24" -assertj-core = "org.assertj:assertj-core:3.27.2" +assertj-core = "org.assertj:assertj-core:3.27.3" auto-value = "com.google.auto.value:auto-value:1.11.0" auto-value-annotations = "com.google.auto.value:auto-value-annotations:1.11.0" -checkstyle = "com.puppycrawl.tools:checkstyle:10.21.1" +checkstyle = "com.puppycrawl.tools:checkstyle:10.21.2" commons-math3 = "org.apache.commons:commons-math3:3.6.1" conscrypt = "org.conscrypt:conscrypt-openjdk-uber:2.5.2" cronet-api = "org.chromium.net:cronet-api:119.6045.31" @@ -34,13 +34,14 @@ cronet-embedded = "org.chromium.net:cronet-embedded:119.6045.31" errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.30.0" # error-prone 2.32.0+ require Java 17+ errorprone-core = "com.google.errorprone:error_prone_core:2.31.0" -google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.50.1" +google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.51.0" # google-auth-library 1.25.0+ requires error_prone_annotations 2.31.0+, which # breaks the Android build google-auth-credentials = "com.google.auth:google-auth-library-credentials:1.24.1" google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.24.1" # Release notes: https://cloud.google.com/logging/docs/release-notes -google-cloud-logging = "com.google.cloud:google-cloud-logging:3.21.1" +google-cloud-logging = "com.google.cloud:google-cloud-logging:3.21.2" +# 2.12.1 requires error_prone_annotations:2.36.0 but we are stuck with 2.30.0 gson = "com.google.code.gson:gson:2.11.0" # 33.4.0 requires com.google.errorprone:error_prone_annotations:2.36.0 but we are stuck with 2.30.0 (see above) guava = "com.google.guava:guava:33.3.1-android" @@ -64,8 +65,7 @@ jetty-http2-server = "org.eclipse.jetty.http2:jetty-http2-server:12.0.16" jetty-http2-server10 = "org.eclipse.jetty.http2:http2-server:10.0.20" jetty-servlet = "org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.16" jetty-servlet10 = "org.eclipse.jetty:jetty-servlet:10.0.20" -# 4.9.0+ requires Java 11. -jsr305 = "com.github.spotbugs:spotbugs-annotations:4.8.6" +jsr305 = "com.google.code.findbugs:jsr305:3.0.2" junit = "junit:junit:4.13.2" # 2.17+ require Java 11+ (not mentioned in release notes) lincheck = "org.jetbrains.kotlinx:lincheck-jvm:2.16" diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 62ff5ed86b4..21fedd271e2 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -8,13 +8,15 @@ description = "gRPC: Jakarta Servlet" // Set up classpaths and source directories for different servlet tests sourceSets { - // Only run these tests if java 11+ is being used - if (JavaVersion.current().isJava11Compatible()) { + // Only run these tests if the required minimum Java version is being used + if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { jettyTest { java { include '**/Jetty*.java' } } + } + if (JavaVersion.current().isJava11Compatible()) { tomcatTest { java { include '**/Tomcat*.java' @@ -59,9 +61,11 @@ def migrate(String name, String inputDir, SourceSet sourceSet) { migrate('main', '../src/main/java', sourceSets.main) -// Only build sourceSets and classpaths for tests if using Java 11 -if (JavaVersion.current().isJava11Compatible()) { +// Only build sourceSets and classpaths for tests if using the required minimum Java version +if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { migrate('jettyTest', '../src/jettyTest/java', sourceSets.jettyTest) +} +if (JavaVersion.current().isJava11Compatible()) { migrate('tomcatTest', '../src/tomcatTest/java', sourceSets.tomcatTest) migrate('undertowTest', '../src/undertowTest/java', sourceSets.undertowTest) } @@ -106,12 +110,16 @@ dependencies { // Set up individual classpaths for each test, to avoid any mismatch, // and ensure they are only used when supported by the current jvm -if (JavaVersion.current().isJava11Compatible()) { +if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { def jetty11Test = tasks.register('jetty11Test', Test) { classpath = sourceSets.jettyTest.runtimeClasspath testClassesDirs = sourceSets.jettyTest.output.classesDirs } - + tasks.named("check").configure { + dependsOn jetty11Test + } +} +if (JavaVersion.current().isJava11Compatible()) { def tomcat10Test = tasks.register('tomcat10Test', Test) { classpath = sourceSets.tomcatTest.runtimeClasspath testClassesDirs = sourceSets.tomcatTest.output.classesDirs @@ -136,6 +144,6 @@ if (JavaVersion.current().isJava11Compatible()) { } tasks.named("check").configure { - dependsOn jetty11Test, tomcat10Test, undertowTest + dependsOn tomcat10Test, undertowTest } } From 85d768899d274ac19c88d5d7e61b2790ef350f38 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Thu, 6 Feb 2025 17:52:48 +0530 Subject: [PATCH 12/22] Use 'release' setting instead of 'compatibility' setting for compileJettyTestJava because of certain methods not found in `Deprecated` class with source compatibility specified at 1.8 https://github.com/grpc/grpc-java/actions/runs/13155287866/job/36710941635 --- gradle/libs.versions.toml | 6 ++---- servlet/jakarta/build.gradle | 8 +++----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9ba6dddff43..0196fc67e7d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,10 +53,8 @@ guava-jre = "com.google.guava:guava:33.3.1-jre" hdrhistogram = "org.hdrhistogram:HdrHistogram:2.2.2" # 6.0.0+ use java.lang.Deprecated forRemoval and since from Java 9 jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:5.0.0" -# Not using the relocated org.apache.tomcat:tomcat-annotations-api because it requires migrating -# java.annotation to jakarta.annotation. According to -# https://github.com/grpc/grpc-java/issues/6833#issuecomment-602242609 -# there are so many different artifacts containing it, which causes classpath collisions. +# Using javax.annotation is fine as it is part of the JDK, we don't want to depend on J2EE +# where it is relocated to as org.apache.tomcat:tomcat-annotations-api. See issue #7179. javax-annotation = "org.apache.tomcat:annotations-api:6.0.53" javax-servlet-api = "javax.servlet:javax.servlet-api:4.0.1" # 12.0.0+ require Java 17+ diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 21fedd271e2..10212c9bc6c 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -37,11 +37,6 @@ configurations { undertowTestImplementation.extendsFrom(itImplementation) } -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} - // Mechanically transform sources from grpc-servlet to use the corrected packages def migrate(String name, String inputDir, SourceSet sourceSet) { def outputDir = layout.buildDirectory.dir('generated/sources/jakarta-' + name) @@ -115,6 +110,9 @@ if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { classpath = sourceSets.jettyTest.runtimeClasspath testClassesDirs = sourceSets.jettyTest.output.classesDirs } + tasks.named('compileJettyTestJava') { JavaCompile task -> + task.options.release.set 8 + } tasks.named("check").configure { dependsOn jetty11Test } From 4c2e988c9978b63bd22d63b5614310ff6dde9765 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Fri, 7 Feb 2025 21:52:19 +0530 Subject: [PATCH 13/22] Deprecated.forRelease was added in Java 9, so the release compatibility should be 9 to avoid compiler warning. --- servlet/jakarta/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 10212c9bc6c..3c1f0474495 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -111,7 +111,7 @@ if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { testClassesDirs = sourceSets.jettyTest.output.classesDirs } tasks.named('compileJettyTestJava') { JavaCompile task -> - task.options.release.set 8 + task.options.release.set 9 } tasks.named("check").configure { dependsOn jetty11Test From 40700381e0da91f5524fca4c34bb58b439efb16d Mon Sep 17 00:00:00 2001 From: deadEternally Date: Fri, 7 Feb 2025 22:15:36 +0530 Subject: [PATCH 14/22] Update versions in the various version files --- MODULE.bazel | 4 ++-- gradle/libs.versions.toml | 2 +- repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 4c7e1b3dca5..7131affbdff 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -8,7 +8,7 @@ module( # GRPC_DEPS_START IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.android:annotations:4.1.1.4", - "com.google.api.grpc:proto-google-common-protos:2.48.0", + "com.google.api.grpc:proto-google-common-protos:2.51.0", "com.google.auth:google-auth-library-credentials:1.24.1", "com.google.auth:google-auth-library-oauth2-http:1.24.1", "com.google.auto.value:auto-value-annotations:1.11.0", @@ -18,7 +18,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.errorprone:error_prone_annotations:2.30.0", "com.google.guava:failureaccess:1.0.1", "com.google.guava:guava:33.3.1-android", - "com.google.re2j:re2j:1.7", + "com.google.re2j:re2j:1.8", "com.google.truth:truth:1.4.2", "com.squareup.okhttp:okhttp:2.7.5", "com.squareup.okio:okio:2.10.0", # 3.0+ needs swapping to -jvm; need work to avoid flag-day diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0196fc67e7d..720867668a2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -46,7 +46,7 @@ gson = "com.google.code.gson:gson:2.11.0" # 33.4.0 requires com.google.errorprone:error_prone_annotations:2.36.0 but we are stuck with 2.30.0 (see above) guava = "com.google.guava:guava:33.3.1-android" guava-betaChecker = "com.google.guava:guava-beta-checker:1.0" -guava-testlib = "com.google.guava:guava-testlib:33.1.0-android" +guava-testlib = "com.google.guava:guava-testlib:33.3.1-android" # JRE version is needed for projects where its a transitive dependency, f.e. gcp-observability. # May be different from the -android version. guava-jre = "com.google.guava:guava:33.3.1-jre" diff --git a/repositories.bzl b/repositories.bzl index 3f4cd11c1a6..b431b283a91 100644 --- a/repositories.bzl +++ b/repositories.bzl @@ -12,7 +12,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") # GRPC_DEPS_START IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.android:annotations:4.1.1.4", - "com.google.api.grpc:proto-google-common-protos:2.48.0", + "com.google.api.grpc:proto-google-common-protos:2.51.0", "com.google.auth:google-auth-library-credentials:1.24.1", "com.google.auth:google-auth-library-oauth2-http:1.24.1", "com.google.auto.value:auto-value-annotations:1.11.0", @@ -22,7 +22,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.errorprone:error_prone_annotations:2.30.0", "com.google.guava:failureaccess:1.0.1", "com.google.guava:guava:33.3.1-android", - "com.google.re2j:re2j:1.7", + "com.google.re2j:re2j:1.8", "com.google.truth:truth:1.4.2", "com.squareup.okhttp:okhttp:2.7.5", "com.squareup.okio:okio:2.10.0", # 3.0+ needs swapping to -jvm; need work to avoid flag-day From d872af83495885af8b24cf7a5d5fdcf580b160e8 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Mon, 10 Feb 2025 17:43:16 +0530 Subject: [PATCH 15/22] Re-add java compilation source compatibility as Java 8 for servlet jakarta. --- gradle/libs.versions.toml | 2 +- servlet/jakarta/build.gradle | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 720867668a2..722d550b7f8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -54,7 +54,7 @@ hdrhistogram = "org.hdrhistogram:HdrHistogram:2.2.2" # 6.0.0+ use java.lang.Deprecated forRemoval and since from Java 9 jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:5.0.0" # Using javax.annotation is fine as it is part of the JDK, we don't want to depend on J2EE -# where it is relocated to as org.apache.tomcat:tomcat-annotations-api. See issue #7179. +# where it is relocated to as org.apache.tomcat:tomcat-annotations-api. See issue #9179. javax-annotation = "org.apache.tomcat:annotations-api:6.0.53" javax-servlet-api = "javax.servlet:javax.servlet-api:4.0.1" # 12.0.0+ require Java 17+ diff --git a/servlet/jakarta/build.gradle b/servlet/jakarta/build.gradle index 3c1f0474495..d1ebc1d4dc1 100644 --- a/servlet/jakarta/build.gradle +++ b/servlet/jakarta/build.gradle @@ -37,6 +37,11 @@ configurations { undertowTestImplementation.extendsFrom(itImplementation) } +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + // Mechanically transform sources from grpc-servlet to use the corrected packages def migrate(String name, String inputDir, SourceSet sourceSet) { def outputDir = layout.buildDirectory.dir('generated/sources/jakarta-' + name) From 9b7893f4642bed656245885f0d359d2195063aa1 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Tue, 11 Feb 2025 10:10:29 +0530 Subject: [PATCH 16/22] Try changing android min-sdk to 21 because :grpc-android-interop-testing:mergeDexDebug task is failing with > Could not resolve all files for configuration ':grpc-android-interop-testing:debugRuntimeClasspath'. > Failed to transform annotation-jvm-1.9.1.jar (androidx.annotation:annotation-jvm:1.9.1) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=20, org.gradle.category=library, org.gradle.jvm.environment=standard-jvm, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime, org.jetbrains.kotlin.platform.type=jvm}. > Execution failed for DexingWithClasspathTransform: /root/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-jvm/1.9.1/b17951747e38bf3986a24431b9ba0d039958aa5f/annotation-jvm-1.9.1.jar. > Error while dexing. > Failed to transform kotlin-stdlib-1.9.24.jar (org.jetbrains.kotlin:kotlin-stdlib:1.9.24) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=20, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime}. > Execution failed for DexingWithClasspathTransform: /root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.9.24/9928532f12c66ad816a625b3f9984f8368ca6d2b/kotlin-stdlib-1.9.24.jar. > Error while dexing. --- android-interop-testing/build.gradle | 4 ---- 1 file changed, 4 deletions(-) diff --git a/android-interop-testing/build.gradle b/android-interop-testing/build.gradle index 4f775d734e9..ed52f2cdfab 100644 --- a/android-interop-testing/build.gradle +++ b/android-interop-testing/build.gradle @@ -33,10 +33,6 @@ android { defaultConfig { applicationId "io.grpc.android.integrationtest" - // Held back to 20 as Gradle fails to build at the 21 level. This is - // presumably a Gradle bug that can be revisited later. - // Maybe this issue: https://github.com/gradle/gradle/issues/20778 - minSdkVersion 20 targetSdkVersion 33 versionCode 1 versionName "1.0" From a69f51429559c00daf75418aa4065850db33f511 Mon Sep 17 00:00:00 2001 From: deadEternally Date: Tue, 11 Feb 2025 10:29:06 +0530 Subject: [PATCH 17/22] Try changing android min-sdk to 21 because :grpc-android-interop-testing:mergeDexDebug task is failing with > Could not resolve all files for configuration ':grpc-android-interop-testing:debugRuntimeClasspath'. > Failed to transform annotation-jvm-1.9.1.jar (androidx.annotation:annotation-jvm:1.9.1) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=20, org.gradle.category=library, org.gradle.jvm.environment=standard-jvm, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime, org.jetbrains.kotlin.platform.type=jvm}. > Execution failed for DexingWithClasspathTransform: /root/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-jvm/1.9.1/b17951747e38bf3986a24431b9ba0d039958aa5f/annotation-jvm-1.9.1.jar. > Error while dexing. > Failed to transform kotlin-stdlib-1.9.24.jar (org.jetbrains.kotlin:kotlin-stdlib:1.9.24) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=20, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime}. > Execution failed for DexingWithClasspathTransform: /root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.9.24/9928532f12c66ad816a625b3f9984f8368ca6d2b/kotlin-stdlib-1.9.24.jar. > Error while dexing. --- android-interop-testing/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/android-interop-testing/src/main/AndroidManifest.xml b/android-interop-testing/src/main/AndroidManifest.xml index 35f3ee33a2b..c8159ddddc9 100644 --- a/android-interop-testing/src/main/AndroidManifest.xml +++ b/android-interop-testing/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + Date: Tue, 11 Feb 2025 11:56:17 +0530 Subject: [PATCH 18/22] Try minsdk 21 in build.gradle like before (instead of just in AndroidManifest.xml) --- android-interop-testing/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/android-interop-testing/build.gradle b/android-interop-testing/build.gradle index ed52f2cdfab..34d3e3f3c16 100644 --- a/android-interop-testing/build.gradle +++ b/android-interop-testing/build.gradle @@ -33,6 +33,7 @@ android { defaultConfig { applicationId "io.grpc.android.integrationtest" + minSdkVersion 21 targetSdkVersion 33 versionCode 1 versionName "1.0" From 51c3731bd5821f302e051d95671a91f21e516fea Mon Sep 17 00:00:00 2001 From: deadEternally Date: Tue, 11 Feb 2025 16:28:06 +0530 Subject: [PATCH 19/22] Fix syntax. --- android-interop-testing/src/main/AndroidManifest.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/android-interop-testing/src/main/AndroidManifest.xml b/android-interop-testing/src/main/AndroidManifest.xml index c8159ddddc9..32454fcf48d 100644 --- a/android-interop-testing/src/main/AndroidManifest.xml +++ b/android-interop-testing/src/main/AndroidManifest.xml @@ -6,8 +6,7 @@ - - + Date: Tue, 11 Feb 2025 23:00:05 +0530 Subject: [PATCH 20/22] Remove android-annotations upgrade since some new android failures https://btx.cloud.google.com/invocations/34711993-f33f-423f-bb91-3e74c9affda4/targets/grpc%2Fjava%2Fmaster%2Fpresubmit%2Flinux_artifacts/log are still occurring after trying min sdk version 21. --- android-interop-testing/build.gradle | 5 ++++- android-interop-testing/src/main/AndroidManifest.xml | 2 +- gradle/libs.versions.toml | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/android-interop-testing/build.gradle b/android-interop-testing/build.gradle index 34d3e3f3c16..4f775d734e9 100644 --- a/android-interop-testing/build.gradle +++ b/android-interop-testing/build.gradle @@ -33,7 +33,10 @@ android { defaultConfig { applicationId "io.grpc.android.integrationtest" - minSdkVersion 21 + // Held back to 20 as Gradle fails to build at the 21 level. This is + // presumably a Gradle bug that can be revisited later. + // Maybe this issue: https://github.com/gradle/gradle/issues/20778 + minSdkVersion 20 targetSdkVersion 33 versionCode 1 versionName "1.0" diff --git a/android-interop-testing/src/main/AndroidManifest.xml b/android-interop-testing/src/main/AndroidManifest.xml index 32454fcf48d..35f3ee33a2b 100644 --- a/android-interop-testing/src/main/AndroidManifest.xml +++ b/android-interop-testing/src/main/AndroidManifest.xml @@ -6,7 +6,7 @@ - + Date: Tue, 11 Feb 2025 23:57:11 +0530 Subject: [PATCH 21/22] androidx-core cannot be upgraded to 1.15.0: https://btx.cloud.google.com/invocations/792ce5c9-9a78-4d46-86ff-2d446e471d46/targets/grpc%2Fjava%2Fmaster%2Fpresubmit%2Fandroid;config=default/log --- gradle/libs.versions.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 154b44fc307..be72cfed6e3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,6 +11,8 @@ protobuf = "3.25.5" [libraries] android-annotations = "com.google.android:annotations:4.1.1.4" androidx-annotation = "androidx.annotation:annotation:1.9.0" +# 1.15.0 requires libraries and applications that depend on it to compile against +# version 35 or later of the Android APIs. androidx-core = "androidx.core:core:1.15.0" androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.8.7" androidx-lifecycle-service = "androidx.lifecycle:lifecycle-service:2.8.7" From d2871e3fff92bd1c6b073aaeeb2192bbc0db01ac Mon Sep 17 00:00:00 2001 From: deadEternally Date: Wed, 12 Feb 2025 00:14:37 +0530 Subject: [PATCH 22/22] androidx-core cannot be upgraded to 1.15.0: https://btx.cloud.google.com/invocations/792ce5c9-9a78-4d46-86ff-2d446e471d46/targets/grpc%2Fjava%2Fmaster%2Fpresubmit%2Fandroid;config=default/log --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index be72cfed6e3..c1554d6b2e0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ android-annotations = "com.google.android:annotations:4.1.1.4" androidx-annotation = "androidx.annotation:annotation:1.9.0" # 1.15.0 requires libraries and applications that depend on it to compile against # version 35 or later of the Android APIs. -androidx-core = "androidx.core:core:1.15.0" +androidx-core = "androidx.core:core:1.13.1" androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.8.7" androidx-lifecycle-service = "androidx.lifecycle:lifecycle-service:2.8.7" androidx-test-core = "androidx.test:core:1.6.1"