diff --git a/.kokoro/downstream-client-library-check.sh b/.kokoro/downstream-client-library-check.sh index ab5ee8286..612fd793b 100755 --- a/.kokoro/downstream-client-library-check.sh +++ b/.kokoro/downstream-client-library-check.sh @@ -93,11 +93,7 @@ echo "Modification on the shared dependencies BOM:" git diff echo +export INTEGRATION_TEST_ARGS="-Denforcer.skip=true" + # This reads the JOB_TYPE environmental variable ("test" or "graalvm") -mvn install -B -V -ntp \ - -DskipTests=true \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -Dmaven.javadoc.skip=true \ - -Dgcloud.download.skip=true \ - -T 1C +.kokoro/build.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index ab45244ab..d0d836941 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## [2.19.0](https://github.com/googleapis/gax-java/compare/v2.18.7...v2.19.0) (2022-08-22) + + +### Features + +* Add numeric enum support. ([#1743](https://github.com/googleapis/gax-java/issues/1743)) ([3f7628e](https://github.com/googleapis/gax-java/commit/3f7628e27495806675ec8c8521e9c33725908936)) + + +### Bug Fixes + +* **deps:** update dependency com.google.auth:google-auth-library-credentials to v1.10.0 ([#1768](https://github.com/googleapis/gax-java/issues/1768)) ([3f2188d](https://github.com/googleapis/gax-java/commit/3f2188d83751272de1a4c3db85e95d79b690e3fc)) +* **deps:** update dependency com.google.auth:google-auth-library-credentials to v1.9.0 ([#1765](https://github.com/googleapis/gax-java/issues/1765)) ([103db3c](https://github.com/googleapis/gax-java/commit/103db3cc06cfaafeda1a043b6e19e668083ed782)) +* **deps:** update dependency com.google.auth:google-auth-library-oauth2-http to v1.10.0 ([#1769](https://github.com/googleapis/gax-java/issues/1769)) ([0b1eb92](https://github.com/googleapis/gax-java/commit/0b1eb924aefc79b6fc4757d253d4c8a93a094c84)) +* **deps:** update dependency com.google.auth:google-auth-library-oauth2-http to v1.9.0 ([#1766](https://github.com/googleapis/gax-java/issues/1766)) ([2677f07](https://github.com/googleapis/gax-java/commit/2677f07a8e20c82403f60c6aa1f9d46c1274b37f)) +* **deps:** update dependency com.google.code.gson:gson to v2.9.1 ([#1757](https://github.com/googleapis/gax-java/issues/1757)) ([ea2a075](https://github.com/googleapis/gax-java/commit/ea2a07504899703e4fcd428f31d615fb208a50aa)) +* **deps:** update dependency com.google.protobuf:protobuf-bom to v3.21.5 ([#1772](https://github.com/googleapis/gax-java/issues/1772)) ([d7a48d1](https://github.com/googleapis/gax-java/commit/d7a48d1886a3f39acb26580d1d35a288102af436)) +* **deps:** update dependency io.grpc:grpc-bom to v1.48.1 ([#1763](https://github.com/googleapis/gax-java/issues/1763)) ([e5e4232](https://github.com/googleapis/gax-java/commit/e5e423200260c210071ce626612d7e54af0695e4)) +* **deps:** update dependency org.graalvm.sdk:graal-sdk to v22.2.0 ([#1740](https://github.com/googleapis/gax-java/issues/1740)) ([ded44a6](https://github.com/googleapis/gax-java/commit/ded44a66d3de8a2678fa4c5efe8b3ded4484de2b)) +* **deps:** update dependency org.mockito:mockito-core to v4.7.0 ([#1774](https://github.com/googleapis/gax-java/issues/1774)) ([29678c8](https://github.com/googleapis/gax-java/commit/29678c805855c97b4c26f0156923a41820411a10)) +* **deps:** update dependency org.threeten:threetenbp to v1.6.1 ([#1773](https://github.com/googleapis/gax-java/issues/1773)) ([d2c84e6](https://github.com/googleapis/gax-java/commit/d2c84e6fb22a2752b68fecc9b6c9e480f398b87c)) +* **test:** testThrottlingBlocking flakyness fix ([#1775](https://github.com/googleapis/gax-java/issues/1775)) ([e69393c](https://github.com/googleapis/gax-java/commit/e69393c32ffe32306acc8f495b1f41198d86f507)) + + +### Documentation + +* explaining UNIX environment is required ([#1760](https://github.com/googleapis/gax-java/issues/1760)) ([1d31e90](https://github.com/googleapis/gax-java/commit/1d31e90e70867cb4b896d7a393f9271788b6371f)) + ## [2.18.7](https://github.com/googleapis/gax-java/compare/v2.18.6...v2.18.7) (2022-08-01) diff --git a/README.md b/README.md index e87af9fbf..92eb4b47c 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,13 @@ Java Versions Java 8 or above is required for using this library. -To build this project, JDK 11 or above is required. The build produces Java -bytecode targeted for Java 8. +To build this project, JDK 11 or above is required. +The build produces Java bytecode targeted for Java 8. + +The project uses Gradle to build while it also provides Bazel build. + +If you build this project in Bazel, it requires Bazel 4 and basic UNIX commands +(e.g., `cat`). Contributing ------------ diff --git a/build.gradle b/build.gradle index bcdd58e64..ffde58ed6 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { id 'java' id 'io.github.gradle-nexus.publish-plugin' version '1.1.0' - id 'com.diffplug.eclipse.apt' version '3.37.1' apply false + id 'com.diffplug.eclipse.apt' version '3.37.2' apply false id 'com.dorongold.task-tree' version '2.1.0' apply false id 'com.github.johnrengelman.shadow' version '7.1.2' apply false id 'com.github.sherter.google-java-format' version '0.9' apply false @@ -13,7 +13,7 @@ plugins { } // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "2.18.7" // {x-version-update:gax:current} +project.version = "2.19.0" // {x-version-update:gax:current} allprojects { group = 'com.google.api' diff --git a/dependencies.properties b/dependencies.properties index 5a9d941bf..c41b23fb6 100644 --- a/dependencies.properties +++ b/dependencies.properties @@ -8,24 +8,24 @@ # Versions of oneself # {x-version-update-start:gax:current} -version.gax=2.18.7 +version.gax=2.19.0 # {x-version-update-end} # {x-version-update-start:gax:current} -version.gax_grpc=2.18.7 +version.gax_grpc=2.19.0 # {x-version-update-end} # {x-version-update-start:gax:current} -version.gax_bom=2.18.7 +version.gax_bom=2.19.0 # {x-version-update-end} # {x-version-update-start:gax-httpjson:current} -version.gax_httpjson=0.103.7 +version.gax_httpjson=0.104.0 # {x-version-update-end} # Versions for dependencies which actual artifacts differ between Bazel and Gradle. # Gradle build depends on prebuilt maven artifacts, while Bazel build depends on Bazel workspaces # with the sources. -version.com_google_protobuf=3.21.4 +version.com_google_protobuf=3.21.5 version.google_java_format=1.15.0 -version.io_grpc=1.48.0 +version.io_grpc=1.48.1 # Maven artifacts. # Note, the actual name of each property matters (bazel build scripts depend on it). diff --git a/gax-bom/build.gradle b/gax-bom/build.gradle index 68fd1583c..f8669a106 100644 --- a/gax-bom/build.gradle +++ b/gax-bom/build.gradle @@ -5,7 +5,7 @@ plugins { archivesBaseName = 'gax-bom' -project.version = "2.18.7" // {x-version-update:gax-bom:current} +project.version = "2.19.0" // {x-version-update:gax-bom:current} def mavenJavaDir = "$buildDir/publications/mavenJava" def mavenJavaBomOutputFile = file(mavenJavaDir + '/pom-default.xml') diff --git a/gax-bom/pom.xml b/gax-bom/pom.xml index 0381c9591..f360b527c 100644 --- a/gax-bom/pom.xml +++ b/gax-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.api gax-bom - 2.18.7 + 2.19.0 pom GAX (Google Api eXtensions) for Java (BOM) Google Api eXtensions for Java (BOM) @@ -33,34 +33,34 @@ com.google.api gax - 2.18.7 + 2.19.0 com.google.api gax - 2.18.7 + 2.19.0 testlib com.google.api gax-grpc - 2.18.7 + 2.19.0 com.google.api gax-grpc - 2.18.7 + 2.19.0 testlib com.google.api gax-httpjson - 0.103.7 + 0.104.0 com.google.api gax-httpjson - 0.103.7 + 0.104.0 testlib diff --git a/gax-grpc/build.gradle b/gax-grpc/build.gradle index 4984bf226..8e49b3c45 100644 --- a/gax-grpc/build.gradle +++ b/gax-grpc/build.gradle @@ -1,7 +1,7 @@ archivesBaseName = 'gax-grpc' // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "2.18.7" // {x-version-update:gax-grpc:current} +project.version = "2.19.0" // {x-version-update:gax-grpc:current} dependencies { api(project(':gax'), diff --git a/gax-grpc/pom.xml b/gax-grpc/pom.xml index 66c1b6268..4ceb6af74 100644 --- a/gax-grpc/pom.xml +++ b/gax-grpc/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gax-grpc - 2.18.7 + 2.19.0 jar GAX (Google Api eXtensions) for Java (gRPC) Google Api eXtensions for Java (gRPC) @@ -11,7 +11,7 @@ com.google.api gax-parent - 2.18.7 + 2.19.0 diff --git a/gax-httpjson/build.gradle b/gax-httpjson/build.gradle index 12a534d65..0575550e0 100644 --- a/gax-httpjson/build.gradle +++ b/gax-httpjson/build.gradle @@ -1,7 +1,7 @@ archivesBaseName = 'gax-httpjson' // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "0.103.7" // {x-version-update:gax-httpjson:current} +project.version = "0.104.0" // {x-version-update:gax-httpjson:current} dependencies { api(project(':gax'), diff --git a/gax-httpjson/pom.xml b/gax-httpjson/pom.xml index 2b32730db..e972c19da 100644 --- a/gax-httpjson/pom.xml +++ b/gax-httpjson/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gax-httpjson - 0.103.7 + 0.104.0 jar GAX (Google Api eXtensions) for Java (HTTP JSON) Google Api eXtensions for Java (HTTP JSON) @@ -11,7 +11,7 @@ com.google.api gax-parent - 2.18.7 + 2.19.0 diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageResponseParser.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageResponseParser.java index 959efe379..815d19c7a 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageResponseParser.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageResponseParser.java @@ -79,7 +79,7 @@ public ResponseT parse(Reader httpContent, TypeRegistry registry) { /* {@inheritDoc} */ @Override public String serialize(ResponseT response) { - return ProtoRestSerializer.create(defaultRegistry).toJson(response); + return ProtoRestSerializer.create(defaultRegistry).toJson(response, false); } // Convert to @AutoValue if this class gets more complicated diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoRestSerializer.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoRestSerializer.java index 9c75be0b0..298a4ce4f 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoRestSerializer.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoRestSerializer.java @@ -35,6 +35,7 @@ import com.google.protobuf.Message; import com.google.protobuf.TypeRegistry; import com.google.protobuf.util.JsonFormat; +import com.google.protobuf.util.JsonFormat.Printer; import java.io.IOException; import java.io.Reader; import java.util.List; @@ -69,12 +70,19 @@ static ProtoRestSerializer create(TypeRegis * protobuf native JSON formatter. * * @param message a message to serialize + * @param numericEnum a boolean flag that determine if enum values should be serialized to number + * or not * @throws InvalidProtocolBufferException if failed to serialize the protobuf message to JSON * format */ - String toJson(RequestT message) { + String toJson(RequestT message, boolean numericEnum) { try { - return JsonFormat.printer().usingTypeRegistry(registry).print(message); + Printer printer = JsonFormat.printer().usingTypeRegistry(registry); + if (numericEnum) { + return printer.printingEnumsAsInts().print(message); + } else { + return printer.print(message); + } } catch (InvalidProtocolBufferException e) { throw new RestSerializationException("Failed to serialize message to JSON", e); } @@ -138,6 +146,17 @@ public void putQueryParam(Map> fields, String fieldName, Ob * @param fieldValue a field value to serialize */ public String toBody(String fieldName, RequestT fieldValue) { - return toJson(fieldValue); + return toJson(fieldValue, false); + } + + /** + * Serializes a message to a request body in a form of JSON-encoded string. + * + * @param fieldName a name of a request message field this message belongs to + * @param fieldValue a field value to serialize + * @param numericEnum a boolean flag that determine if enum values should be serialized to number + */ + public String toBody(String fieldName, RequestT fieldValue, boolean numericEnum) { + return toJson(fieldValue, numericEnum); } } diff --git a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonClientInterceptorTest.java b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonClientInterceptorTest.java index 52c0460b9..8e0a34bb6 100644 --- a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonClientInterceptorTest.java +++ b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonClientInterceptorTest.java @@ -123,7 +123,7 @@ public void onClose(int statusCode, HttpJsonMetadata trailers) { .setRequestBodyExtractor( request -> ProtoRestSerializer.create() - .toBody("*", request.toBuilder().clearName().build())) + .toBody("*", request.toBuilder().clearName().build(), false)) .build()) .setResponseParser( ProtoMessageResponseParser.newBuilder() diff --git a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonDirectCallableTest.java b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonDirectCallableTest.java index ca3e8893e..e47719c5c 100644 --- a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonDirectCallableTest.java +++ b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonDirectCallableTest.java @@ -83,7 +83,7 @@ public class HttpJsonDirectCallableTest { .setRequestBodyExtractor( request -> ProtoRestSerializer.create() - .toBody("*", request.toBuilder().clearName().build())) + .toBody("*", request.toBuilder().clearName().build(), false)) .build()) .setResponseParser( ProtoMessageResponseParser.newBuilder() diff --git a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonDirectServerStreamingCallableTest.java b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonDirectServerStreamingCallableTest.java index b929e4dce..fe0240602 100644 --- a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonDirectServerStreamingCallableTest.java +++ b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonDirectServerStreamingCallableTest.java @@ -92,7 +92,8 @@ public class HttpJsonDirectServerStreamingCallableTest { .setRequestBodyExtractor( request -> ProtoRestSerializer.create() - .toBody("*", request.toBuilder().clearBlue().clearRed().build())) + .toBody( + "*", request.toBuilder().clearBlue().clearRed().build(), false)) .build()) .setResponseParser( ProtoMessageResponseParser.newBuilder() diff --git a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/ProtoMessageRequestFormatterTest.java b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/ProtoMessageRequestFormatterTest.java index 8a8c0ac66..8f43231c1 100644 --- a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/ProtoMessageRequestFormatterTest.java +++ b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/ProtoMessageRequestFormatterTest.java @@ -79,7 +79,7 @@ public void setUp() { .setRequestBodyExtractor( request -> { ProtoRestSerializer serializer = ProtoRestSerializer.create(); - return serializer.toBody("field", request); + return serializer.toBody("field", request, false); }) .setAdditionalPaths("/api/v1/names/{name=field_name1/**}/hello") .build(); diff --git a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/ProtoRestSerializerTest.java b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/ProtoRestSerializerTest.java index 29d648965..0256f6726 100644 --- a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/ProtoRestSerializerTest.java +++ b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/ProtoRestSerializerTest.java @@ -48,6 +48,8 @@ public class ProtoRestSerializerTest { private ProtoRestSerializer requestSerializer; private Field field; private String fieldJson; + private String fieldJsonNumericEnum; + private String fieldJsonUnknownNumericEnum; @Before public void setUp() { @@ -72,21 +74,67 @@ public void setUp() { + " \"name\": \"opt_name2\"\n" + " }]\n" + "}"; + + fieldJsonNumericEnum = + "{\n" + + " \"cardinality\": 1,\n" + + " \"number\": 2,\n" + + " \"name\": \"field_name1\",\n" + + " \"options\": [{\n" + + " \"name\": \"opt_name1\"\n" + + " }, {\n" + + " \"name\": \"opt_name2\"\n" + + " }]\n" + + "}"; + + fieldJsonUnknownNumericEnum = + "{\n" + + " \"cardinality\": 7,\n" + + " \"number\": 2,\n" + + " \"name\": \"field_name1\",\n" + + " \"options\": [{\n" + + " \"name\": \"opt_name1\"\n" + + " }, {\n" + + " \"name\": \"opt_name2\"\n" + + " }]\n" + + "}"; } @Test - public void toJson() { - String fieldToJson = requestSerializer.toJson(field); + public void toJson_numericEnumTrue() { + String fieldToJson = requestSerializer.toJson(field, true); + Truth.assertThat(fieldToJson).isEqualTo(fieldJsonNumericEnum); + } + + @Test + public void toJson_numericEnumFalse() { + String fieldToJson = requestSerializer.toJson(field, false); Truth.assertThat(fieldToJson).isEqualTo(fieldJson); } @Test - public void fromJson() { + public void fromJson_numericEnumTrue() { + Field fieldFromJson = + requestSerializer.fromJson(new StringReader(fieldJsonNumericEnum), Field.newBuilder()); + Truth.assertThat(fieldFromJson).isEqualTo(field); + } + + @Test + public void fromJson_numericEnumFalse() { Field fieldFromJson = requestSerializer.fromJson(new StringReader(fieldJson), Field.newBuilder()); Truth.assertThat(fieldFromJson).isEqualTo(field); } + @Test + public void fromJson_numericEnumTrueAndUnknownEnum() { + Field expected = field.toBuilder().setCardinalityValue(7).build(); + Field fieldFromJson = + requestSerializer.fromJson( + new StringReader(fieldJsonUnknownNumericEnum), Field.newBuilder()); + Truth.assertThat(fieldFromJson).isEqualTo(expected); + } + @Test public void fromJsonInvalidJson() { try { @@ -135,7 +183,7 @@ public void putQueryParam() { @Test public void toBody() { - String body = requestSerializer.toBody("bodyField1", field); + String body = requestSerializer.toBody("bodyField1", field, false); Truth.assertThat(body).isEqualTo(fieldJson); } } diff --git a/gax/build.gradle b/gax/build.gradle index d30a1b519..3726518ec 100644 --- a/gax/build.gradle +++ b/gax/build.gradle @@ -1,7 +1,7 @@ archivesBaseName = "gax" // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "2.18.7" // {x-version-update:gax:current} +project.version = "2.19.0" // {x-version-update:gax:current} dependencies { api(libraries['maven.com_google_api_api_common'], diff --git a/gax/pom.xml b/gax/pom.xml index 88a09f094..9cbb2f3a0 100644 --- a/gax/pom.xml +++ b/gax/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gax - 2.18.7 + 2.19.0 jar GAX (Google Api eXtensions) for Java (Core) Google Api eXtensions for Java (Core) @@ -11,7 +11,7 @@ com.google.api gax-parent - 2.18.7 + 2.19.0 diff --git a/gax/src/test/java/com/google/api/gax/batching/BatcherImplTest.java b/gax/src/test/java/com/google/api/gax/batching/BatcherImplTest.java index 390dc60d5..b503e28da 100644 --- a/gax/src/test/java/com/google/api/gax/batching/BatcherImplTest.java +++ b/gax/src/test/java/com/google/api/gax/batching/BatcherImplTest.java @@ -887,10 +887,15 @@ public void run() { } try { - future.get(100, TimeUnit.MILLISECONDS); + future.get(3, TimeUnit.SECONDS); } catch (TimeoutException e) { assertWithMessage("adding elements to batcher should not be blocked").fail(); } + + // Mockito recommends using verify() as the ONLY way to interact with Argument + // captors - otherwise it may incur in unexpected behaviour + Mockito.verify(callContext).withOption(key.capture(), value.capture()); + // Verify that throttled time is recorded in ApiCallContext assertThat(key.getValue()).isSameInstanceAs(Batcher.THROTTLED_TIME_KEY); assertThat(value.getValue()).isAtLeast(throttledTime); diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8049c684f..ae04661ee 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/pom.xml b/pom.xml index 71799a5b0..3dcc71256 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.api gax-parent pom - 2.18.7 + 2.19.0 GAX (Google Api eXtensions) for Java (Parent) https://github.com/googleapis/gax-java Google Api eXtensions for Java (Parent) @@ -61,17 +61,17 @@ com.google.auth google-auth-library-credentials - 1.8.1 + 1.10.0 org.threeten threetenbp - 1.6.0 + 1.6.1 com.google.auth google-auth-library-oauth2-http - 1.8.1 + 1.10.0 com.google.code.findbugs @@ -112,17 +112,17 @@ org.mockito mockito-core - 4.6.1 + 4.7.0 com.google.api gax - 2.18.7 + 2.19.0 com.google.api gax - 2.18.7 + 2.19.0 test-jar @@ -138,19 +138,19 @@ io.grpc grpc-bom - 1.48.0 + 1.48.1 pom import com.google.code.gson gson - 2.9.0 + 2.9.1 org.graalvm.sdk graal-sdk - 22.1.0.1 + 22.2.0 com.google.http-client @@ -162,7 +162,7 @@ com.google.protobuf protobuf-bom - 3.21.4 + 3.21.5 pom import diff --git a/versions.txt b/versions.txt index 3e6e1e166..515d9fbfa 100644 --- a/versions.txt +++ b/versions.txt @@ -1,7 +1,7 @@ # Format: # module:released-version:current-version -gax:2.18.7:2.18.7 -gax-bom:2.18.7:2.18.7 -gax-grpc:2.18.7:2.18.7 -gax-httpjson:0.103.7:0.103.7 +gax:2.19.0:2.19.0 +gax-bom:2.19.0:2.19.0 +gax-grpc:2.19.0:2.19.0 +gax-httpjson:0.104.0:0.104.0