Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version upgrades #11874

Merged
merged 23 commits into from
Feb 11, 2025
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
77c7ccf
in-progress changes
kannanjgithub Jan 16, 2025
659baf5
Version upgrades. Upgrading org.eclipse.jetty:jetty-servlet:11.0.24 t…
kannanjgithub Jan 21, 2025
9278833
Undo jetty ee10 migration for now.
kannanjgithub Feb 1, 2025
4bd09bd
Fix jetty servlet version upgrades.
kannanjgithub Feb 1, 2025
dc2d2b1
Merge branch 'grpc:master' into versionupgrade
kannanjgithub Feb 3, 2025
1417894
Revert jakarta version upgrades, since it fails build about Java 11 c…
kannanjgithub Feb 3, 2025
528e731
Revert errorprone version upgrades, requires higher Java version.
kannanjgithub Feb 3, 2025
318a6a9
Revert guava upgrade since it seems to require higher erorrprone anno…
kannanjgithub Feb 3, 2025
89f15d0
Revert guava upgrade since it seems to require higher erorrprone anno…
kannanjgithub Feb 4, 2025
ab540c5
Re-introduce jetty servlet upgrades, the error was due to jakarta-ser…
kannanjgithub Feb 4, 2025
b9ef60e
Figured we can't upgrade google-auth libraries and the error_prone_an…
kannanjgithub Feb 4, 2025
4801e34
Only compile and run Jetty test if Java 17.
kannanjgithub Feb 5, 2025
85d7688
Use 'release' setting instead of 'compatibility' setting for compileJ…
kannanjgithub Feb 6, 2025
4c2e988
Deprecated.forRelease was added in Java 9, so the release compatibili…
kannanjgithub Feb 7, 2025
4070038
Update versions in the various version files
kannanjgithub Feb 7, 2025
d872af8
Re-add java compilation source compatibility as Java 8 for servlet ja…
kannanjgithub Feb 10, 2025
9b7893f
Try changing android min-sdk to 21 because :grpc-android-interop-test…
kannanjgithub Feb 11, 2025
a69f514
Try changing android min-sdk to 21 because :grpc-android-interop-test…
kannanjgithub Feb 11, 2025
ca509bc
Try minsdk 21 in build.gradle like before (instead of just in Android…
kannanjgithub Feb 11, 2025
51c3731
Fix syntax.
kannanjgithub Feb 11, 2025
cf00cca
Remove android-annotations upgrade since some new android failures ht…
kannanjgithub Feb 11, 2025
4be920a
androidx-core cannot be upgraded to 1.15.0: https://btx.cloud.google.…
kannanjgithub Feb 11, 2025
d2871e3
androidx-core cannot be upgraded to 1.15.0: https://btx.cloud.google.…
kannanjgithub Feb 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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
Expand Down
40 changes: 22 additions & 18 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ 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"
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.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.19.0"
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"
Expand All @@ -34,14 +34,16 @@ 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.48.0"
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.20.6"
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"
guava-betaChecker = "com.google.guava:guava-beta-checker:1.0"
guava-testlib = "com.google.guava:guava-testlib:33.3.1-android"
Expand All @@ -51,13 +53,15 @@ 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"
# 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 #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+
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"
ejona86 marked this conversation as resolved.
Show resolved Hide resolved
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"
junit = "junit:junit:4.13.2"
Expand Down Expand Up @@ -85,18 +89,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+
Expand All @@ -109,5 +113,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"
4 changes: 2 additions & 2 deletions repositories.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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
Expand Down
27 changes: 20 additions & 7 deletions servlet/jakarta/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -50,16 +52,20 @@ 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')
}
}
}
}

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)
}
Expand Down Expand Up @@ -104,12 +110,19 @@ 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('compileJettyTestJava') { JavaCompile task ->
task.options.release.set 9
}
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
Expand All @@ -134,6 +147,6 @@ if (JavaVersion.current().isJava11Compatible()) {
}

tasks.named("check").configure {
dependsOn jetty11Test, tomcat10Test, undertowTest
dependsOn tomcat10Test, undertowTest
}
}