diff --git a/MODULE.bazel b/MODULE.bazel
index f58d2daa40a..724f537ee6f 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -8,16 +8,16 @@ 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.29.0",
- "com.google.auth:google-auth-library-credentials:1.23.0",
- "com.google.auth:google-auth-library-oauth2-http:1.23.0",
+ "com.google.api.grpc:proto-google-common-protos:2.48.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",
"com.google.auto.value:auto-value:1.11.0",
"com.google.code.findbugs:jsr305:3.0.2",
"com.google.code.gson:gson:2.11.0",
- "com.google.errorprone:error_prone_annotations:2.28.0",
+ "com.google.errorprone:error_prone_annotations:2.30.0",
"com.google.guava:failureaccess:1.0.1",
- "com.google.guava:guava:33.2.1-android",
+ "com.google.guava:guava:33.3.1-android",
"com.google.re2j:re2j:1.7",
"com.google.truth:truth:1.4.2",
"com.squareup.okhttp:okhttp:2.7.5",
diff --git a/api/src/main/java/io/grpc/ClientCall.java b/api/src/main/java/io/grpc/ClientCall.java
index df9e15001e1..c915c8beaac 100644
--- a/api/src/main/java/io/grpc/ClientCall.java
+++ b/api/src/main/java/io/grpc/ClientCall.java
@@ -67,7 +67,7 @@
* manner, and notifies gRPC library to receive additional response after one is consumed by
* a fictional processResponse()
.
*
- *
+ ** call = channel.newCall(bidiStreamingMethod, callOptions); * listener = new ClientCall.Listener<FooResponse>() { * @Override diff --git a/api/src/main/java/io/grpc/LoadBalancer.java b/api/src/main/java/io/grpc/LoadBalancer.java index 97ead20ed36..d5f44dafa5e 100644 --- a/api/src/main/java/io/grpc/LoadBalancer.java +++ b/api/src/main/java/io/grpc/LoadBalancer.java @@ -1033,8 +1033,8 @@ public Subchannel createSubchannel(CreateSubchannelArgs args) { } /** - * Out-of-band channel for LoadBalancer’s own RPC needs, e.g., talking to an external - * load-balancer service. + * Create an out-of-band channel for the LoadBalancer’s own RPC needs, e.g., talking to an + * external load-balancer service. * *The LoadBalancer is responsible for closing unused OOB channels, and closing all OOB * channels within {@link #shutdown}. @@ -1044,7 +1044,12 @@ public Subchannel createSubchannel(CreateSubchannelArgs args) { public abstract ManagedChannel createOobChannel(EquivalentAddressGroup eag, String authority); /** - * Accept a list of EAG for multiple authorities: https://github.com/grpc/grpc-java/issues/4618 + * Create an out-of-band channel for the LoadBalancer's own RPC needs, e.g., talking to an + * external load-balancer service. This version of the method allows multiple EAGs, so different + * addresses can have different authorities. + * + *
The LoadBalancer is responsible for closing unused OOB channels, and closing all OOB + * channels within {@link #shutdown}. * */ public ManagedChannel createOobChannel(List
eag, String authority) { diff --git a/core/src/test/java/io/grpc/internal/AbstractServerStreamTest.java b/core/src/test/java/io/grpc/internal/AbstractServerStreamTest.java index 66fa92b1cf8..b41d45e972e 100644 --- a/core/src/test/java/io/grpc/internal/AbstractServerStreamTest.java +++ b/core/src/test/java/io/grpc/internal/AbstractServerStreamTest.java @@ -85,7 +85,7 @@ public void setUp() { } /** - * Test for issue https://github.com/grpc/grpc-java/issues/1795 + * Test for issue https://github.com/grpc/grpc-java/issues/1795 . */ @Test public void frameShouldBeIgnoredAfterDeframerClosed() { @@ -212,7 +212,7 @@ public void closed(Status status) { } /** - * Test for issue https://github.com/grpc/grpc-java/issues/615 + * Test for issue https://github.com/grpc/grpc-java/issues/615 . */ @Test public void completeWithoutClose() { diff --git a/core/src/testFixtures/java/io/grpc/internal/AbstractTransportTest.java b/core/src/testFixtures/java/io/grpc/internal/AbstractTransportTest.java index 69d8e65955e..aea7ff49032 100644 --- a/core/src/testFixtures/java/io/grpc/internal/AbstractTransportTest.java +++ b/core/src/testFixtures/java/io/grpc/internal/AbstractTransportTest.java @@ -269,7 +269,7 @@ protected long fakeCurrentTimeNanos() { // (and maybe exceptions handled) /** - * Test for issue https://github.com/grpc/grpc-java/issues/1682 + * Test for issue https://github.com/grpc/grpc-java/issues/1682 . */ @Test public void frameAfterRstStreamShouldNotBreakClientChannel() throws Exception { diff --git a/gcp-observability/src/test/java/io/grpc/gcp/observability/LoggingTest.java b/gcp-observability/src/test/java/io/grpc/gcp/observability/LoggingTest.java index ee711cad097..92e67b01e01 100644 --- a/gcp-observability/src/test/java/io/grpc/gcp/observability/LoggingTest.java +++ b/gcp-observability/src/test/java/io/grpc/gcp/observability/LoggingTest.java @@ -73,7 +73,7 @@ public class LoggingTest { /** * Cloud logging test using global interceptors. * - * Ignoring test, because it calls external Cloud Logging APIs. + *
Ignoring test, because it calls external Cloud Logging APIs. * To test cloud logging setup locally, * 1. Set up Cloud auth credentials * 2. Assign permissions to service account to write logs to project specified by diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8d7fb3766e0..b9f9c5350e1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,45 +10,54 @@ protobuf = "3.25.5" [libraries] android-annotations = "com.google.android:annotations:4.1.1.4" -androidx-annotation = "androidx.annotation:annotation:1.8.0" +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.3" -androidx-lifecycle-service = "androidx.lifecycle:lifecycle-service:2.8.3" +androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.8.6" +androidx-lifecycle-service = "androidx.lifecycle:lifecycle-service:2.8.6" 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.0" +assertj-core = "org.assertj:assertj-core:3.26.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.17.0" +checkstyle = "com.puppycrawl.tools:checkstyle:10.19.0" 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" cronet-embedded = "org.chromium.net:cronet-embedded:119.6045.31" -errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.28.0" -errorprone-core = "com.google.errorprone:error_prone_core:2.28.0" -google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.41.0" -google-auth-credentials = "com.google.auth:google-auth-library-credentials:1.23.0" -google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.23.0" +# error-prone 2.31.0+ blocked on https://github.com/grpc/grpc-java/issues/10152 +# 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" +# 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-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.19.0" +google-cloud-logging = "com.google.cloud:google-cloud-logging:3.20.6" gson = "com.google.code.gson:gson:2.11.0" -guava = "com.google.guava:guava:33.2.1-android" +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.2.1-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.2.1-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:5.0.0" javax-annotation = "org.apache.tomcat:annotations-api:6.0.53" javax-servlet-api = "javax.servlet:javax.servlet-api:4.0.1" -jetty-client = "org.eclipse.jetty:jetty-client:10.0.20" -jetty-http2-server = "org.eclipse.jetty.http2:http2-server:11.0.22" +# 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-server10 = "org.eclipse.jetty.http2:http2-server:10.0.20" -jetty-servlet = "org.eclipse.jetty:jetty-servlet:11.0.22" +jetty-servlet = "org.eclipse.jetty:jetty-servlet:11.0.24" 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" @@ -76,11 +85,11 @@ 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.40.0" -opentelemetry-exporter-prometheus = "io.opentelemetry:opentelemetry-exporter-prometheus:1.40.0-alpha" -opentelemetry-gcp-resources = "io.opentelemetry.contrib:opentelemetry-gcp-resources:1.36.0-alpha" -opentelemetry-sdk-extension-autoconfigure = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.40.0" -opentelemetry-sdk-testing = "io.opentelemetry:opentelemetry-sdk-testing:1.40.0" +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" 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" } @@ -90,11 +99,12 @@ re2j = "com.google.re2j:re2j:1.7" robolectric = "org.robolectric:robolectric:4.13" signature-android = "net.sf.androidscents.signature:android-api-level-19:4.4.2_r4" signature-java = "org.codehaus.mojo.signature:java18:1.0" -tomcat-embed-core = "org.apache.tomcat.embed:tomcat-embed-core:10.1.25" +# 11.0.0+ require Java 17+ +tomcat-embed-core = "org.apache.tomcat.embed:tomcat-embed-core:10.1.31" tomcat-embed-core9 = "org.apache.tomcat.embed:tomcat-embed-core:9.0.89" truth = "com.google.truth:truth:1.4.4" undertow-servlet22 = "io.undertow:undertow-servlet:2.2.32.Final" -undertow-servlet = "io.undertow:undertow-servlet:2.3.14.Final" +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 diff --git a/inprocess/src/main/java/io/grpc/inprocess/InProcessTransport.java b/inprocess/src/main/java/io/grpc/inprocess/InProcessTransport.java index 4212d96e9fb..eacf46ca4a2 100644 --- a/inprocess/src/main/java/io/grpc/inprocess/InProcessTransport.java +++ b/inprocess/src/main/java/io/grpc/inprocess/InProcessTransport.java @@ -606,7 +606,7 @@ public void close(Status status, Metadata trailers) { notifyClientClose(status, trailers); } - /** clientStream.serverClosed() must be called before this method */ + /** clientStream.serverClosed() must be called before this method. */ private void notifyClientClose(Status status, Metadata trailers) { Status clientStatus = cleanStatus(status, includeCauseWithStatus); synchronized (this) { diff --git a/interop-testing/src/main/java/io/grpc/testing/integration/AbstractInteropTest.java b/interop-testing/src/main/java/io/grpc/testing/integration/AbstractInteropTest.java index a581c750028..53d24d74a36 100644 --- a/interop-testing/src/main/java/io/grpc/testing/integration/AbstractInteropTest.java +++ b/interop-testing/src/main/java/io/grpc/testing/integration/AbstractInteropTest.java @@ -133,7 +133,7 @@ /** * Abstract base class for all GRPC transport tests. * - *
New tests should avoid using Mockito to support running on AppEngine.
+ *New tests should avoid using Mockito to support running on AppEngine. */ public abstract class AbstractInteropTest { private static Logger logger = Logger.getLogger(AbstractInteropTest.class.getName()); diff --git a/repositories.bzl b/repositories.bzl index f8cf77c8190..375c8872e66 100644 --- a/repositories.bzl +++ b/repositories.bzl @@ -12,16 +12,16 @@ 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.29.0", - "com.google.auth:google-auth-library-credentials:1.23.0", - "com.google.auth:google-auth-library-oauth2-http:1.23.0", + "com.google.api.grpc:proto-google-common-protos:2.48.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", "com.google.auto.value:auto-value:1.11.0", "com.google.code.findbugs:jsr305:3.0.2", "com.google.code.gson:gson:2.11.0", - "com.google.errorprone:error_prone_annotations:2.28.0", + "com.google.errorprone:error_prone_annotations:2.30.0", "com.google.guava:failureaccess:1.0.1", - "com.google.guava:guava:33.2.1-android", + "com.google.guava:guava:33.3.1-android", "com.google.re2j:re2j:1.7", "com.google.truth:truth:1.4.2", "com.squareup.okhttp:okhttp:2.7.5", diff --git a/util/src/testFixtures/java/io/grpc/util/AbstractTestHelper.java b/util/src/testFixtures/java/io/grpc/util/AbstractTestHelper.java index bdeff9d17c5..bbf2d5efe9f 100644 --- a/util/src/testFixtures/java/io/grpc/util/AbstractTestHelper.java +++ b/util/src/testFixtures/java/io/grpc/util/AbstractTestHelper.java @@ -55,6 +55,7 @@ * To use it replace
* \@mock Helper mockHelper
* with
+ * *Helper mockHelper = mock(Helper.class, delegatesTo(new TestHelper()));
*
* TestHelper will need to define accessors for the maps that information is store within as diff --git a/xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java b/xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java index 87e875e75f6..b0ef0131a6d 100644 --- a/xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java +++ b/xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java @@ -3173,7 +3173,7 @@ public void canonifyResourceName() { /** * Tests compliance with RFC 3986 section 3.3 - * https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 + * https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 . */ @Test public void percentEncodePath() {