diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 48ad11d440..aadf54f643 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:944c07e458ce227ca49a423affedf088e31e2ee70908dd21682238d58f1beb60 + digest: sha256:ad9cabee4c022f1aab04a71332369e0c23841062124818a4490f73337f790337 diff --git a/.github/release-trigger.yml b/.github/release-trigger.yml index d4ca94189e..3fe5f7245a 100644 --- a/.github/release-trigger.yml +++ b/.github/release-trigger.yml @@ -1 +1,2 @@ enabled: true +multiScmName: java-bigtable diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d8e7c721a..b4fa017713 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [2.23.2](https://github.com/googleapis/java-bigtable/compare/v2.23.1...v2.23.2) (2023-05-30) + + +### Documentation + +* **samples:** Add bigtable filter snippet ([#1762](https://github.com/googleapis/java-bigtable/issues/1762)) ([48a6ed0](https://github.com/googleapis/java-bigtable/commit/48a6ed028a56302d6dc6554b2ecdabc8fbdb68cf)) +* **samples:** Remove client initialization as the snippets are not used standalone ([#1768](https://github.com/googleapis/java-bigtable/issues/1768)) ([a6ac97c](https://github.com/googleapis/java-bigtable/commit/a6ac97c08a851977a76e82fddb16690cff17a1fe)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.19.0 ([#1769](https://github.com/googleapis/java-bigtable/issues/1769)) ([956c851](https://github.com/googleapis/java-bigtable/commit/956c851b5d7dadb44c589a3f982e603d0a768105)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.10.1 ([#1767](https://github.com/googleapis/java-bigtable/issues/1767)) ([901b88f](https://github.com/googleapis/java-bigtable/commit/901b88f56c7b97bc08826604ed80120f07f04a64)) +* Update dependency com.google.truth.extensions:truth-proto-extension to v1.1.4 ([#1770](https://github.com/googleapis/java-bigtable/issues/1770)) ([a94a522](https://github.com/googleapis/java-bigtable/commit/a94a522a1fa4c67245f1827d8f8137cbfdbd5a45)) +* Update doclet version to v1.9.0 ([#1761](https://github.com/googleapis/java-bigtable/issues/1761)) ([a5d4215](https://github.com/googleapis/java-bigtable/commit/a5d42159643c652a9625fee620fe5ee8dee7fa2e)) + ## [2.23.1](https://github.com/googleapis/java-bigtable/compare/v2.23.0...v2.23.1) (2023-05-11) diff --git a/README.md b/README.md index ac7f849a9e..1fed1c7e84 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: com.google.cloud libraries-bom - 26.14.0 + 26.15.0 pom import @@ -42,7 +42,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigtable - 2.23.0 + 2.23.1 ``` @@ -50,20 +50,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.14.0') +implementation platform('com.google.cloud:libraries-bom:26.15.0') implementation 'com.google.cloud:google-cloud-bigtable' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigtable:2.23.0' +implementation 'com.google.cloud:google-cloud-bigtable:2.23.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "2.23.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "2.23.1" ``` @@ -609,7 +609,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigtable/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigtable.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigtable/2.23.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigtable/2.23.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml index 7eb7c70bc8..28ddcc0428 100644 --- a/google-cloud-bigtable-bom/pom.xml +++ b/google-cloud-bigtable-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigtable-bom - 2.23.1 + 2.23.2 pom com.google.cloud @@ -63,42 +63,42 @@ com.google.cloud google-cloud-bigtable - 2.23.1 + 2.23.2 com.google.cloud google-cloud-bigtable-emulator - 0.160.1 + 0.160.2 com.google.cloud google-cloud-bigtable-emulator-core - 0.160.1 + 0.160.2 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.23.1 + 2.23.2 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.23.1 + 2.23.2 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.23.1 + 2.23.2 com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.23.1 + 2.23.2 com.google.cloud google-cloud-bigtable-stats - 2.23.1 + 2.23.2 diff --git a/google-cloud-bigtable-deps-bom/pom.xml b/google-cloud-bigtable-deps-bom/pom.xml index 622d9ba78c..35bafd7a71 100644 --- a/google-cloud-bigtable-deps-bom/pom.xml +++ b/google-cloud-bigtable-deps-bom/pom.xml @@ -13,7 +13,7 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.23.1 + 2.23.2 pom @@ -66,14 +66,14 @@ com.google.cloud google-cloud-shared-dependencies - 3.9.0 + 3.10.1 pom import com.google.cloud google-cloud-monitoring-bom - 3.18.0 + 3.19.0 diff --git a/google-cloud-bigtable-emulator-core/pom.xml b/google-cloud-bigtable-emulator-core/pom.xml index 17925d8240..af330217e1 100644 --- a/google-cloud-bigtable-emulator-core/pom.xml +++ b/google-cloud-bigtable-emulator-core/pom.xml @@ -7,11 +7,11 @@ google-cloud-bigtable-parent com.google.cloud - 2.23.1 + 2.23.2 google-cloud-bigtable-emulator-core - 0.160.1 + 0.160.2 A Java wrapper for the Cloud Bigtable emulator. diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml index efa4a8a6ab..de2ac840ca 100644 --- a/google-cloud-bigtable-emulator/pom.xml +++ b/google-cloud-bigtable-emulator/pom.xml @@ -5,7 +5,7 @@ 4.0.0 google-cloud-bigtable-emulator - 0.160.1 + 0.160.2 Google Cloud Java - Bigtable Emulator https://github.com/googleapis/java-bigtable @@ -14,7 +14,7 @@ com.google.cloud google-cloud-bigtable-parent - 2.23.1 + 2.23.2 scm:git:git@github.com:googleapis/java-bigtable.git @@ -81,14 +81,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.23.1 + 2.23.2 pom import com.google.cloud google-cloud-bigtable-bom - 2.23.1 + 2.23.2 pom import @@ -99,7 +99,7 @@ com.google.cloud google-cloud-bigtable-emulator-core - 0.160.1 + 0.160.2 diff --git a/google-cloud-bigtable-stats/pom.xml b/google-cloud-bigtable-stats/pom.xml index d0b1535918..123d5ec3cd 100644 --- a/google-cloud-bigtable-stats/pom.xml +++ b/google-cloud-bigtable-stats/pom.xml @@ -5,7 +5,7 @@ com.google.cloud google-cloud-bigtable-parent - 2.23.1 + 2.23.2 4.0.0 @@ -13,7 +13,7 @@ through Stackdriver. Built-in metrics will be implemented with shaded OpenCensus so it won't interfere with customer's application metrics. --> google-cloud-bigtable-stats - 2.23.1 + 2.23.2 Experimental project to shade OpenCensus dependencies. @@ -21,7 +21,7 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.23.1 + 2.23.2 pom import diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 3389af7e6a..7c766cbd76 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigtable - 2.23.1 + 2.23.2 jar Google Cloud Bigtable https://github.com/googleapis/java-bigtable @@ -12,11 +12,11 @@ com.google.cloud google-cloud-bigtable-parent - 2.23.1 + 2.23.2 - 2.23.1 + 2.23.2 google-cloud-bigtable @@ -47,14 +47,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.23.1 + 2.23.2 pom import com.google.cloud google-cloud-bigtable-bom - 2.23.1 + 2.23.2 pom import @@ -630,7 +630,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.3.0 + 3.4.0 add-source diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java index d925861c8e..9c97968758 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java @@ -20,6 +20,6 @@ @InternalApi("For internal use only") public final class Version { // {x-version-update-start:google-cloud-bigtable:current} - public static String VERSION = "2.23.1"; + public static String VERSION = "2.23.2"; // {x-version-update-end} } diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index 33281016d6..5d4512cd9b 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.23.1 + 2.23.2 grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 2.23.1 + 2.23.2 @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.23.1 + 2.23.2 pom import com.google.cloud google-cloud-bigtable-bom - 2.23.1 + 2.23.2 pom import diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index 054f13af57..cb46103e5c 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.23.1 + 2.23.2 grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 2.23.1 + 2.23.2 @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.23.1 + 2.23.2 pom import com.google.cloud google-cloud-bigtable-bom - 2.23.1 + 2.23.2 pom import diff --git a/pom.xml b/pom.xml index bea79183ed..0014df2cfa 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 2.23.1 + 2.23.2 Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -153,27 +153,27 @@ com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.23.1 + 2.23.2 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.23.1 + 2.23.2 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.23.1 + 2.23.2 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.23.1 + 2.23.2 com.google.cloud google-cloud-bigtable - 2.23.1 + 2.23.2 @@ -184,12 +184,12 @@ com.google.truth truth - 1.1.3 + 1.1.4 com.google.truth.extensions truth-proto-extension - 1.1.3 + 1.1.4 test @@ -322,7 +322,7 @@ com.microsoft.doclet.DocFxDoclet false - ${env.KOKORO_GFILE_DIR}/java-docfx-doclet-1.5.0.jar + ${env.KOKORO_GFILE_DIR}/java-docfx-doclet-1.9.0.jar -outputpath ${project.build.directory}/docfx-yml -projectname ${artifactId} diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index 678cb65fc1..9fe53709a5 100644 --- a/proto-google-cloud-bigtable-admin-v2/pom.xml +++ b/proto-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.23.1 + 2.23.2 proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 2.23.1 + 2.23.2 @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.23.1 + 2.23.2 pom import com.google.cloud google-cloud-bigtable-bom - 2.23.1 + 2.23.2 pom import diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index 9b888276bc..42a23398d6 100644 --- a/proto-google-cloud-bigtable-v2/pom.xml +++ b/proto-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.23.1 + 2.23.2 proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 2.23.1 + 2.23.2 @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.23.1 + 2.23.2 pom import com.google.cloud google-cloud-bigtable-bom - 2.23.1 + 2.23.2 pom import diff --git a/renovate.json b/renovate.json index a5826e23a4..20cc7ffc51 100644 --- a/renovate.json +++ b/renovate.json @@ -71,14 +71,6 @@ ], "groupName": "jackson dependencies" }, - { - "packagePatterns": [ - "^com.google.cloud:google-cloud-shared-dependencies", - "^com.google.protobuf:protoc", - "^io.grpc:protoc-gen-grpc-java" - ], - "groupName": "shared dependencies" - } ], "regexManagers": [ { diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index beb181890f..e0e001f41f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-bigtable - 2.23.0 + 2.23.1 @@ -42,7 +42,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test @@ -53,7 +53,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.3.0 + 3.4.0 add-snippets-source diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 691ebde2ef..e8e4e76b50 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -29,7 +29,7 @@ com.google.cloud libraries-bom - 26.14.0 + 26.15.0 pom import @@ -52,7 +52,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d3617a06e7..754d79bc16 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-bigtable - 2.23.1 + 2.23.2 @@ -41,7 +41,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test @@ -52,7 +52,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.3.0 + 3.4.0 add-snippets-source diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index dda8ddbaca..b9357ce8c3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -30,7 +30,7 @@ com.google.cloud libraries-bom - 26.14.0 + 26.15.0 pom import @@ -53,7 +53,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test diff --git a/samples/snippets/src/main/java/com/example/bigtable/Filters.java b/samples/snippets/src/main/java/com/example/bigtable/Filters.java index 9b0829f887..54f3282573 100644 --- a/samples/snippets/src/main/java/com/example/bigtable/Filters.java +++ b/samples/snippets/src/main/java/com/example/bigtable/Filters.java @@ -365,13 +365,17 @@ private static void readFilter( for (Row row : rows) { printRow(row); } + System.out.println("Table filter completed."); } catch (IOException e) { System.out.println( - "Unable to initialize service client, as a network error occurred: \n" + e.toString()); + "Unable to initialize service client, as a network error occurred: \n" + e); } } private static void printRow(Row row) { + if (row == null) { + return; + } System.out.printf("Reading data for %s%n", row.getKey().toStringUtf8()); String colFamily = ""; for (RowCell cell : row.getCells()) { diff --git a/samples/snippets/src/main/java/com/example/bigtable/HelloWorld.java b/samples/snippets/src/main/java/com/example/bigtable/HelloWorld.java index 3c7c94934c..724985ce22 100644 --- a/samples/snippets/src/main/java/com/example/bigtable/HelloWorld.java +++ b/samples/snippets/src/main/java/com/example/bigtable/HelloWorld.java @@ -17,6 +17,9 @@ package com.example.bigtable; // [START bigtable_hw_imports] + +import static com.google.cloud.bigtable.data.v2.models.Filters.FILTERS; + import com.google.api.gax.rpc.NotFoundException; import com.google.api.gax.rpc.ServerStream; import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient; @@ -24,12 +27,15 @@ import com.google.cloud.bigtable.admin.v2.models.CreateTableRequest; import com.google.cloud.bigtable.data.v2.BigtableDataClient; import com.google.cloud.bigtable.data.v2.BigtableDataSettings; +import com.google.cloud.bigtable.data.v2.models.Filters.Filter; import com.google.cloud.bigtable.data.v2.models.Query; import com.google.cloud.bigtable.data.v2.models.Row; import com.google.cloud.bigtable.data.v2.models.RowCell; import com.google.cloud.bigtable.data.v2.models.RowMutation; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Base64; import java.util.List; // [END bigtable_hw_imports] @@ -99,6 +105,7 @@ public void run() throws Exception { readSingleRow(); readSpecificCells(); readTable(); + filterLimitCellsPerCol(tableId); deleteTable(); close(); } @@ -209,6 +216,36 @@ public List readTable() { // [END bigtable_hw_scan_all] } + // [START bigtable_hw_create_filter] + public void filterLimitCellsPerCol(String tableId) { + // A filter that matches only the most recent cell within each column + Filter filter = FILTERS.limit().cellsPerColumn(1); + readRowFilter(tableId, filter); + readFilter(tableId, filter); + } + // [END bigtable_hw_create_filter] + + // [START bigtable_hw_get_with_filter] + private void readRowFilter(String tableId, Filter filter) { + String rowKey = + Base64.getEncoder().encodeToString("greeting0".getBytes(StandardCharsets.UTF_8)); + Row row = dataClient.readRow(tableId, rowKey, filter); + printRow(row); + System.out.println("Row filter completed."); + } + // [END bigtable_hw_get_with_filter] + + // [START bigtable_hw_scan_with_filter] + private void readFilter(String tableId, Filter filter) { + Query query = Query.create(tableId).filter(filter); + ServerStream rows = dataClient.readRows(query); + for (Row row : rows) { + printRow(row); + } + System.out.println("Table filter completed."); + } + // [END bigtable_hw_scan_with_filter] + /** Demonstrates how to delete a table. */ public void deleteTable() { // [START bigtable_hw_delete_table] @@ -221,4 +258,29 @@ public void deleteTable() { } // [END bigtable_hw_delete_table] } + + // [START bigtable_print_row] + private static void printRow(Row row) { + if (row == null) { + return; + } + System.out.printf("Reading data for %s%n", row.getKey().toStringUtf8()); + String colFamily = ""; + for (RowCell cell : row.getCells()) { + if (!cell.getFamily().equals(colFamily)) { + colFamily = cell.getFamily(); + System.out.printf("Column Family %s%n", colFamily); + } + String labels = + cell.getLabels().size() == 0 ? "" : " [" + String.join(",", cell.getLabels()) + "]"; + System.out.printf( + "\t%s: %s @%s%s%n", + cell.getQualifier().toStringUtf8(), + cell.getValue().toStringUtf8(), + cell.getTimestamp(), + labels); + } + System.out.println(); + } + // [END bigtable_print_row] } diff --git a/samples/snippets/src/test/java/com/example/bigtable/FiltersTest.java b/samples/snippets/src/test/java/com/example/bigtable/FiltersTest.java index e94602ec2b..f476fb1b23 100644 --- a/samples/snippets/src/test/java/com/example/bigtable/FiltersTest.java +++ b/samples/snippets/src/test/java/com/example/bigtable/FiltersTest.java @@ -43,7 +43,7 @@ public void testFilterRowSample() { Filters.filterLimitRowSample(projectId, instanceId, TABLE_ID); String output = bout.toString(); - assertThat(output).contains("Reading data for"); + assertThat(output).contains("Table filter completed."); } @Test diff --git a/test-proxy/pom.xml b/test-proxy/pom.xml index 112d0e4762..ef920ca737 100644 --- a/test-proxy/pom.xml +++ b/test-proxy/pom.xml @@ -12,11 +12,11 @@ google-cloud-bigtable-parent com.google.cloud - 2.23.1 + 2.23.2 - 2.23.1 + 2.23.2 diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index d07d06b647..5ac1a3c775 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -23,6 +23,7 @@ import com.google.api.gax.core.FixedCredentialsProvider; import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.ApiException; import com.google.api.gax.rpc.ServerStream; import com.google.auth.oauth2.GoogleCredentials; @@ -146,51 +147,34 @@ public static CbtTestProxy createEncrypted( */ private static BigtableDataSettings.Builder overrideTimeoutSetting( Duration newTimeout, BigtableDataSettings.Builder settingsBuilder) { - // TODO(developer): remove the initialRpcTimeout update below by updating the client library. - Duration initialRpcTimeout = - settingsBuilder - .stubSettings() - .bulkMutateRowsSettings() - .getRetrySettings() - .getInitialRpcTimeout(); - if (initialRpcTimeout.compareTo(newTimeout) > 0) { - // Total timeout is smaller than initialRpcTimeout, which will cause deadline-related problem. - initialRpcTimeout = newTimeout; - } - settingsBuilder - .stubSettings() - .bulkMutateRowsSettings() - .retrySettings() - .setTotalTimeout(newTimeout) - .setInitialRpcTimeout(initialRpcTimeout); - - settingsBuilder.stubSettings().mutateRowSettings().retrySettings().setTotalTimeout(newTimeout); - - settingsBuilder.stubSettings().readRowSettings().retrySettings().setTotalTimeout(newTimeout); - - settingsBuilder.stubSettings().readRowsSettings().retrySettings().setTotalTimeout(newTimeout); - - settingsBuilder - .stubSettings() - .sampleRowKeysSettings() - .retrySettings() - .setTotalTimeout(newTimeout); - - settingsBuilder - .stubSettings() - .checkAndMutateRowSettings() - .retrySettings() - .setTotalTimeout(newTimeout); - - settingsBuilder - .stubSettings() - .readModifyWriteRowSettings() - .retrySettings() - .setTotalTimeout(newTimeout); + + updateTimeout( + settingsBuilder.stubSettings().bulkMutateRowsSettings().retrySettings(), newTimeout); + updateTimeout(settingsBuilder.stubSettings().mutateRowSettings().retrySettings(), newTimeout); + updateTimeout(settingsBuilder.stubSettings().readRowSettings().retrySettings(), newTimeout); + updateTimeout(settingsBuilder.stubSettings().readRowsSettings().retrySettings(), newTimeout); + updateTimeout( + settingsBuilder.stubSettings().checkAndMutateRowSettings().retrySettings(), newTimeout); + updateTimeout( + settingsBuilder.stubSettings().readModifyWriteRowSettings().retrySettings(), newTimeout); + updateTimeout( + settingsBuilder.stubSettings().sampleRowKeysSettings().retrySettings(), newTimeout); return settingsBuilder; } + private static void updateTimeout(RetrySettings.Builder settings, Duration newTimeout) { + Duration rpcTimeout = settings.getInitialRpcTimeout(); + + // TODO: this should happen in gax + // Clamp the rpcTimeout to the overall timeout + if (rpcTimeout != null && rpcTimeout.compareTo(newTimeout) > 0) { + settings.setInitialRpcTimeout(newTimeout).setMaxRpcTimeout(newTimeout); + } + + settings.setTotalTimeout(newTimeout); + } + /** Helper method to get a client object by its id. */ private CbtClient getClient(String id) throws StatusException { CbtClient client = idClientMap.get(id); diff --git a/versions.txt b/versions.txt index 420ac78c77..2a9d08635c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,10 +1,10 @@ # Format: # module:released-version:current-version -google-cloud-bigtable:2.23.1:2.23.1 -grpc-google-cloud-bigtable-admin-v2:2.23.1:2.23.1 -grpc-google-cloud-bigtable-v2:2.23.1:2.23.1 -proto-google-cloud-bigtable-admin-v2:2.23.1:2.23.1 -proto-google-cloud-bigtable-v2:2.23.1:2.23.1 -google-cloud-bigtable-emulator:0.160.1:0.160.1 -google-cloud-bigtable-emulator-core:2.23.1:2.23.1 +google-cloud-bigtable:2.23.2:2.23.2 +grpc-google-cloud-bigtable-admin-v2:2.23.2:2.23.2 +grpc-google-cloud-bigtable-v2:2.23.2:2.23.2 +proto-google-cloud-bigtable-admin-v2:2.23.2:2.23.2 +proto-google-cloud-bigtable-v2:2.23.2:2.23.2 +google-cloud-bigtable-emulator:0.160.2:0.160.2 +google-cloud-bigtable-emulator-core:2.23.2:2.23.2