diff --git a/.github/workflows/branch-testing.yml b/.github/workflows/branch-testing.yml
index 32c280bf8ce..89649a799d1 100644
--- a/.github/workflows/branch-testing.yml
+++ b/.github/workflows/branch-testing.yml
@@ -21,7 +21,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- - uses: actions/setup-java@v5
+ - uses: actions/setup-java@v6
with:
java-version: ${{ matrix.jre }}
distribution: 'temurin'
diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml
index 56bdc023187..0bd82ac6f67 100644
--- a/.github/workflows/testing.yml
+++ b/.github/workflows/testing.yml
@@ -22,7 +22,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- - uses: actions/setup-java@v5
+ - uses: actions/setup-java@v6
with:
java-version: ${{ matrix.jre }}
distribution: 'temurin'
diff --git a/MODULE.bazel b/MODULE.bazel
index cbf1f1bb0f4..e7a1b628a7a 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -13,16 +13,16 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [
"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.14.0",
- "com.google.errorprone:error_prone_annotations:2.50.0",
+ "com.google.code.gson:gson:2.15.0",
+ "com.google.errorprone:error_prone_annotations:2.51.0",
"com.google.guava:failureaccess:1.0.1",
- "com.google.guava:guava:33.6.0-android",
+ "com.google.guava:guava:33.7.2-android",
"com.google.re2j:re2j:1.8",
"com.google.s2a.proto.v2:s2a-proto:0.1.3",
"com.google.truth:truth:1.4.5",
- "dev.cel:runtime:0.13.1",
- "dev.cel:protobuf:0.13.1",
- "dev.cel:common:0.13.1",
+ "dev.cel:runtime:0.15.0",
+ "dev.cel:protobuf:0.15.0",
+ "dev.cel:common:0.15.0",
"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
"io.netty:netty-buffer:4.2.17.Final",
@@ -45,7 +45,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [
"junit:junit:4.13.2",
"org.mockito:mockito-core:4.4.0",
"org.checkerframework:checker-qual:3.49.5",
- "org.codehaus.mojo:animal-sniffer-annotations:1.27",
+ "org.codehaus.mojo:animal-sniffer-annotations:1.28",
]
# GRPC_DEPS_END
diff --git a/examples/example-gauth/pom.xml b/examples/example-gauth/pom.xml
index c09fe8862d9..3f8cb45af4d 100644
--- a/examples/example-gauth/pom.xml
+++ b/examples/example-gauth/pom.xml
@@ -31,7 +31,7 @@
com.google.code.gson
gson
- 2.14.0
+ 2.15.0
diff --git a/examples/example-gcp-csm-observability/build.gradle b/examples/example-gcp-csm-observability/build.gradle
index ef830045d9e..aba42e2bf76 100644
--- a/examples/example-gcp-csm-observability/build.gradle
+++ b/examples/example-gcp-csm-observability/build.gradle
@@ -24,8 +24,8 @@ java {
// updating the version in our release process.
def grpcVersion = '1.86.0-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.8'
-def openTelemetryVersion = '1.64.0'
-def openTelemetryPrometheusVersion = '1.64.0-alpha'
+def openTelemetryVersion = '1.67.0'
+def openTelemetryPrometheusVersion = '1.67.0-alpha'
dependencies {
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/example-oauth/pom.xml b/examples/example-oauth/pom.xml
index 6913eaa91af..07a66614564 100644
--- a/examples/example-oauth/pom.xml
+++ b/examples/example-oauth/pom.xml
@@ -33,7 +33,7 @@
com.google.code.gson
gson
- 2.14.0
+ 2.15.0
diff --git a/examples/example-opentelemetry/build.gradle b/examples/example-opentelemetry/build.gradle
index 6f18ee2f45a..d78fb0eefc9 100644
--- a/examples/example-opentelemetry/build.gradle
+++ b/examples/example-opentelemetry/build.gradle
@@ -23,8 +23,8 @@ java {
// updating the version in our release process.
def grpcVersion = '1.86.0-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.8'
-def openTelemetryVersion = '1.64.0'
-def openTelemetryPrometheusVersion = '1.64.0-alpha'
+def openTelemetryVersion = '1.67.0'
+def openTelemetryPrometheusVersion = '1.67.0-alpha'
dependencies {
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/wrapper/gradle-wrapper.properties
index b41387345b5..bf2c10219db 100644
--- a/examples/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 668649bf3a0..0fbaa8ea145 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -22,8 +22,8 @@ androidx-test-core = "androidx.test:core:1.7.0"
androidx-test-ext-junit = "androidx.test.ext:junit:1.3.0"
androidx-test-rules = "androidx.test:rules:1.7.0"
androidx-test-runner = "androidx.test:runner:1.7.0"
-animalsniffer = "org.codehaus.mojo:animal-sniffer:1.27"
-animalsniffer-annotations = "org.codehaus.mojo:animal-sniffer-annotations:1.27"
+animalsniffer = "org.codehaus.mojo:animal-sniffer:1.28"
+animalsniffer-annotations = "org.codehaus.mojo:animal-sniffer-annotations:1.28"
assertj-core = "org.assertj:assertj-core:3.27.7"
# 1.11.1 started converting jsr305 @Nullable to jspecify
# checkForUpdates: auto-value:1.11.0
@@ -37,18 +37,18 @@ checkstyle = "com.puppycrawl.tools:checkstyle:10.26.1"
# checkstyle 10.0+ requires Java 11+
# See https://checkstyle.sourceforge.io/releasenotes_old_8-35_10-26.html#Release_10.0
# checkForUpdates: checkstylejava8:9.+
-cel-runtime = "dev.cel:runtime:0.13.1"
-cel-protobuf = "dev.cel:protobuf:0.13.1"
-cel-compiler = "dev.cel:compiler:0.13.1"
+cel-runtime = "dev.cel:runtime:0.15.0"
+cel-protobuf = "dev.cel:protobuf:0.15.0"
+cel-compiler = "dev.cel:compiler:0.15.0"
checkstylejava8 = "com.puppycrawl.tools:checkstyle:9.3"
commons-math3 = "org.apache.commons:commons-math3:3.6.1"
-conscrypt = "org.conscrypt:conscrypt-openjdk-uber:2.6.1"
+conscrypt = "org.conscrypt:conscrypt-openjdk-uber:2.8.0"
# 141.7340.3+ requires Java 17+
# checkForUpdates: cronet-api:119.6045.31
cronet-api = "org.chromium.net:cronet-api:119.6045.31"
# checkForUpdates: cronet-embedded:119.6045.31
cronet-embedded = "org.chromium.net:cronet-embedded:119.6045.31"
-errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.50.0"
+errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.51.0"
# 2.32.0+ requires Java 17+
# checkForUpdates: errorprone-core:2.31.+
errorprone-core = "com.google.errorprone:error_prone_core:2.31.0"
@@ -67,13 +67,13 @@ google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.42.1
# 3.23.11+ require protobuf 4.x
# checkForUpdates: google-cloud-logging:3.23.10
google-cloud-logging = "com.google.cloud:google-cloud-logging:3.23.10"
-gson = "com.google.code.gson:gson:2.14.0"
-guava = "com.google.guava:guava:33.6.0-android"
+gson = "com.google.code.gson:gson:2.15.0"
+guava = "com.google.guava:guava:33.7.2-android"
guava-betaChecker = "com.google.guava:guava-beta-checker:1.0"
-guava-testlib = "com.google.guava:guava-testlib:33.6.0-android"
+guava-testlib = "com.google.guava:guava-testlib:33.7.2-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.6.0-jre"
+guava-jre = "com.google.guava:guava:33.7.2-jre"
hdrhistogram = "org.hdrhistogram:HdrHistogram:2.2.2"
# 6.0.0+ use java.lang.Deprecated forRemoval and since from Java 9
# checkForUpdates: jakarta-servlet-api:5.+
@@ -82,11 +82,11 @@ javax-servlet-api = "javax.servlet:javax.servlet-api:4.0.1"
# 12.0.0+ require Java 17+
# checkForUpdates: jetty-client:11.+
jetty-client = "org.eclipse.jetty:jetty-client:11.0.26"
-jetty-http2-server = "org.eclipse.jetty.http2:jetty-http2-server:12.1.11"
+jetty-http2-server = "org.eclipse.jetty.http2:jetty-http2-server:12.1.14"
# 10.0.25+ uses uses @Deprecated(since=/forRemoval=) from Java 9
# checkForUpdates: jetty-http2-server10:10.0.24
jetty-http2-server10 = "org.eclipse.jetty.http2:http2-server:10.0.24"
-jetty-servlet = "org.eclipse.jetty.ee10:jetty-ee10-servlet:12.1.11"
+jetty-servlet = "org.eclipse.jetty.ee10:jetty-ee10-servlet:12.1.14"
# checkForUpdates: jetty-servlet10:10.0.24
jetty-servlet10 = "org.eclipse.jetty:jetty-servlet:10.0.24"
jsr305 = "com.google.code.findbugs:jsr305:3.0.2"
@@ -119,12 +119,12 @@ 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.64.0"
-opentelemetry-exporter-prometheus = "io.opentelemetry:opentelemetry-exporter-prometheus:1.64.0-alpha"
-opentelemetry-gcp-resources = "io.opentelemetry.contrib:opentelemetry-gcp-resources:1.59.0-alpha"
-opentelemetry-exporter-otlp = "io.opentelemetry:opentelemetry-exporter-otlp:1.64.0"
-opentelemetry-sdk-extension-autoconfigure = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.64.0"
-opentelemetry-sdk-testing = "io.opentelemetry:opentelemetry-sdk-testing:1.64.0"
+opentelemetry-api = "io.opentelemetry:opentelemetry-api:1.67.0"
+opentelemetry-exporter-prometheus = "io.opentelemetry:opentelemetry-exporter-prometheus:1.67.0-alpha"
+opentelemetry-gcp-resources = "io.opentelemetry.contrib:opentelemetry-gcp-resources:1.61.0-alpha"
+opentelemetry-exporter-otlp = "io.opentelemetry:opentelemetry-exporter-otlp:1.67.0"
+opentelemetry-sdk-extension-autoconfigure = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.67.0"
+opentelemetry-sdk-testing = "io.opentelemetry:opentelemetry-sdk-testing:1.67.0"
perfmark-api = "io.perfmark:perfmark-api:0.27.0"
# Not upgrading to 4.x as it is not yet ABI compatible.
# https://github.com/protocolbuffers/protobuf/issues/17247
@@ -143,11 +143,11 @@ signature-android = "net.sf.androidscents.signature:android-api-level-24:7.0_r2"
signature-java = "org.codehaus.mojo.signature:java18:1.0"
# 11.0.0+ require Java 17+
# checkForUpdates: tomcat-embed-core:10.+
-tomcat-embed-core = "org.apache.tomcat.embed:tomcat-embed-core:10.1.57"
+tomcat-embed-core = "org.apache.tomcat.embed:tomcat-embed-core:10.1.61"
# checkForUpdates: tomcat-embed-core9:9.+
-tomcat-embed-core9 = "org.apache.tomcat.embed:tomcat-embed-core:9.0.120"
+tomcat-embed-core9 = "org.apache.tomcat.embed:tomcat-embed-core:9.0.123"
truth = "com.google.truth:truth:1.4.5"
# checkForUpdates: undertow-servlet22:2.2.+
-undertow-servlet22 = "io.undertow:undertow-servlet:2.2.40.Final"
+undertow-servlet22 = "io.undertow:undertow-servlet:2.2.41.Final"
# checkForUpdates: undertow-servlet:2.3.+
-undertow-servlet = "io.undertow:undertow-servlet:2.3.26.Final"
+undertow-servlet = "io.undertow:undertow-servlet:2.3.27.Final"
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 4f5eb9dcc0e..d3f0219867f 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.6-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/opentelemetry/src/main/java/io/grpc/opentelemetry/MetadataGetter.java b/opentelemetry/src/main/java/io/grpc/opentelemetry/MetadataGetter.java
index f49c029f2fb..588873e8aad 100644
--- a/opentelemetry/src/main/java/io/grpc/opentelemetry/MetadataGetter.java
+++ b/opentelemetry/src/main/java/io/grpc/opentelemetry/MetadataGetter.java
@@ -39,7 +39,11 @@ public static MetadataGetter getInstance() {
return INSTANCE;
}
+ // keys() is deprecated in OpenTelemetry 1.66+ in favor of treating TextMapGetter as a
+ // functional interface, but we keep the implementation for compatibility with propagators
+ // that inspect carrier keys.
@Override
+ @SuppressWarnings("deprecation")
public Iterable keys(Metadata carrier) {
return carrier.keys();
}
diff --git a/opentelemetry/src/test/java/io/grpc/opentelemetry/GrpcTraceBinContextPropagatorTest.java b/opentelemetry/src/test/java/io/grpc/opentelemetry/GrpcTraceBinContextPropagatorTest.java
index f85b8067c26..8c3a44f3f90 100644
--- a/opentelemetry/src/test/java/io/grpc/opentelemetry/GrpcTraceBinContextPropagatorTest.java
+++ b/opentelemetry/src/test/java/io/grpc/opentelemetry/GrpcTraceBinContextPropagatorTest.java
@@ -50,7 +50,10 @@ public class GrpcTraceBinContextPropagatorTest {
private static final TextMapSetter