diff --git a/MODULE.bazel b/MODULE.bazel
index d69bb1927aa..a62088f1e22 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -2,7 +2,7 @@ module(
name = "grpc-java",
compatibility_level = 0,
repo_name = "io_grpc_grpc_java",
- version = "1.73.0-SNAPSHOT", # CURRENT_GRPC_VERSION
+ version = "1.73.1-SNAPSHOT", # CURRENT_GRPC_VERSION
)
# GRPC_DEPS_START
diff --git a/README.md b/README.md
index 30e26bc9955..012eab498e6 100644
--- a/README.md
+++ b/README.md
@@ -44,8 +44,8 @@ For a guided tour, take a look at the [quick start
guide](https://grpc.io/docs/languages/java/quickstart) or the more explanatory [gRPC
basics](https://grpc.io/docs/languages/java/basics).
-The [examples](https://github.com/grpc/grpc-java/tree/v1.72.0/examples) and the
-[Android example](https://github.com/grpc/grpc-java/tree/v1.72.0/examples/android)
+The [examples](https://github.com/grpc/grpc-java/tree/v1.73.0/examples) and the
+[Android example](https://github.com/grpc/grpc-java/tree/v1.73.0/examples/android)
are standalone projects that showcase the usage of gRPC.
Download
@@ -56,18 +56,18 @@ Download [the JARs][]. Or for Maven with non-Android, add to your `pom.xml`:
io.grpc
grpc-netty-shaded
- 1.72.0
+ 1.73.0
runtime
io.grpc
grpc-protobuf
- 1.72.0
+ 1.73.0
io.grpc
grpc-stub
- 1.72.0
+ 1.73.0
org.apache.tomcat
@@ -79,18 +79,18 @@ Download [the JARs][]. Or for Maven with non-Android, add to your `pom.xml`:
Or for Gradle with non-Android, add to your dependencies:
```gradle
-runtimeOnly 'io.grpc:grpc-netty-shaded:1.72.0'
-implementation 'io.grpc:grpc-protobuf:1.72.0'
-implementation 'io.grpc:grpc-stub:1.72.0'
+runtimeOnly 'io.grpc:grpc-netty-shaded:1.73.0'
+implementation 'io.grpc:grpc-protobuf:1.73.0'
+implementation 'io.grpc:grpc-stub:1.73.0'
compileOnly 'org.apache.tomcat:annotations-api:6.0.53' // necessary for Java 9+
```
For Android client, use `grpc-okhttp` instead of `grpc-netty-shaded` and
`grpc-protobuf-lite` instead of `grpc-protobuf`:
```gradle
-implementation 'io.grpc:grpc-okhttp:1.72.0'
-implementation 'io.grpc:grpc-protobuf-lite:1.72.0'
-implementation 'io.grpc:grpc-stub:1.72.0'
+implementation 'io.grpc:grpc-okhttp:1.73.0'
+implementation 'io.grpc:grpc-protobuf-lite:1.73.0'
+implementation 'io.grpc:grpc-stub:1.73.0'
compileOnly 'org.apache.tomcat:annotations-api:6.0.53' // necessary for Java 9+
```
@@ -99,7 +99,7 @@ For [Bazel](https://bazel.build), you can either
(with the GAVs from above), or use `@io_grpc_grpc_java//api` et al (see below).
[the JARs]:
-https://search.maven.org/search?q=g:io.grpc%20AND%20v:1.72.0
+https://search.maven.org/search?q=g:io.grpc%20AND%20v:1.73.0
Development snapshots are available in [Sonatypes's snapshot
repository](https://oss.sonatype.org/content/repositories/snapshots/).
@@ -131,7 +131,7 @@ For protobuf-based codegen integrated with the Maven build system, you can use
com.google.protobuf:protoc:3.25.5:exe:${os.detected.classifier}
grpc-java
- io.grpc:protoc-gen-grpc-java:1.72.0:exe:${os.detected.classifier}
+ io.grpc:protoc-gen-grpc-java:1.73.0:exe:${os.detected.classifier}
@@ -161,7 +161,7 @@ protobuf {
}
plugins {
grpc {
- artifact = 'io.grpc:protoc-gen-grpc-java:1.72.0'
+ artifact = 'io.grpc:protoc-gen-grpc-java:1.73.0'
}
}
generateProtoTasks {
@@ -194,7 +194,7 @@ protobuf {
}
plugins {
grpc {
- artifact = 'io.grpc:protoc-gen-grpc-java:1.72.0'
+ artifact = 'io.grpc:protoc-gen-grpc-java:1.73.0'
}
}
generateProtoTasks {
diff --git a/alts/src/main/java/io/grpc/alts/HandshakerServiceChannel.java b/alts/src/main/java/io/grpc/alts/HandshakerServiceChannel.java
index 8e8d175b7af..fa1d4f7fa1c 100644
--- a/alts/src/main/java/io/grpc/alts/HandshakerServiceChannel.java
+++ b/alts/src/main/java/io/grpc/alts/HandshakerServiceChannel.java
@@ -21,6 +21,7 @@
import io.grpc.ClientCall;
import io.grpc.ManagedChannel;
import io.grpc.MethodDescriptor;
+import io.grpc.internal.GrpcUtil;
import io.grpc.internal.SharedResourceHolder.Resource;
import io.grpc.netty.NettyChannelBuilder;
import io.netty.channel.EventLoopGroup;
@@ -45,6 +46,9 @@ static Resource getHandshakerChannelForTesting(String handshakerAddress
return new ChannelResource(handshakerAddress);
}
+ private static final boolean EXPERIMENTAL_ALTS_HANDSHAKER_KEEPALIVE_PARAMS =
+ GrpcUtil.getFlag("GRPC_EXPERIMENTAL_ALTS_HANDSHAKER_KEEPALIVE_PARAMS", false);
+
private static class ChannelResource implements Resource {
private final String target;
@@ -57,12 +61,16 @@ public Channel create() {
/* Use its own event loop thread pool to avoid blocking. */
EventLoopGroup eventGroup =
new NioEventLoopGroup(1, new DefaultThreadFactory("handshaker pool", true));
- ManagedChannel channel = NettyChannelBuilder.forTarget(target)
+ NettyChannelBuilder channelBuilder =
+ NettyChannelBuilder.forTarget(target)
.channelType(NioSocketChannel.class, InetSocketAddress.class)
.directExecutor()
.eventLoopGroup(eventGroup)
- .usePlaintext()
- .build();
+ .usePlaintext();
+ if (EXPERIMENTAL_ALTS_HANDSHAKER_KEEPALIVE_PARAMS) {
+ channelBuilder.keepAliveTime(10, TimeUnit.MINUTES).keepAliveTimeout(10, TimeUnit.SECONDS);
+ }
+ ManagedChannel channel = channelBuilder.build();
return new EventLoopHoldingChannel(channel, eventGroup);
}
diff --git a/build.gradle b/build.gradle
index 0788895cdfa..cfe3cf2ed22 100644
--- a/build.gradle
+++ b/build.gradle
@@ -21,7 +21,7 @@ subprojects {
apply plugin: "net.ltgt.errorprone"
group = "io.grpc"
- version = "1.73.0-SNAPSHOT" // CURRENT_GRPC_VERSION
+ version = "1.73.1-SNAPSHOT" // CURRENT_GRPC_VERSION
repositories {
maven { // The google mirror is less flaky than mavenCentral()
diff --git a/buildscripts/grpc-java-artifacts/Dockerfile b/buildscripts/grpc-java-artifacts/Dockerfile
index 736babe9d8e..bf71a710d74 100644
--- a/buildscripts/grpc-java-artifacts/Dockerfile
+++ b/buildscripts/grpc-java-artifacts/Dockerfile
@@ -28,6 +28,6 @@ RUN mkdir -p "$ANDROID_HOME/cmdline-tools" && \
yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --licenses
# Install Maven
-RUN curl -Ls https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz | \
+RUN curl -Ls https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz | \
tar xz -C /var/local
ENV PATH /var/local/apache-maven-3.8.8/bin:$PATH
diff --git a/buildscripts/kokoro/psm-fallback.cfg b/buildscripts/kokoro/psm-light.cfg
similarity index 94%
rename from buildscripts/kokoro/psm-fallback.cfg
rename to buildscripts/kokoro/psm-light.cfg
index 7335d1d9fd9..decd179efa3 100644
--- a/buildscripts/kokoro/psm-fallback.cfg
+++ b/buildscripts/kokoro/psm-light.cfg
@@ -13,5 +13,5 @@ action {
}
env_vars {
key: "PSM_TEST_SUITE"
- value: "fallback"
+ value: "light"
}
diff --git a/buildscripts/kokoro/psm-spiffe.cfg b/buildscripts/kokoro/psm-spiffe.cfg
new file mode 100644
index 00000000000..b04d715fca1
--- /dev/null
+++ b/buildscripts/kokoro/psm-spiffe.cfg
@@ -0,0 +1,17 @@
+# Config file for internal CI
+
+# Location of the continuous shell script in repository.
+build_file: "grpc-java/buildscripts/kokoro/psm-interop-test-java.sh"
+timeout_mins: 240
+
+action {
+ define_artifacts {
+ regex: "artifacts/**/*sponge_log.xml"
+ regex: "artifacts/**/*.log"
+ strip_prefix: "artifacts"
+ }
+}
+env_vars {
+ key: "PSM_TEST_SUITE"
+ value: "spiffe"
+}
diff --git a/compiler/src/test/golden/TestDeprecatedService.java.txt b/compiler/src/test/golden/TestDeprecatedService.java.txt
index a870a5a82e1..939a05cefb8 100644
--- a/compiler/src/test/golden/TestDeprecatedService.java.txt
+++ b/compiler/src/test/golden/TestDeprecatedService.java.txt
@@ -8,7 +8,7 @@ import static io.grpc.MethodDescriptor.generateFullMethodName;
*
*/
@javax.annotation.Generated(
- value = "by gRPC proto compiler (version 1.73.0-SNAPSHOT)",
+ value = "by gRPC proto compiler (version 1.73.1-SNAPSHOT)",
comments = "Source: grpc/testing/compiler/test.proto")
@io.grpc.stub.annotations.GrpcGenerated
@java.lang.Deprecated
diff --git a/compiler/src/test/golden/TestService.java.txt b/compiler/src/test/golden/TestService.java.txt
index 1f62ca26718..00c77f65a31 100644
--- a/compiler/src/test/golden/TestService.java.txt
+++ b/compiler/src/test/golden/TestService.java.txt
@@ -8,7 +8,7 @@ import static io.grpc.MethodDescriptor.generateFullMethodName;
*
*/
@javax.annotation.Generated(
- value = "by gRPC proto compiler (version 1.73.0-SNAPSHOT)",
+ value = "by gRPC proto compiler (version 1.73.1-SNAPSHOT)",
comments = "Source: grpc/testing/compiler/test.proto")
@io.grpc.stub.annotations.GrpcGenerated
public final class TestServiceGrpc {
diff --git a/core/src/main/java/io/grpc/internal/GrpcUtil.java b/core/src/main/java/io/grpc/internal/GrpcUtil.java
index 15fcdfb6300..ab617866da3 100644
--- a/core/src/main/java/io/grpc/internal/GrpcUtil.java
+++ b/core/src/main/java/io/grpc/internal/GrpcUtil.java
@@ -219,7 +219,7 @@ public byte[] parseAsciiString(byte[] serialized) {
public static final Splitter ACCEPT_ENCODING_SPLITTER = Splitter.on(',').trimResults();
- public static final String IMPLEMENTATION_VERSION = "1.73.0-SNAPSHOT"; // CURRENT_GRPC_VERSION
+ public static final String IMPLEMENTATION_VERSION = "1.73.1-SNAPSHOT"; // CURRENT_GRPC_VERSION
/**
* The default timeout in nanos for a keepalive ping request.
diff --git a/examples/MODULE.bazel b/examples/MODULE.bazel
index b960555e8c5..bc46323c36b 100644
--- a/examples/MODULE.bazel
+++ b/examples/MODULE.bazel
@@ -1,5 +1,5 @@
bazel_dep(name = "googleapis", repo_name = "com_google_googleapis", version = "0.0.0-20240326-1c8d509c5")
-bazel_dep(name = "grpc-java", repo_name = "io_grpc_grpc_java", version = "1.73.0-SNAPSHOT") # CURRENT_GRPC_VERSION
+bazel_dep(name = "grpc-java", repo_name = "io_grpc_grpc_java", version = "1.73.1-SNAPSHOT") # CURRENT_GRPC_VERSION
bazel_dep(name = "grpc-proto", repo_name = "io_grpc_grpc_proto", version = "0.0.0-20240627-ec30f58")
bazel_dep(name = "protobuf", repo_name = "com_google_protobuf", version = "23.1")
bazel_dep(name = "rules_jvm_external", version = "6.0")
diff --git a/examples/android/clientcache/app/build.gradle b/examples/android/clientcache/app/build.gradle
index 670193167fe..65e20ebac5f 100644
--- a/examples/android/clientcache/app/build.gradle
+++ b/examples/android/clientcache/app/build.gradle
@@ -34,7 +34,7 @@ android {
protobuf {
protoc { artifact = 'com.google.protobuf:protoc:3.25.1' }
plugins {
- grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
}
}
generateProtoTasks {
@@ -54,12 +54,12 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
// You need to build grpc-java to obtain these libraries below.
- implementation 'io.grpc:grpc-okhttp:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
- implementation 'io.grpc:grpc-protobuf-lite:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
- implementation 'io.grpc:grpc-stub:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-okhttp:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-protobuf-lite:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-stub:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
implementation 'org.apache.tomcat:annotations-api:6.0.53'
testImplementation 'junit:junit:4.13.2'
testImplementation 'com.google.truth:truth:1.1.5'
- testImplementation 'io.grpc:grpc-testing:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ testImplementation 'io.grpc:grpc-testing:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
}
diff --git a/examples/android/helloworld/app/build.gradle b/examples/android/helloworld/app/build.gradle
index 81f79c67440..9bdeb32eacf 100644
--- a/examples/android/helloworld/app/build.gradle
+++ b/examples/android/helloworld/app/build.gradle
@@ -32,7 +32,7 @@ android {
protobuf {
protoc { artifact = 'com.google.protobuf:protoc:3.25.1' }
plugins {
- grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
}
}
generateProtoTasks {
@@ -52,8 +52,8 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
// You need to build grpc-java to obtain these libraries below.
- implementation 'io.grpc:grpc-okhttp:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
- implementation 'io.grpc:grpc-protobuf-lite:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
- implementation 'io.grpc:grpc-stub:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-okhttp:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-protobuf-lite:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-stub:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
implementation 'org.apache.tomcat:annotations-api:6.0.53'
}
diff --git a/examples/android/routeguide/app/build.gradle b/examples/android/routeguide/app/build.gradle
index 12e6430d2ad..1c73939e36b 100644
--- a/examples/android/routeguide/app/build.gradle
+++ b/examples/android/routeguide/app/build.gradle
@@ -32,7 +32,7 @@ android {
protobuf {
protoc { artifact = 'com.google.protobuf:protoc:3.25.1' }
plugins {
- grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
}
}
generateProtoTasks {
@@ -52,8 +52,8 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
// You need to build grpc-java to obtain these libraries below.
- implementation 'io.grpc:grpc-okhttp:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
- implementation 'io.grpc:grpc-protobuf-lite:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
- implementation 'io.grpc:grpc-stub:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-okhttp:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-protobuf-lite:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-stub:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
implementation 'org.apache.tomcat:annotations-api:6.0.53'
}
diff --git a/examples/android/strictmode/app/build.gradle b/examples/android/strictmode/app/build.gradle
index f37e970ed7b..e81ce6c9cfa 100644
--- a/examples/android/strictmode/app/build.gradle
+++ b/examples/android/strictmode/app/build.gradle
@@ -33,7 +33,7 @@ android {
protobuf {
protoc { artifact = 'com.google.protobuf:protoc:3.25.1' }
plugins {
- grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
}
}
generateProtoTasks {
@@ -53,8 +53,8 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
// You need to build grpc-java to obtain these libraries below.
- implementation 'io.grpc:grpc-okhttp:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
- implementation 'io.grpc:grpc-protobuf-lite:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
- implementation 'io.grpc:grpc-stub:1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-okhttp:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-protobuf-lite:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
+ implementation 'io.grpc:grpc-stub:1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
implementation 'org.apache.tomcat:annotations-api:6.0.53'
}
diff --git a/examples/build.gradle b/examples/build.gradle
index 7d0fc0c715a..dc1a7d64910 100644
--- a/examples/build.gradle
+++ b/examples/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protobufVersion = '3.25.5'
def protocVersion = protobufVersion
diff --git a/examples/example-alts/build.gradle b/examples/example-alts/build.gradle
index 3b76948b5c7..8d95b905c53 100644
--- a/examples/example-alts/build.gradle
+++ b/examples/example-alts/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
dependencies {
diff --git a/examples/example-debug/build.gradle b/examples/example-debug/build.gradle
index 69b17859d75..f8bec338151 100644
--- a/examples/example-debug/build.gradle
+++ b/examples/example-debug/build.gradle
@@ -23,7 +23,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protobufVersion = '3.25.5'
dependencies {
diff --git a/examples/example-debug/pom.xml b/examples/example-debug/pom.xml
index ce46b13c019..7ff86f9b0ed 100644
--- a/examples/example-debug/pom.xml
+++ b/examples/example-debug/pom.xml
@@ -6,13 +6,13 @@
jar
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
example-debug
https://github.com/grpc/grpc-java
UTF-8
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
3.25.5
1.8
diff --git a/examples/example-dualstack/build.gradle b/examples/example-dualstack/build.gradle
index f769894cd9b..87a111f49a1 100644
--- a/examples/example-dualstack/build.gradle
+++ b/examples/example-dualstack/build.gradle
@@ -23,7 +23,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protobufVersion = '3.25.5'
dependencies {
diff --git a/examples/example-dualstack/pom.xml b/examples/example-dualstack/pom.xml
index 4af44beae46..c373231f614 100644
--- a/examples/example-dualstack/pom.xml
+++ b/examples/example-dualstack/pom.xml
@@ -6,13 +6,13 @@
jar
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
example-dualstack
https://github.com/grpc/grpc-java
UTF-8
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
3.25.5
1.8
diff --git a/examples/example-gauth/build.gradle b/examples/example-gauth/build.gradle
index 75c64019dde..29abbb98194 100644
--- a/examples/example-gauth/build.gradle
+++ b/examples/example-gauth/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protobufVersion = '3.25.5'
def protocVersion = protobufVersion
diff --git a/examples/example-gauth/pom.xml b/examples/example-gauth/pom.xml
index b8f8d4d930e..93cf379d17d 100644
--- a/examples/example-gauth/pom.xml
+++ b/examples/example-gauth/pom.xml
@@ -6,13 +6,13 @@
jar
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
example-gauth
https://github.com/grpc/grpc-java
UTF-8
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
3.25.5
1.8
diff --git a/examples/example-gcp-csm-observability/build.gradle b/examples/example-gcp-csm-observability/build.gradle
index aca88c4003e..75b9649692f 100644
--- a/examples/example-gcp-csm-observability/build.gradle
+++ b/examples/example-gcp-csm-observability/build.gradle
@@ -22,7 +22,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
def openTelemetryVersion = '1.40.0'
def openTelemetryPrometheusVersion = '1.40.0-alpha'
diff --git a/examples/example-gcp-observability/build.gradle b/examples/example-gcp-observability/build.gradle
index 98c3e478f66..36f352370d6 100644
--- a/examples/example-gcp-observability/build.gradle
+++ b/examples/example-gcp-observability/build.gradle
@@ -22,7 +22,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
dependencies {
diff --git a/examples/example-hostname/build.gradle b/examples/example-hostname/build.gradle
index 232146c9e38..2d54ac04683 100644
--- a/examples/example-hostname/build.gradle
+++ b/examples/example-hostname/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protobufVersion = '3.25.5'
dependencies {
diff --git a/examples/example-hostname/pom.xml b/examples/example-hostname/pom.xml
index f0aab1c8edc..2bda7533403 100644
--- a/examples/example-hostname/pom.xml
+++ b/examples/example-hostname/pom.xml
@@ -6,13 +6,13 @@
jar
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
example-hostname
https://github.com/grpc/grpc-java
UTF-8
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
3.25.5
1.8
diff --git a/examples/example-jwt-auth/build.gradle b/examples/example-jwt-auth/build.gradle
index 204dcf90941..5eb34f66f18 100644
--- a/examples/example-jwt-auth/build.gradle
+++ b/examples/example-jwt-auth/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protobufVersion = '3.25.5'
def protocVersion = protobufVersion
diff --git a/examples/example-jwt-auth/pom.xml b/examples/example-jwt-auth/pom.xml
index cc7171910df..86af2b8e57c 100644
--- a/examples/example-jwt-auth/pom.xml
+++ b/examples/example-jwt-auth/pom.xml
@@ -7,13 +7,13 @@
jar
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
example-jwt-auth
https://github.com/grpc/grpc-java
UTF-8
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
3.25.5
3.25.5
diff --git a/examples/example-oauth/build.gradle b/examples/example-oauth/build.gradle
index 1bffa4272c3..904c69554cf 100644
--- a/examples/example-oauth/build.gradle
+++ b/examples/example-oauth/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protobufVersion = '3.25.5'
def protocVersion = protobufVersion
diff --git a/examples/example-oauth/pom.xml b/examples/example-oauth/pom.xml
index 36cf63dd602..52dc95783f8 100644
--- a/examples/example-oauth/pom.xml
+++ b/examples/example-oauth/pom.xml
@@ -7,13 +7,13 @@
jar
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
example-oauth
https://github.com/grpc/grpc-java
UTF-8
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
3.25.5
3.25.5
diff --git a/examples/example-opentelemetry/build.gradle b/examples/example-opentelemetry/build.gradle
index 715c3b95569..b3106bcde84 100644
--- a/examples/example-opentelemetry/build.gradle
+++ b/examples/example-opentelemetry/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
def openTelemetryVersion = '1.40.0'
def openTelemetryPrometheusVersion = '1.40.0-alpha'
diff --git a/examples/example-orca/build.gradle b/examples/example-orca/build.gradle
index fb3475b1d60..bc0beafdb88 100644
--- a/examples/example-orca/build.gradle
+++ b/examples/example-orca/build.gradle
@@ -16,7 +16,7 @@ java {
targetCompatibility = JavaVersion.VERSION_1_8
}
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
dependencies {
diff --git a/examples/example-reflection/build.gradle b/examples/example-reflection/build.gradle
index 98e1e4a4a39..0f504a3ffe8 100644
--- a/examples/example-reflection/build.gradle
+++ b/examples/example-reflection/build.gradle
@@ -16,7 +16,7 @@ java {
targetCompatibility = JavaVersion.VERSION_1_8
}
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
dependencies {
diff --git a/examples/example-servlet/build.gradle b/examples/example-servlet/build.gradle
index dae75299e25..644f62341ca 100644
--- a/examples/example-servlet/build.gradle
+++ b/examples/example-servlet/build.gradle
@@ -15,7 +15,7 @@ java {
targetCompatibility = JavaVersion.VERSION_1_8
}
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
dependencies {
diff --git a/examples/example-tls/build.gradle b/examples/example-tls/build.gradle
index c75c9d0f9a0..a9a51bb2286 100644
--- a/examples/example-tls/build.gradle
+++ b/examples/example-tls/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
dependencies {
diff --git a/examples/example-tls/pom.xml b/examples/example-tls/pom.xml
index c8b87f54cd0..172618b01d9 100644
--- a/examples/example-tls/pom.xml
+++ b/examples/example-tls/pom.xml
@@ -6,13 +6,13 @@
jar
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
example-tls
https://github.com/grpc/grpc-java
UTF-8
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
3.25.5
1.8
diff --git a/examples/example-xds/build.gradle b/examples/example-xds/build.gradle
index ae67659a7fa..55bc1c34f07 100644
--- a/examples/example-xds/build.gradle
+++ b/examples/example-xds/build.gradle
@@ -21,7 +21,7 @@ java {
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
-def grpcVersion = '1.73.0-SNAPSHOT' // CURRENT_GRPC_VERSION
+def grpcVersion = '1.73.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.25.5'
dependencies {
diff --git a/examples/pom.xml b/examples/pom.xml
index ff32936f2a2..8c71dee7b7c 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -6,13 +6,13 @@
jar
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
examples
https://github.com/grpc/grpc-java
UTF-8
- 1.73.0-SNAPSHOT
+ 1.73.1-SNAPSHOT
3.25.5
3.25.5
diff --git a/xds/src/main/java/io/grpc/xds/FilterRegistry.java b/xds/src/main/java/io/grpc/xds/FilterRegistry.java
index 426c6d1b3f6..1fbccea8000 100644
--- a/xds/src/main/java/io/grpc/xds/FilterRegistry.java
+++ b/xds/src/main/java/io/grpc/xds/FilterRegistry.java
@@ -17,6 +17,7 @@
package io.grpc.xds;
import com.google.common.annotations.VisibleForTesting;
+import io.grpc.internal.GrpcUtil;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nullable;
@@ -32,12 +33,18 @@ final class FilterRegistry {
private FilterRegistry() {}
+ static boolean isEnabledGcpAuthnFilter =
+ GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER", false);
+
static synchronized FilterRegistry getDefaultRegistry() {
if (instance == null) {
instance = newRegistry().register(
new FaultFilter.Provider(),
new RouterFilter.Provider(),
new RbacFilter.Provider());
+ if (isEnabledGcpAuthnFilter) {
+ instance.register(new GcpAuthenticationFilter.Provider());
+ }
}
return instance;
}
diff --git a/xds/src/main/java/io/grpc/xds/GcpAuthenticationFilter.java b/xds/src/main/java/io/grpc/xds/GcpAuthenticationFilter.java
index 8ec02f4f809..dc133eaaf1a 100644
--- a/xds/src/main/java/io/grpc/xds/GcpAuthenticationFilter.java
+++ b/xds/src/main/java/io/grpc/xds/GcpAuthenticationFilter.java
@@ -17,6 +17,7 @@
package io.grpc.xds;
import static com.google.common.base.Preconditions.checkNotNull;
+import static io.grpc.xds.FilterRegistry.isEnabledGcpAuthnFilter;
import static io.grpc.xds.XdsNameResolver.CLUSTER_SELECTION_KEY;
import static io.grpc.xds.XdsNameResolver.XDS_CONFIG_CALL_OPTION_KEY;
@@ -312,6 +313,10 @@ public String getTypeUrl() {
public AudienceWrapper parse(Any any) throws ResourceInvalidException {
Audience audience;
try {
+ if (!isEnabledGcpAuthnFilter) {
+ throw new InvalidProtocolBufferException("Environment variable for GCP Authentication "
+ + "Filter is Not Set");
+ }
audience = any.unpack(Audience.class);
} catch (InvalidProtocolBufferException ex) {
throw new ResourceInvalidException("Invalid Resource in address proto", ex);
diff --git a/xds/src/main/java/io/grpc/xds/XdsClusterResource.java b/xds/src/main/java/io/grpc/xds/XdsClusterResource.java
index 0d9274e2869..3f2b2d8fd7e 100644
--- a/xds/src/main/java/io/grpc/xds/XdsClusterResource.java
+++ b/xds/src/main/java/io/grpc/xds/XdsClusterResource.java
@@ -60,7 +60,8 @@ class XdsClusterResource extends XdsResourceType {
static boolean enableLeastRequest =
!Strings.isNullOrEmpty(System.getenv("GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST"))
? Boolean.parseBoolean(System.getenv("GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST"))
- : Boolean.parseBoolean(System.getProperty("io.grpc.xds.experimentalEnableLeastRequest"));
+ : Boolean.parseBoolean(
+ System.getProperty("io.grpc.xds.experimentalEnableLeastRequest", "true"));
@VisibleForTesting
public static boolean enableSystemRootCerts =
GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_SYSTEM_ROOT_CERTS", false);
diff --git a/xds/src/test/java/io/grpc/xds/GcpAuthenticationFilterTest.java b/xds/src/test/java/io/grpc/xds/GcpAuthenticationFilterTest.java
index d84d8c9d768..cebf739d417 100644
--- a/xds/src/test/java/io/grpc/xds/GcpAuthenticationFilterTest.java
+++ b/xds/src/test/java/io/grpc/xds/GcpAuthenticationFilterTest.java
@@ -73,6 +73,7 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -89,6 +90,11 @@ public class GcpAuthenticationFilterTest {
private static final RdsUpdate rdsUpdate = getRdsUpdate();
private static final CdsUpdate cdsUpdate = getCdsUpdate();
+ @Before
+ public void setUp() {
+ System.setProperty("GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER", "true");
+ }
+
@Test
public void testNewFilterInstancesPerFilterName() {
assertThat(new GcpAuthenticationFilter("FILTER_INSTANCE_NAME1", 10))
diff --git a/xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java b/xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java
index e5502463db0..48d78e8555e 100644
--- a/xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java
+++ b/xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java
@@ -186,7 +186,6 @@ public void setUp() {
originalEnableRouteLookup = XdsRouteConfigureResource.enableRouteLookup;
originalEnableLeastRequest = XdsClusterResource.enableLeastRequest;
originalEnableUseSystemRootCerts = XdsClusterResource.enableSystemRootCerts;
- assertThat(originalEnableLeastRequest).isFalse();
}
@After
@@ -2418,6 +2417,7 @@ public Object parse(Any value) {
@Test
public void processCluster_parsesAudienceMetadata() throws Exception {
+ FilterRegistry.isEnabledGcpAuthnFilter = true;
MetadataRegistry.getInstance();
Audience audience = Audience.newBuilder()
@@ -2461,10 +2461,14 @@ public void processCluster_parsesAudienceMetadata() throws Exception {
"FILTER_METADATA", ImmutableMap.of(
"key1", "value1",
"key2", 42.0));
- assertThat(update.parsedMetadata().get("FILTER_METADATA"))
- .isEqualTo(expectedParsedMetadata.get("FILTER_METADATA"));
- assertThat(update.parsedMetadata().get("AUDIENCE_METADATA"))
- .isInstanceOf(AudienceWrapper.class);
+ try {
+ assertThat(update.parsedMetadata().get("FILTER_METADATA"))
+ .isEqualTo(expectedParsedMetadata.get("FILTER_METADATA"));
+ assertThat(update.parsedMetadata().get("AUDIENCE_METADATA"))
+ .isInstanceOf(AudienceWrapper.class);
+ } finally {
+ FilterRegistry.isEnabledGcpAuthnFilter = false;
+ }
}
@Test