From 2627551c0352cd00705cc53a26dca73754ba46e6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 12:57:30 -0400 Subject: [PATCH 01/14] chore(main): release 2.20.2-SNAPSHOT (#1674) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigtable-bom/pom.xml | 18 +++++++++--------- google-cloud-bigtable-deps-bom/pom.xml | 2 +- google-cloud-bigtable-emulator-core/pom.xml | 4 ++-- google-cloud-bigtable-emulator/pom.xml | 10 +++++----- google-cloud-bigtable-stats/pom.xml | 6 +++--- google-cloud-bigtable/pom.xml | 10 +++++----- .../com/google/cloud/bigtable/Version.java | 2 +- grpc-google-cloud-bigtable-admin-v2/pom.xml | 8 ++++---- grpc-google-cloud-bigtable-v2/pom.xml | 8 ++++---- pom.xml | 12 ++++++------ proto-google-cloud-bigtable-admin-v2/pom.xml | 8 ++++---- proto-google-cloud-bigtable-v2/pom.xml | 8 ++++---- samples/snapshot/pom.xml | 2 +- test-proxy/pom.xml | 4 ++-- versions.txt | 14 +++++++------- 15 files changed, 58 insertions(+), 58 deletions(-) diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml index a22209d4f5..8580e1ade1 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.20.1 + 2.20.2-SNAPSHOT pom com.google.cloud @@ -63,42 +63,42 @@ com.google.cloud google-cloud-bigtable - 2.20.1 + 2.20.2-SNAPSHOT com.google.cloud google-cloud-bigtable-emulator - 0.157.1 + 0.157.2-SNAPSHOT com.google.cloud google-cloud-bigtable-emulator-core - 0.157.1 + 0.157.2-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.20.1 + 2.20.2-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.20.1 + 2.20.2-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.20.1 + 2.20.2-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.20.1 + 2.20.2-SNAPSHOT com.google.cloud google-cloud-bigtable-stats - 2.20.1 + 2.20.2-SNAPSHOT diff --git a/google-cloud-bigtable-deps-bom/pom.xml b/google-cloud-bigtable-deps-bom/pom.xml index 3e0e2b5811..208b88aff6 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.20.1 + 2.20.2-SNAPSHOT pom diff --git a/google-cloud-bigtable-emulator-core/pom.xml b/google-cloud-bigtable-emulator-core/pom.xml index 849615459a..fc37494734 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.20.1 + 2.20.2-SNAPSHOT google-cloud-bigtable-emulator-core - 0.157.1 + 0.157.2-SNAPSHOT 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 8681586406..b50668963a 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.157.1 + 0.157.2-SNAPSHOT Google Cloud Java - Bigtable Emulator https://github.com/googleapis/java-bigtable @@ -14,7 +14,7 @@ com.google.cloud google-cloud-bigtable-parent - 2.20.1 + 2.20.2-SNAPSHOT scm:git:git@github.com:googleapis/java-bigtable.git @@ -81,14 +81,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import @@ -99,7 +99,7 @@ com.google.cloud google-cloud-bigtable-emulator-core - 0.157.1 + 0.157.2-SNAPSHOT diff --git a/google-cloud-bigtable-stats/pom.xml b/google-cloud-bigtable-stats/pom.xml index 5e2479d61c..fa7256a6ad 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.20.1 + 2.20.2-SNAPSHOT 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.20.1 + 2.20.2-SNAPSHOT Experimental project to shade OpenCensus dependencies. @@ -21,7 +21,7 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 0f8e54a892..798b0f2d61 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigtable - 2.20.1 + 2.20.2-SNAPSHOT jar Google Cloud Bigtable https://github.com/googleapis/java-bigtable @@ -12,11 +12,11 @@ com.google.cloud google-cloud-bigtable-parent - 2.20.1 + 2.20.2-SNAPSHOT - 2.20.1 + 2.20.2-SNAPSHOT google-cloud-bigtable @@ -49,14 +49,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import 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 24eea760cc..6ffbfc5516 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.20.1"; + public static String VERSION = "2.20.2-SNAPSHOT"; // {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 9f2f2b803e..4648473ded 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.20.1 + 2.20.2-SNAPSHOT grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 2.20.1 + 2.20.2-SNAPSHOT @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index ab446f49a7..f579aac482 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.20.1 + 2.20.2-SNAPSHOT grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 2.20.1 + 2.20.2-SNAPSHOT @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import diff --git a/pom.xml b/pom.xml index 3cc9d1f33c..0206cdd510 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 2.20.1 + 2.20.2-SNAPSHOT Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -153,27 +153,27 @@ com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.20.1 + 2.20.2-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.20.1 + 2.20.2-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.20.1 + 2.20.2-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.20.1 + 2.20.2-SNAPSHOT com.google.cloud google-cloud-bigtable - 2.20.1 + 2.20.2-SNAPSHOT diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index ed0a2027b7..f063fbefbc 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.20.1 + 2.20.2-SNAPSHOT proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 2.20.1 + 2.20.2-SNAPSHOT @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index e3d3311635..71a573ef2c 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.20.1 + 2.20.2-SNAPSHOT proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 2.20.1 + 2.20.2-SNAPSHOT @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.20.1 + 2.20.2-SNAPSHOT pom import diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c4aa99ce4f..3f0f85acb7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-bigtable - 2.20.1 + 2.20.2-SNAPSHOT diff --git a/test-proxy/pom.xml b/test-proxy/pom.xml index 45ef927d87..72d67bd40e 100644 --- a/test-proxy/pom.xml +++ b/test-proxy/pom.xml @@ -12,11 +12,11 @@ google-cloud-bigtable-parent com.google.cloud - 2.20.1 + 2.20.2-SNAPSHOT - 2.20.1 + 2.20.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index b548686461..9a8b5e76f6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,10 +1,10 @@ # Format: # module:released-version:current-version -google-cloud-bigtable:2.20.1:2.20.1 -grpc-google-cloud-bigtable-admin-v2:2.20.1:2.20.1 -grpc-google-cloud-bigtable-v2:2.20.1:2.20.1 -proto-google-cloud-bigtable-admin-v2:2.20.1:2.20.1 -proto-google-cloud-bigtable-v2:2.20.1:2.20.1 -google-cloud-bigtable-emulator:0.157.1:0.157.1 -google-cloud-bigtable-emulator-core:2.20.1:2.20.1 +google-cloud-bigtable:2.20.1:2.20.2-SNAPSHOT +grpc-google-cloud-bigtable-admin-v2:2.20.1:2.20.2-SNAPSHOT +grpc-google-cloud-bigtable-v2:2.20.1:2.20.2-SNAPSHOT +proto-google-cloud-bigtable-admin-v2:2.20.1:2.20.2-SNAPSHOT +proto-google-cloud-bigtable-v2:2.20.1:2.20.2-SNAPSHOT +google-cloud-bigtable-emulator:0.157.1:0.157.2-SNAPSHOT +google-cloud-bigtable-emulator-core:2.20.1:2.20.2-SNAPSHOT From fc058e9001e047892061885219a68930194ea6f2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Mar 2023 15:08:12 +0000 Subject: [PATCH 02/14] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.1 (#1675) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.20.0` -> `2.20.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.20.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.20.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.20.1/compatibility-slim/2.20.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.20.1/confidence-slim/2.20.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/java-bigtable ### [`v2.20.1`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2201-httpsgithubcomgoogleapisjava-bigtablecomparev2200v2201-2023-03-21) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.20.0...v2.20.1) ##### Bug Fixes - If new_partitions is size 0, do not enforce size check ([#​1673](https://togithub.com/googleapis/java-bigtable/issues/1673)) ([07bcfd9](https://togithub.com/googleapis/java-bigtable/commit/07bcfd9a0967f781fb8e5e0d764654dbf7bcda91)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.14.0 ([#​1668](https://togithub.com/googleapis/java-bigtable/issues/1668)) ([06f9615](https://togithub.com/googleapis/java-bigtable/commit/06f96156705a2a7897a31d11dad864afe94de693)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.5.0 ([#​1670](https://togithub.com/googleapis/java-bigtable/issues/1670)) ([74cebf3](https://togithub.com/googleapis/java-bigtable/commit/74cebf3a5ab58f3fd3ae95583ba2421b733deda8))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigtable). --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f535068a46..bdad1a62ed 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigtable - 2.20.0 + 2.20.1 ``` @@ -56,13 +56,13 @@ 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.20.0' +implementation 'com.google.cloud:google-cloud-bigtable:2.20.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "2.20.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "2.20.1" ``` @@ -600,7 +600,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.20.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigtable/2.20.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/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 183f8c3528..342dd3a269 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.20.0 + 2.20.1 From 45ce93bb52112391b9c3a90f10f51279839bea1b Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Thu, 23 Mar 2023 14:08:12 -0400 Subject: [PATCH 03/14] fix: higher application blocking latency precision (#1676) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use nano seconds for application blocking latency to reduce rounding errors from starting and stopping the timer within a millisecond. Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigtable/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes # ☕️ If you write sample code, please follow the [samples format]( https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). --- .../data/v2/stub/metrics/BuiltinMetricsTracer.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracer.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracer.java index cb3791360a..e592d0038f 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracer.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracer.java @@ -55,7 +55,7 @@ class BuiltinMetricsTracer extends BigtableTracer { // Total server latency needs to be atomic because it's accessed from different threads. E.g. // request() from user thread and attempt failed from grpc thread. We're only measuring the extra // time application spent blocking grpc buffer, which will be operationLatency - serverLatency. - private final AtomicLong totalServerLatency = new AtomicLong(0); + private final AtomicLong totalServerLatencyNano = new AtomicLong(0); // Stopwatch is not thread safe so this is a workaround to check if the stopwatch changes is // flushed to memory. private final Stopwatch serverLatencyTimer = Stopwatch.createUnstarted(); @@ -171,7 +171,7 @@ public void responseReceived() { // In all the cases, we want to stop the serverLatencyTimer here. synchronized (timerLock) { if (serverLatencyTimerIsRunning) { - totalServerLatency.addAndGet(serverLatencyTimer.elapsed(TimeUnit.MILLISECONDS)); + totalServerLatencyNano.addAndGet(serverLatencyTimer.elapsed(TimeUnit.NANOSECONDS)); serverLatencyTimer.reset(); serverLatencyTimerIsRunning = false; } @@ -233,6 +233,7 @@ private void recordOperationCompletion(@Nullable Throwable status) { } operationTimer.stop(); long operationLatency = operationTimer.elapsed(TimeUnit.MILLISECONDS); + long operationLatencyNano = operationTimer.elapsed(TimeUnit.NANOSECONDS); // Only record when retry count is greater than 0 so the retry // graph will be less confusing @@ -242,7 +243,8 @@ private void recordOperationCompletion(@Nullable Throwable status) { // serverLatencyTimer should already be stopped in recordAttemptCompletion recorder.putOperationLatencies(operationLatency); - recorder.putApplicationLatencies(operationLatency - totalServerLatency.get()); + recorder.putApplicationLatencies( + Duration.ofNanos(operationLatencyNano - totalServerLatencyNano.get()).toMillis()); if (operationType == OperationType.ServerStreaming && spanName.getMethodName().equals("ReadRows")) { @@ -258,7 +260,7 @@ private void recordAttemptCompletion(@Nullable Throwable status) { synchronized (timerLock) { if (serverLatencyTimerIsRunning) { requestLeft.decrementAndGet(); - totalServerLatency.addAndGet(serverLatencyTimer.elapsed(TimeUnit.MILLISECONDS)); + totalServerLatencyNano.addAndGet(serverLatencyTimer.elapsed(TimeUnit.NANOSECONDS)); serverLatencyTimer.reset(); serverLatencyTimerIsRunning = false; } From f88bb67a7a63450b8cd29f01660cf677ddfe436c Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Fri, 24 Mar 2023 13:14:11 -0400 Subject: [PATCH 04/14] fix: mark readRow requests as unary operations (#1679) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigtable/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes # ☕️ If you write sample code, please follow the [samples format]( https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). --- README.md | 2 +- .../bigtable/data/v2/stub/EnhancedBigtableStub.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index bdad1a62ed..94f3317dfe 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ If you are using Maven without 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.10.0') +implementation platform('com.google.cloud:libraries-bom:26.11.0') implementation 'com.google.cloud:google-cloud-bigtable' ``` diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java index 2b50224957..57c6d3337c 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java @@ -395,13 +395,13 @@ public UnaryCallable createReadRowCallable(RowAdapter ReadRowsUserCallable readRowCallable = new ReadRowsUserCallable<>(readRowsCallable, requestContext); - ServerStreamingCallable traced = - new TracedServerStreamingCallable<>( - readRowCallable, clientContext.getTracerFactory(), getSpanName("ReadRow")); + ReadRowsFirstCallable firstRow = new ReadRowsFirstCallable<>(readRowCallable); - ReadRowsFirstCallable firstRow = new ReadRowsFirstCallable<>(traced); + UnaryCallable traced = + new TracedUnaryCallable<>( + firstRow, clientContext.getTracerFactory(), getSpanName("ReadRow")); - return firstRow.withDefaultCallContext(clientContext.getDefaultCallContext()); + return traced.withDefaultCallContext(clientContext.getDefaultCallContext()); } /** From 2d9122a7f7b3c01fff595b24b31b7e33959ad0b1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 24 Mar 2023 18:59:11 +0000 Subject: [PATCH 05/14] chore(deps): update dependency com.google.cloud:libraries-bom to v26.11.0 (#1678) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.11.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 94f3317dfe..b676af6f7e 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.10.0 + 26.11.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index dd743e9d84..954eb06312 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.10.0 + 26.11.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a690a21afc..d072f99023 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -30,7 +30,7 @@ com.google.cloud libraries-bom - 26.10.0 + 26.11.0 pom import From c1647f7902ac5ce202b1b00d98661a7e9bb18c1a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 27 Mar 2023 16:42:18 +0100 Subject: [PATCH 06/14] build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.1 (#1618) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index 4254f54811..e05832ffc6 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -39,7 +39,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.0.0 + 3.1.1 true From c64ddeb2e6f75ca32de5b587420949723467e5a5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 27 Mar 2023 16:42:59 +0100 Subject: [PATCH 07/14] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.5.0 (#1628) --- grpc-google-cloud-bigtable-admin-v2/pom.xml | 2 +- grpc-google-cloud-bigtable-v2/pom.xml | 2 +- pom.xml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index 4648473ded..091bdb6bad 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -74,7 +74,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.1 + 3.5.0 protected true diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index f579aac482..38747ddc75 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -66,7 +66,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.1 + 3.5.0 protected true diff --git a/pom.xml b/pom.xml index 0206cdd510..c21552738b 100644 --- a/pom.xml +++ b/pom.xml @@ -226,7 +226,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.1 + 3.5.0 aggregate @@ -317,7 +317,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.1 + 3.5.0 com.microsoft.doclet.DocFxDoclet From a80f3c75a7b70bf0e47af36ad4d63701854f65b2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Mar 2023 21:46:00 +0100 Subject: [PATCH 08/14] test(deps): update dependency com.google.cloud:google-cloud-conformance-tests to v0.3.5 (#1680) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c21552738b..8715127fd1 100644 --- a/pom.xml +++ b/pom.xml @@ -179,7 +179,7 @@ com.google.cloud google-cloud-conformance-tests - 0.3.4 + 0.3.5 com.google.truth From 48bfeb57b3a04b8b1e77ee3edebc0f8119e4225f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 Mar 2023 15:18:35 +0100 Subject: [PATCH 09/14] build(deps): update dependency org.codehaus.mojo:extra-enforcer-rules to v1.6.2 (#1682) --- google-cloud-bigtable/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 798b0f2d61..be0f0bbeee 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -713,7 +713,7 @@ org.codehaus.mojo extra-enforcer-rules - 1.6.1 + 1.6.2 org.apache.maven.shared From 83102bd1a41ff781ad0bd2b6569a2848d85e3768 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 29 Mar 2023 12:24:12 -0400 Subject: [PATCH 10/14] build: update renovate config to update grpc.version and protobuf.version from properties (#1640) --- owlbot.py | 1 + renovate.json | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/owlbot.py b/owlbot.py index 2daf394127..8b33b41998 100644 --- a/owlbot.py +++ b/owlbot.py @@ -109,4 +109,5 @@ def make_internal_only(sources): 'codecov.yaml' # needed for extraFiles '.github/release-please.yml', + 'renovate.json', ]) diff --git a/renovate.json b/renovate.json index 2543edb1a8..7494258c9a 100644 --- a/renovate.json +++ b/renovate.json @@ -68,6 +68,28 @@ "^com.fasterxml.jackson.core" ], "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": [ + { + "fileMatch": ["^pom\\.xml$"], + "matchStrings": ["\\(?.*?)\\<\\/grpc\\.version\\>"], + "depNameTemplate": "io.grpc:protoc-gen-grpc-java", + "datasourceTemplate": "maven" + }, + { + "fileMatch": ["^pom\\.xml$"], + "matchStrings": ["\\(?.*?)\\<\\/protobuf\\.version\\>"], + "depNameTemplate": "com.google.protobuf:protoc", + "datasourceTemplate": "maven" } ], "semanticCommits": true, From b0268eb9a55563d8d5f7d5ceaf71167081c8514b Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Wed, 29 Mar 2023 13:32:13 -0400 Subject: [PATCH 11/14] test(fix): Run tests in different processes and pull metrics for 10 minutes (#1666) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigtable/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes # ☕️ If you write sample code, please follow the [samples format]( https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). --- .../BigtableCreateTimeSeriesExporter.java | 56 ++++++------ google-cloud-bigtable/pom.xml | 8 +- .../bigtable/data/v2/it/BuiltinMetricsIT.java | 89 ++++++++++++++----- 3 files changed, 103 insertions(+), 50 deletions(-) diff --git a/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/BigtableCreateTimeSeriesExporter.java b/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/BigtableCreateTimeSeriesExporter.java index ad2e76867c..325a07a0c5 100644 --- a/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/BigtableCreateTimeSeriesExporter.java +++ b/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/BigtableCreateTimeSeriesExporter.java @@ -52,35 +52,39 @@ public void export(Collection metrics) { continue; } - try { - projectToTimeSeries = - metric.getTimeSeriesList().stream() - .collect( - Collectors.groupingBy( - timeSeries -> - BigtableStackdriverExportUtils.getProjectId( - metric.getMetricDescriptor(), timeSeries), - Collectors.mapping( - timeSeries -> - BigtableStackdriverExportUtils.convertTimeSeries( - metric.getMetricDescriptor(), - timeSeries, - clientId, - monitoredResource), - Collectors.toList()))); + projectToTimeSeries = + metric.getTimeSeriesList().stream() + .collect( + Collectors.groupingBy( + timeSeries -> + BigtableStackdriverExportUtils.getProjectId( + metric.getMetricDescriptor(), timeSeries), + Collectors.mapping( + timeSeries -> + BigtableStackdriverExportUtils.convertTimeSeries( + metric.getMetricDescriptor(), + timeSeries, + clientId, + monitoredResource), + Collectors.toList()))); - for (Map.Entry> entry : - projectToTimeSeries.entrySet()) { - ProjectName projectName = ProjectName.of(entry.getKey()); - CreateTimeSeriesRequest request = - CreateTimeSeriesRequest.newBuilder() - .setName(projectName.toString()) - .addAllTimeSeries(entry.getValue()) - .build(); + for (Map.Entry> entry : + projectToTimeSeries.entrySet()) { + ProjectName projectName = ProjectName.of(entry.getKey()); + CreateTimeSeriesRequest request = + CreateTimeSeriesRequest.newBuilder() + .setName(projectName.toString()) + .addAllTimeSeries(entry.getValue()) + .build(); + try { this.metricServiceClient.createServiceTimeSeries(request); + } catch (Throwable e) { + logger.log( + Level.WARNING, + "Exception thrown when exporting TimeSeries for projectName=" + + projectName.getProject(), + e); } - } catch (Throwable e) { - logger.log(Level.WARNING, "Exception thrown when exporting TimeSeries.", e); } } } diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index be0f0bbeee..ef27ac4ba9 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -746,8 +746,12 @@ true - classes - 10 + + 4 + false false diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java index e49462ae81..4e75fb8631 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java @@ -15,17 +15,22 @@ */ package com.google.cloud.bigtable.data.v2.it; -import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.Truth.assertWithMessage; import static com.google.common.truth.TruthJUnit.assume; import com.google.api.client.util.Lists; +import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient; +import com.google.cloud.bigtable.admin.v2.models.CreateTableRequest; +import com.google.cloud.bigtable.admin.v2.models.Table; import com.google.cloud.bigtable.data.v2.BigtableDataSettings; 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.RowMutation; import com.google.cloud.bigtable.test_helpers.env.EmulatorEnv; +import com.google.cloud.bigtable.test_helpers.env.PrefixGenerator; import com.google.cloud.bigtable.test_helpers.env.TestEnvRule; import com.google.cloud.monitoring.v3.MetricServiceClient; +import com.google.common.base.Stopwatch; import com.google.monitoring.v3.ListTimeSeriesRequest; import com.google.monitoring.v3.ListTimeSeriesResponse; import com.google.monitoring.v3.ProjectName; @@ -33,10 +38,15 @@ import com.google.protobuf.util.Timestamps; import java.io.IOException; import java.util.ArrayList; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.ClassRule; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.Timeout; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.threeten.bp.Duration; @@ -44,7 +54,13 @@ @RunWith(JUnit4.class) public class BuiltinMetricsIT { @ClassRule public static TestEnvRule testEnvRule = new TestEnvRule(); - public static MetricServiceClient metricClient; + + private static final Logger logger = Logger.getLogger(BuiltinMetricsIT.class.getName()); + + @Rule public Timeout globalTimeout = Timeout.seconds(900); + private static Table table; + private static BigtableTableAdminClient tableAdminClient; + private static MetricServiceClient metricClient; public static String[] VIEWS = { "operation_latencies", @@ -65,6 +81,8 @@ public static void setUpClass() throws IOException { // Create a cloud monitoring client metricClient = MetricServiceClient.create(); + + tableAdminClient = testEnvRule.env().getTableAdminClient(); } @AfterClass @@ -72,35 +90,39 @@ public static void tearDown() { if (metricClient != null) { metricClient.close(); } + if (table != null) { + tableAdminClient.deleteTable(table.getId()); + } } @Test public void testBuiltinMetrics() throws Exception { + logger.info("Started testing builtin metrics"); + table = + tableAdminClient.createTable( + CreateTableRequest.of(PrefixGenerator.newPrefix("BuiltinMetricsIT#test")) + .addFamily("cf")); + logger.info("Create table: " + table.getId()); // Send a MutateRow and ReadRows request testEnvRule .env() .getDataClient() - .mutateRow( - RowMutation.create(testEnvRule.env().getTableId(), "a-new-key") - .setCell(testEnvRule.env().getFamilyId(), "q", "abc")); + .mutateRow(RowMutation.create(table.getId(), "a-new-key").setCell("cf", "q", "abc")); ArrayList rows = Lists.newArrayList( - testEnvRule - .env() - .getDataClient() - .readRows(Query.create(testEnvRule.env().getTableId()).limit(10))); + testEnvRule.env().getDataClient().readRows(Query.create(table.getId()).limit(10))); - // Sleep 5 minutes so the metrics could be published and precomputation is done - Thread.sleep(Duration.ofMinutes(5).toMillis()); + Stopwatch stopwatch = Stopwatch.createStarted(); ProjectName name = ProjectName.of(testEnvRule.env().getProjectId()); - // Restrict time to last 10 minutes + // Restrict time to last 10 minutes and 5 minutes after the request long startMillis = System.currentTimeMillis() - Duration.ofMinutes(10).toMillis(); + long endMillis = startMillis + Duration.ofMinutes(15).toMillis(); TimeInterval interval = TimeInterval.newBuilder() .setStartTime(Timestamps.fromMillis(startMillis)) - .setEndTime(Timestamps.fromMillis(System.currentTimeMillis())) + .setEndTime(Timestamps.fromMillis(endMillis)) .build(); for (String view : VIEWS) { @@ -109,27 +131,50 @@ public void testBuiltinMetrics() throws Exception { String metricFilter = String.format( "metric.type=\"bigtable.googleapis.com/client/%s\" " - + "AND resource.labels.instance=\"%s\" AND metric.labels.method=\"Bigtable.MutateRow\"", - view, testEnvRule.env().getInstanceId()); + + "AND resource.labels.instance=\"%s\" AND metric.labels.method=\"Bigtable.MutateRow\"" + + " AND resource.labels.table=\"%s\"", + view, testEnvRule.env().getInstanceId(), table.getId()); ListTimeSeriesRequest.Builder requestBuilder = ListTimeSeriesRequest.newBuilder() .setName(name.toString()) .setFilter(metricFilter) .setInterval(interval) .setView(ListTimeSeriesRequest.TimeSeriesView.FULL); - ListTimeSeriesResponse response = - metricClient.listTimeSeriesCallable().call(requestBuilder.build()); - assertThat(response.getTimeSeriesCount()).isGreaterThan(0); + + verifyMetricsArePublished(requestBuilder.build(), stopwatch, view); // Verify that metrics are published for ReadRows request metricFilter = String.format( "metric.type=\"bigtable.googleapis.com/client/%s\" " - + "AND resource.labels.instance=\"%s\" AND metric.labels.method=\"Bigtable.ReadRows\"", - view, testEnvRule.env().getInstanceId()); + + "AND resource.labels.instance=\"%s\" AND metric.labels.method=\"Bigtable.ReadRows\"" + + " AND resource.labels.table=\"%s\"", + view, testEnvRule.env().getInstanceId(), table.getId()); requestBuilder.setFilter(metricFilter); - response = metricClient.listTimeSeriesCallable().call(requestBuilder.build()); - assertThat(response.getTimeSeriesCount()).isGreaterThan(0); + + verifyMetricsArePublished(requestBuilder.build(), stopwatch, view); } } + + private void verifyMetricsArePublished( + ListTimeSeriesRequest request, Stopwatch stopwatch, String view) throws Exception { + ListTimeSeriesResponse response = metricClient.listTimeSeriesCallable().call(request); + logger.log( + Level.INFO, + "Checking for view " + + view + + ", has timeseries=" + + response.getTimeSeriesCount() + + " stopwatch elapsed " + + stopwatch.elapsed(TimeUnit.MINUTES)); + while (response.getTimeSeriesCount() == 0 && stopwatch.elapsed(TimeUnit.MINUTES) < 10) { + // Call listTimeSeries every minute + Thread.sleep(Duration.ofMinutes(1).toMillis()); + response = metricClient.listTimeSeriesCallable().call(request); + } + + assertWithMessage("View " + view + " didn't return any data.") + .that(response.getTimeSeriesCount()) + .isGreaterThan(0); + } } From c39a36a13e5140c66c9d6f3b74a670f3548be80e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 15:36:24 -0400 Subject: [PATCH 12/14] chore(deps): Update gapic-generator-java to 2.16.0 (#1683) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): Update gapic-generator-java to 2.16.0 PiperOrigin-RevId: 520153493 Source-Link: https://github.com/googleapis/googleapis/commit/26a424a2e4190c3103ab6f5d00c3144c89161b20 Source-Link: https://github.com/googleapis/googleapis-gen/commit/78f1567661df07bea7425e4341012e7b77c11254 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNzhmMTU2NzY2MWRmMDdiZWE3NDI1ZTQzNDEwMTJlN2I3N2MxMTI1NCJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../admin/v2/BigtableInstanceAdminGrpc.java | 336 ++++++++-------- .../admin/v2/BigtableTableAdminGrpc.java | 379 +++++++++--------- .../com/google/bigtable/v2/BigtableGrpc.java | 166 ++++---- 3 files changed, 464 insertions(+), 417 deletions(-) diff --git a/grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminGrpc.java b/grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminGrpc.java index 8bc483256f..0a93eb51a4 100644 --- a/grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminGrpc.java +++ b/grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminGrpc.java @@ -1019,7 +1019,7 @@ public BigtableInstanceAdminFutureStub newStub( * tables' metadata or data stored in those tables. * */ - public abstract static class BigtableInstanceAdminImplBase implements io.grpc.BindableService { + public interface AsyncService { /** * @@ -1033,7 +1033,7 @@ public abstract static class BigtableInstanceAdminImplBase implements io.grpc.Bi * enabled. * */ - public void createInstance( + default void createInstance( com.google.bigtable.admin.v2.CreateInstanceRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1047,7 +1047,7 @@ public void createInstance( * Gets information about an instance. * */ - public void getInstance( + default void getInstance( com.google.bigtable.admin.v2.GetInstanceRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1061,7 +1061,7 @@ public void getInstance( * Lists information about instances in a project. * */ - public void listInstances( + default void listInstances( com.google.bigtable.admin.v2.ListInstancesRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1078,7 +1078,7 @@ public void listInstances( * labels, use PartialUpdateInstance. * */ - public void updateInstance( + default void updateInstance( com.google.bigtable.admin.v2.Instance request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1093,7 +1093,7 @@ public void updateInstance( * fields of an Instance and is the preferred way to update an Instance. * */ - public void partialUpdateInstance( + default void partialUpdateInstance( com.google.bigtable.admin.v2.PartialUpdateInstanceRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1107,7 +1107,7 @@ public void partialUpdateInstance( * Delete an instance from a project. * */ - public void deleteInstance( + default void deleteInstance( com.google.bigtable.admin.v2.DeleteInstanceRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1126,7 +1126,7 @@ public void deleteInstance( * enabled. * */ - public void createCluster( + default void createCluster( com.google.bigtable.admin.v2.CreateClusterRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1140,7 +1140,7 @@ public void createCluster( * Gets information about a cluster. * */ - public void getCluster( + default void getCluster( com.google.bigtable.admin.v2.GetClusterRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetClusterMethod(), responseObserver); @@ -1153,7 +1153,7 @@ public void getCluster( * Lists information about clusters in an instance. * */ - public void listClusters( + default void listClusters( com.google.bigtable.admin.v2.ListClustersRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1171,7 +1171,7 @@ public void listClusters( * must use PartialUpdateCluster. * */ - public void updateCluster( + default void updateCluster( com.google.bigtable.admin.v2.Cluster request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1194,7 +1194,7 @@ public void updateCluster( * and explicitly set a serve_node count via the update_mask. * */ - public void partialUpdateCluster( + default void partialUpdateCluster( com.google.bigtable.admin.v2.PartialUpdateClusterRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1208,7 +1208,7 @@ public void partialUpdateCluster( * Deletes a cluster from an instance. * */ - public void deleteCluster( + default void deleteCluster( com.google.bigtable.admin.v2.DeleteClusterRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1222,7 +1222,7 @@ public void deleteCluster( * Creates an app profile within an instance. * */ - public void createAppProfile( + default void createAppProfile( com.google.bigtable.admin.v2.CreateAppProfileRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1236,7 +1236,7 @@ public void createAppProfile( * Gets information about an app profile. * */ - public void getAppProfile( + default void getAppProfile( com.google.bigtable.admin.v2.GetAppProfileRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1250,7 +1250,7 @@ public void getAppProfile( * Lists information about app profiles in an instance. * */ - public void listAppProfiles( + default void listAppProfiles( com.google.bigtable.admin.v2.ListAppProfilesRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1265,7 +1265,7 @@ public void listAppProfiles( * Updates an app profile within an instance. * */ - public void updateAppProfile( + default void updateAppProfile( com.google.bigtable.admin.v2.UpdateAppProfileRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1279,7 +1279,7 @@ public void updateAppProfile( * Deletes an app profile from an instance. * */ - public void deleteAppProfile( + default void deleteAppProfile( com.google.bigtable.admin.v2.DeleteAppProfileRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1294,7 +1294,7 @@ public void deleteAppProfile( * policy if an instance exists but does not have a policy set. * */ - public void getIamPolicy( + default void getIamPolicy( com.google.iam.v1.GetIamPolicyRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1309,7 +1309,7 @@ public void getIamPolicy( * existing policy. * */ - public void setIamPolicy( + default void setIamPolicy( com.google.iam.v1.SetIamPolicyRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1323,7 +1323,7 @@ public void setIamPolicy( * Returns permissions that the caller has on the specified instance resource. * */ - public void testIamPermissions( + default void testIamPermissions( com.google.iam.v1.TestIamPermissionsRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1339,154 +1339,35 @@ public void testIamPermissions( * tablets are ordered based on CPU usage. * */ - public void listHotTablets( + default void listHotTablets( com.google.bigtable.admin.v2.ListHotTabletsRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( getListHotTabletsMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service BigtableInstanceAdmin. + * + *
+   * Service for creating, configuring, and deleting Cloud Bigtable Instances and
+   * Clusters. Provides access to the Instance and Cluster schemas only, not the
+   * tables' metadata or data stored in those tables.
+   * 
+ */ + public abstract static class BigtableInstanceAdminImplBase + implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getCreateInstanceMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.CreateInstanceRequest, - com.google.longrunning.Operation>(this, METHODID_CREATE_INSTANCE))) - .addMethod( - getGetInstanceMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.GetInstanceRequest, - com.google.bigtable.admin.v2.Instance>(this, METHODID_GET_INSTANCE))) - .addMethod( - getListInstancesMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.ListInstancesRequest, - com.google.bigtable.admin.v2.ListInstancesResponse>( - this, METHODID_LIST_INSTANCES))) - .addMethod( - getUpdateInstanceMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.Instance, com.google.bigtable.admin.v2.Instance>( - this, METHODID_UPDATE_INSTANCE))) - .addMethod( - getPartialUpdateInstanceMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.PartialUpdateInstanceRequest, - com.google.longrunning.Operation>(this, METHODID_PARTIAL_UPDATE_INSTANCE))) - .addMethod( - getDeleteInstanceMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.DeleteInstanceRequest, - com.google.protobuf.Empty>(this, METHODID_DELETE_INSTANCE))) - .addMethod( - getCreateClusterMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.CreateClusterRequest, - com.google.longrunning.Operation>(this, METHODID_CREATE_CLUSTER))) - .addMethod( - getGetClusterMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.GetClusterRequest, - com.google.bigtable.admin.v2.Cluster>(this, METHODID_GET_CLUSTER))) - .addMethod( - getListClustersMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.ListClustersRequest, - com.google.bigtable.admin.v2.ListClustersResponse>( - this, METHODID_LIST_CLUSTERS))) - .addMethod( - getUpdateClusterMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.Cluster, com.google.longrunning.Operation>( - this, METHODID_UPDATE_CLUSTER))) - .addMethod( - getPartialUpdateClusterMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.PartialUpdateClusterRequest, - com.google.longrunning.Operation>(this, METHODID_PARTIAL_UPDATE_CLUSTER))) - .addMethod( - getDeleteClusterMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.DeleteClusterRequest, com.google.protobuf.Empty>( - this, METHODID_DELETE_CLUSTER))) - .addMethod( - getCreateAppProfileMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.CreateAppProfileRequest, - com.google.bigtable.admin.v2.AppProfile>(this, METHODID_CREATE_APP_PROFILE))) - .addMethod( - getGetAppProfileMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.GetAppProfileRequest, - com.google.bigtable.admin.v2.AppProfile>(this, METHODID_GET_APP_PROFILE))) - .addMethod( - getListAppProfilesMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.ListAppProfilesRequest, - com.google.bigtable.admin.v2.ListAppProfilesResponse>( - this, METHODID_LIST_APP_PROFILES))) - .addMethod( - getUpdateAppProfileMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.UpdateAppProfileRequest, - com.google.longrunning.Operation>(this, METHODID_UPDATE_APP_PROFILE))) - .addMethod( - getDeleteAppProfileMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.DeleteAppProfileRequest, - com.google.protobuf.Empty>(this, METHODID_DELETE_APP_PROFILE))) - .addMethod( - getGetIamPolicyMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.iam.v1.GetIamPolicyRequest, com.google.iam.v1.Policy>( - this, METHODID_GET_IAM_POLICY))) - .addMethod( - getSetIamPolicyMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.iam.v1.SetIamPolicyRequest, com.google.iam.v1.Policy>( - this, METHODID_SET_IAM_POLICY))) - .addMethod( - getTestIamPermissionsMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.iam.v1.TestIamPermissionsRequest, - com.google.iam.v1.TestIamPermissionsResponse>( - this, METHODID_TEST_IAM_PERMISSIONS))) - .addMethod( - getListHotTabletsMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.ListHotTabletsRequest, - com.google.bigtable.admin.v2.ListHotTabletsResponse>( - this, METHODID_LIST_HOT_TABLETS))) - .build(); + return BigtableInstanceAdminGrpc.bindService(this); } } /** - * + * A stub to allow clients to do asynchronous rpc calls to service BigtableInstanceAdmin. * *
    * Service for creating, configuring, and deleting Cloud Bigtable Instances and
@@ -1875,7 +1756,7 @@ public void listHotTablets(
   }
 
   /**
-   *
+   * A stub to allow clients to do synchronous rpc calls to service BigtableInstanceAdmin.
    *
    * 
    * Service for creating, configuring, and deleting Cloud Bigtable Instances and
@@ -2197,7 +2078,8 @@ public com.google.bigtable.admin.v2.ListHotTabletsResponse listHotTablets(
   }
 
   /**
-   *
+   * A stub to allow clients to do ListenableFuture-style rpc calls to service
+   * BigtableInstanceAdmin.
    *
    * 
    * Service for creating, configuring, and deleting Cloud Bigtable Instances and
@@ -2554,10 +2436,10 @@ private static final class MethodHandlers
           io.grpc.stub.ServerCalls.ServerStreamingMethod,
           io.grpc.stub.ServerCalls.ClientStreamingMethod,
           io.grpc.stub.ServerCalls.BidiStreamingMethod {
-    private final BigtableInstanceAdminImplBase serviceImpl;
+    private final AsyncService serviceImpl;
     private final int methodId;
 
-    MethodHandlers(BigtableInstanceAdminImplBase serviceImpl, int methodId) {
+    MethodHandlers(AsyncService serviceImpl, int methodId) {
       this.serviceImpl = serviceImpl;
       this.methodId = methodId;
     }
@@ -2696,6 +2578,140 @@ public io.grpc.stub.StreamObserver invoke(
     }
   }
 
+  public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) {
+    return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+        .addMethod(
+            getCreateInstanceMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.CreateInstanceRequest,
+                    com.google.longrunning.Operation>(service, METHODID_CREATE_INSTANCE)))
+        .addMethod(
+            getGetInstanceMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.GetInstanceRequest,
+                    com.google.bigtable.admin.v2.Instance>(service, METHODID_GET_INSTANCE)))
+        .addMethod(
+            getListInstancesMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.ListInstancesRequest,
+                    com.google.bigtable.admin.v2.ListInstancesResponse>(
+                    service, METHODID_LIST_INSTANCES)))
+        .addMethod(
+            getUpdateInstanceMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.Instance, com.google.bigtable.admin.v2.Instance>(
+                    service, METHODID_UPDATE_INSTANCE)))
+        .addMethod(
+            getPartialUpdateInstanceMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.PartialUpdateInstanceRequest,
+                    com.google.longrunning.Operation>(service, METHODID_PARTIAL_UPDATE_INSTANCE)))
+        .addMethod(
+            getDeleteInstanceMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.DeleteInstanceRequest, com.google.protobuf.Empty>(
+                    service, METHODID_DELETE_INSTANCE)))
+        .addMethod(
+            getCreateClusterMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.CreateClusterRequest,
+                    com.google.longrunning.Operation>(service, METHODID_CREATE_CLUSTER)))
+        .addMethod(
+            getGetClusterMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.GetClusterRequest,
+                    com.google.bigtable.admin.v2.Cluster>(service, METHODID_GET_CLUSTER)))
+        .addMethod(
+            getListClustersMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.ListClustersRequest,
+                    com.google.bigtable.admin.v2.ListClustersResponse>(
+                    service, METHODID_LIST_CLUSTERS)))
+        .addMethod(
+            getUpdateClusterMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.Cluster, com.google.longrunning.Operation>(
+                    service, METHODID_UPDATE_CLUSTER)))
+        .addMethod(
+            getPartialUpdateClusterMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.PartialUpdateClusterRequest,
+                    com.google.longrunning.Operation>(service, METHODID_PARTIAL_UPDATE_CLUSTER)))
+        .addMethod(
+            getDeleteClusterMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.DeleteClusterRequest, com.google.protobuf.Empty>(
+                    service, METHODID_DELETE_CLUSTER)))
+        .addMethod(
+            getCreateAppProfileMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.CreateAppProfileRequest,
+                    com.google.bigtable.admin.v2.AppProfile>(service, METHODID_CREATE_APP_PROFILE)))
+        .addMethod(
+            getGetAppProfileMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.GetAppProfileRequest,
+                    com.google.bigtable.admin.v2.AppProfile>(service, METHODID_GET_APP_PROFILE)))
+        .addMethod(
+            getListAppProfilesMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.ListAppProfilesRequest,
+                    com.google.bigtable.admin.v2.ListAppProfilesResponse>(
+                    service, METHODID_LIST_APP_PROFILES)))
+        .addMethod(
+            getUpdateAppProfileMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.UpdateAppProfileRequest,
+                    com.google.longrunning.Operation>(service, METHODID_UPDATE_APP_PROFILE)))
+        .addMethod(
+            getDeleteAppProfileMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.DeleteAppProfileRequest,
+                    com.google.protobuf.Empty>(service, METHODID_DELETE_APP_PROFILE)))
+        .addMethod(
+            getGetIamPolicyMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers(
+                    service, METHODID_GET_IAM_POLICY)))
+        .addMethod(
+            getSetIamPolicyMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers(
+                    service, METHODID_SET_IAM_POLICY)))
+        .addMethod(
+            getTestIamPermissionsMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.iam.v1.TestIamPermissionsRequest,
+                    com.google.iam.v1.TestIamPermissionsResponse>(
+                    service, METHODID_TEST_IAM_PERMISSIONS)))
+        .addMethod(
+            getListHotTabletsMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.ListHotTabletsRequest,
+                    com.google.bigtable.admin.v2.ListHotTabletsResponse>(
+                    service, METHODID_LIST_HOT_TABLETS)))
+        .build();
+  }
+
   private abstract static class BigtableInstanceAdminBaseDescriptorSupplier
       implements io.grpc.protobuf.ProtoFileDescriptorSupplier,
           io.grpc.protobuf.ProtoServiceDescriptorSupplier {
diff --git a/grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminGrpc.java b/grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminGrpc.java
index b4d101214c..35aefa6d88 100644
--- a/grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminGrpc.java
+++ b/grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminGrpc.java
@@ -1141,7 +1141,7 @@ public BigtableTableAdminFutureStub newStub(
    * the tables.
    * 
*/ - public abstract static class BigtableTableAdminImplBase implements io.grpc.BindableService { + public interface AsyncService { /** * @@ -1152,7 +1152,7 @@ public abstract static class BigtableTableAdminImplBase implements io.grpc.Binda * specified in the request. *
*/ - public void createTable( + default void createTable( com.google.bigtable.admin.v2.CreateTableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1172,7 +1172,7 @@ public void createTable( * policy. *
*/ - public void createTableFromSnapshot( + default void createTableFromSnapshot( com.google.bigtable.admin.v2.CreateTableFromSnapshotRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1186,7 +1186,7 @@ public void createTableFromSnapshot( * Lists all tables served from a specified instance. * */ - public void listTables( + default void listTables( com.google.bigtable.admin.v2.ListTablesRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1200,7 +1200,7 @@ public void listTables( * Gets metadata information about the specified table. * */ - public void getTable( + default void getTable( com.google.bigtable.admin.v2.GetTableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetTableMethod(), responseObserver); @@ -1213,7 +1213,7 @@ public void getTable( * Updates a specified table. * */ - public void updateTable( + default void updateTable( com.google.bigtable.admin.v2.UpdateTableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1227,7 +1227,7 @@ public void updateTable( * Permanently deletes a specified table and all of its data. * */ - public void deleteTable( + default void deleteTable( com.google.bigtable.admin.v2.DeleteTableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1241,7 +1241,7 @@ public void deleteTable( * Restores a specified table which was accidentally deleted. * */ - public void undeleteTable( + default void undeleteTable( com.google.bigtable.admin.v2.UndeleteTableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1258,7 +1258,7 @@ public void undeleteTable( * where only some modifications have taken effect. * */ - public void modifyColumnFamilies( + default void modifyColumnFamilies( com.google.bigtable.admin.v2.ModifyColumnFamiliesRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1274,7 +1274,7 @@ public void modifyColumnFamilies( * particular prefix. * */ - public void dropRowRange( + default void dropRowRange( com.google.bigtable.admin.v2.DropRowRangeRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1291,7 +1291,7 @@ public void dropRowRange( * for 90 days. * */ - public void generateConsistencyToken( + default void generateConsistencyToken( com.google.bigtable.admin.v2.GenerateConsistencyTokenRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1308,7 +1308,7 @@ public void generateConsistencyToken( * and the check request. * */ - public void checkConsistency( + default void checkConsistency( com.google.bigtable.admin.v2.CheckConsistencyRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1329,7 +1329,7 @@ public void checkConsistency( * policy. * */ - public void snapshotTable( + default void snapshotTable( com.google.bigtable.admin.v2.SnapshotTableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1348,7 +1348,7 @@ public void snapshotTable( * policy. * */ - public void getSnapshot( + default void getSnapshot( com.google.bigtable.admin.v2.GetSnapshotRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1367,7 +1367,7 @@ public void getSnapshot( * policy. * */ - public void listSnapshots( + default void listSnapshots( com.google.bigtable.admin.v2.ListSnapshotsRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1387,7 +1387,7 @@ public void listSnapshots( * policy. * */ - public void deleteSnapshot( + default void deleteSnapshot( com.google.bigtable.admin.v2.DeleteSnapshotRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1408,7 +1408,7 @@ public void deleteSnapshot( * creation and delete the backup. * */ - public void createBackup( + default void createBackup( com.google.bigtable.admin.v2.CreateBackupRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1422,7 +1422,7 @@ public void createBackup( * Gets metadata on a pending or completed Cloud Bigtable Backup. * */ - public void getBackup( + default void getBackup( com.google.bigtable.admin.v2.GetBackupRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetBackupMethod(), responseObserver); @@ -1435,7 +1435,7 @@ public void getBackup( * Updates a pending or completed Cloud Bigtable Backup. * */ - public void updateBackup( + default void updateBackup( com.google.bigtable.admin.v2.UpdateBackupRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1449,7 +1449,7 @@ public void updateBackup( * Deletes a pending or completed Cloud Bigtable backup. * */ - public void deleteBackup( + default void deleteBackup( com.google.bigtable.admin.v2.DeleteBackupRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1464,7 +1464,7 @@ public void deleteBackup( * backups. * */ - public void listBackups( + default void listBackups( com.google.bigtable.admin.v2.ListBackupsRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -1486,7 +1486,7 @@ public void listBackups( * [Table][google.bigtable.admin.v2.Table], if successful. * */ - public void restoreTable( + default void restoreTable( com.google.bigtable.admin.v2.RestoreTableRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1502,7 +1502,7 @@ public void restoreTable( * set. * */ - public void getIamPolicy( + default void getIamPolicy( com.google.iam.v1.GetIamPolicyRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1517,7 +1517,7 @@ public void getIamPolicy( * Replaces any existing policy. * */ - public void setIamPolicy( + default void setIamPolicy( com.google.iam.v1.SetIamPolicyRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -1531,172 +1531,35 @@ public void setIamPolicy( * Returns permissions that the caller has on the specified Table or Backup resource. * */ - public void testIamPermissions( + default void testIamPermissions( com.google.iam.v1.TestIamPermissionsRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( getTestIamPermissionsMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service BigtableTableAdmin. + * + *
+   * Service for creating, configuring, and deleting Cloud Bigtable tables.
+   * Provides access to the table schemas only, not the data stored within
+   * the tables.
+   * 
+ */ + public abstract static class BigtableTableAdminImplBase + implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getCreateTableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.CreateTableRequest, - com.google.bigtable.admin.v2.Table>(this, METHODID_CREATE_TABLE))) - .addMethod( - getCreateTableFromSnapshotMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.CreateTableFromSnapshotRequest, - com.google.longrunning.Operation>(this, METHODID_CREATE_TABLE_FROM_SNAPSHOT))) - .addMethod( - getListTablesMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.ListTablesRequest, - com.google.bigtable.admin.v2.ListTablesResponse>(this, METHODID_LIST_TABLES))) - .addMethod( - getGetTableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.GetTableRequest, - com.google.bigtable.admin.v2.Table>(this, METHODID_GET_TABLE))) - .addMethod( - getUpdateTableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.UpdateTableRequest, - com.google.longrunning.Operation>(this, METHODID_UPDATE_TABLE))) - .addMethod( - getDeleteTableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.DeleteTableRequest, com.google.protobuf.Empty>( - this, METHODID_DELETE_TABLE))) - .addMethod( - getUndeleteTableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.UndeleteTableRequest, - com.google.longrunning.Operation>(this, METHODID_UNDELETE_TABLE))) - .addMethod( - getModifyColumnFamiliesMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.ModifyColumnFamiliesRequest, - com.google.bigtable.admin.v2.Table>(this, METHODID_MODIFY_COLUMN_FAMILIES))) - .addMethod( - getDropRowRangeMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.DropRowRangeRequest, com.google.protobuf.Empty>( - this, METHODID_DROP_ROW_RANGE))) - .addMethod( - getGenerateConsistencyTokenMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.GenerateConsistencyTokenRequest, - com.google.bigtable.admin.v2.GenerateConsistencyTokenResponse>( - this, METHODID_GENERATE_CONSISTENCY_TOKEN))) - .addMethod( - getCheckConsistencyMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.CheckConsistencyRequest, - com.google.bigtable.admin.v2.CheckConsistencyResponse>( - this, METHODID_CHECK_CONSISTENCY))) - .addMethod( - getSnapshotTableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.SnapshotTableRequest, - com.google.longrunning.Operation>(this, METHODID_SNAPSHOT_TABLE))) - .addMethod( - getGetSnapshotMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.GetSnapshotRequest, - com.google.bigtable.admin.v2.Snapshot>(this, METHODID_GET_SNAPSHOT))) - .addMethod( - getListSnapshotsMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.ListSnapshotsRequest, - com.google.bigtable.admin.v2.ListSnapshotsResponse>( - this, METHODID_LIST_SNAPSHOTS))) - .addMethod( - getDeleteSnapshotMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.DeleteSnapshotRequest, - com.google.protobuf.Empty>(this, METHODID_DELETE_SNAPSHOT))) - .addMethod( - getCreateBackupMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.CreateBackupRequest, - com.google.longrunning.Operation>(this, METHODID_CREATE_BACKUP))) - .addMethod( - getGetBackupMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.GetBackupRequest, - com.google.bigtable.admin.v2.Backup>(this, METHODID_GET_BACKUP))) - .addMethod( - getUpdateBackupMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.UpdateBackupRequest, - com.google.bigtable.admin.v2.Backup>(this, METHODID_UPDATE_BACKUP))) - .addMethod( - getDeleteBackupMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.DeleteBackupRequest, com.google.protobuf.Empty>( - this, METHODID_DELETE_BACKUP))) - .addMethod( - getListBackupsMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.ListBackupsRequest, - com.google.bigtable.admin.v2.ListBackupsResponse>( - this, METHODID_LIST_BACKUPS))) - .addMethod( - getRestoreTableMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.admin.v2.RestoreTableRequest, - com.google.longrunning.Operation>(this, METHODID_RESTORE_TABLE))) - .addMethod( - getGetIamPolicyMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.iam.v1.GetIamPolicyRequest, com.google.iam.v1.Policy>( - this, METHODID_GET_IAM_POLICY))) - .addMethod( - getSetIamPolicyMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.iam.v1.SetIamPolicyRequest, com.google.iam.v1.Policy>( - this, METHODID_SET_IAM_POLICY))) - .addMethod( - getTestIamPermissionsMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.iam.v1.TestIamPermissionsRequest, - com.google.iam.v1.TestIamPermissionsResponse>( - this, METHODID_TEST_IAM_PERMISSIONS))) - .build(); + return BigtableTableAdminGrpc.bindService(this); } } /** - * + * A stub to allow clients to do asynchronous rpc calls to service BigtableTableAdmin. * *
    * Service for creating, configuring, and deleting Cloud Bigtable tables.
@@ -2159,7 +2022,7 @@ public void testIamPermissions(
   }
 
   /**
-   *
+   * A stub to allow clients to do synchronous rpc calls to service BigtableTableAdmin.
    *
    * 
    * Service for creating, configuring, and deleting Cloud Bigtable tables.
@@ -2549,7 +2412,7 @@ public com.google.iam.v1.TestIamPermissionsResponse testIamPermissions(
   }
 
   /**
-   *
+   * A stub to allow clients to do ListenableFuture-style rpc calls to service BigtableTableAdmin.
    *
    * 
    * Service for creating, configuring, and deleting Cloud Bigtable tables.
@@ -2977,10 +2840,10 @@ private static final class MethodHandlers
           io.grpc.stub.ServerCalls.ServerStreamingMethod,
           io.grpc.stub.ServerCalls.ClientStreamingMethod,
           io.grpc.stub.ServerCalls.BidiStreamingMethod {
-    private final BigtableTableAdminImplBase serviceImpl;
+    private final AsyncService serviceImpl;
     private final int methodId;
 
-    MethodHandlers(BigtableTableAdminImplBase serviceImpl, int methodId) {
+    MethodHandlers(AsyncService serviceImpl, int methodId) {
       this.serviceImpl = serviceImpl;
       this.methodId = methodId;
     }
@@ -3133,6 +2996,160 @@ public io.grpc.stub.StreamObserver invoke(
     }
   }
 
+  public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) {
+    return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+        .addMethod(
+            getCreateTableMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.CreateTableRequest,
+                    com.google.bigtable.admin.v2.Table>(service, METHODID_CREATE_TABLE)))
+        .addMethod(
+            getCreateTableFromSnapshotMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.CreateTableFromSnapshotRequest,
+                    com.google.longrunning.Operation>(
+                    service, METHODID_CREATE_TABLE_FROM_SNAPSHOT)))
+        .addMethod(
+            getListTablesMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.ListTablesRequest,
+                    com.google.bigtable.admin.v2.ListTablesResponse>(
+                    service, METHODID_LIST_TABLES)))
+        .addMethod(
+            getGetTableMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.GetTableRequest,
+                    com.google.bigtable.admin.v2.Table>(service, METHODID_GET_TABLE)))
+        .addMethod(
+            getUpdateTableMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.UpdateTableRequest,
+                    com.google.longrunning.Operation>(service, METHODID_UPDATE_TABLE)))
+        .addMethod(
+            getDeleteTableMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.DeleteTableRequest, com.google.protobuf.Empty>(
+                    service, METHODID_DELETE_TABLE)))
+        .addMethod(
+            getUndeleteTableMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.UndeleteTableRequest,
+                    com.google.longrunning.Operation>(service, METHODID_UNDELETE_TABLE)))
+        .addMethod(
+            getModifyColumnFamiliesMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.ModifyColumnFamiliesRequest,
+                    com.google.bigtable.admin.v2.Table>(service, METHODID_MODIFY_COLUMN_FAMILIES)))
+        .addMethod(
+            getDropRowRangeMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.DropRowRangeRequest, com.google.protobuf.Empty>(
+                    service, METHODID_DROP_ROW_RANGE)))
+        .addMethod(
+            getGenerateConsistencyTokenMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.GenerateConsistencyTokenRequest,
+                    com.google.bigtable.admin.v2.GenerateConsistencyTokenResponse>(
+                    service, METHODID_GENERATE_CONSISTENCY_TOKEN)))
+        .addMethod(
+            getCheckConsistencyMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.CheckConsistencyRequest,
+                    com.google.bigtable.admin.v2.CheckConsistencyResponse>(
+                    service, METHODID_CHECK_CONSISTENCY)))
+        .addMethod(
+            getSnapshotTableMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.SnapshotTableRequest,
+                    com.google.longrunning.Operation>(service, METHODID_SNAPSHOT_TABLE)))
+        .addMethod(
+            getGetSnapshotMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.GetSnapshotRequest,
+                    com.google.bigtable.admin.v2.Snapshot>(service, METHODID_GET_SNAPSHOT)))
+        .addMethod(
+            getListSnapshotsMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.ListSnapshotsRequest,
+                    com.google.bigtable.admin.v2.ListSnapshotsResponse>(
+                    service, METHODID_LIST_SNAPSHOTS)))
+        .addMethod(
+            getDeleteSnapshotMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.DeleteSnapshotRequest, com.google.protobuf.Empty>(
+                    service, METHODID_DELETE_SNAPSHOT)))
+        .addMethod(
+            getCreateBackupMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.CreateBackupRequest,
+                    com.google.longrunning.Operation>(service, METHODID_CREATE_BACKUP)))
+        .addMethod(
+            getGetBackupMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.GetBackupRequest,
+                    com.google.bigtable.admin.v2.Backup>(service, METHODID_GET_BACKUP)))
+        .addMethod(
+            getUpdateBackupMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.UpdateBackupRequest,
+                    com.google.bigtable.admin.v2.Backup>(service, METHODID_UPDATE_BACKUP)))
+        .addMethod(
+            getDeleteBackupMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.DeleteBackupRequest, com.google.protobuf.Empty>(
+                    service, METHODID_DELETE_BACKUP)))
+        .addMethod(
+            getListBackupsMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.ListBackupsRequest,
+                    com.google.bigtable.admin.v2.ListBackupsResponse>(
+                    service, METHODID_LIST_BACKUPS)))
+        .addMethod(
+            getRestoreTableMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.admin.v2.RestoreTableRequest,
+                    com.google.longrunning.Operation>(service, METHODID_RESTORE_TABLE)))
+        .addMethod(
+            getGetIamPolicyMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers(
+                    service, METHODID_GET_IAM_POLICY)))
+        .addMethod(
+            getSetIamPolicyMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers(
+                    service, METHODID_SET_IAM_POLICY)))
+        .addMethod(
+            getTestIamPermissionsMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.iam.v1.TestIamPermissionsRequest,
+                    com.google.iam.v1.TestIamPermissionsResponse>(
+                    service, METHODID_TEST_IAM_PERMISSIONS)))
+        .build();
+  }
+
   private abstract static class BigtableTableAdminBaseDescriptorSupplier
       implements io.grpc.protobuf.ProtoFileDescriptorSupplier,
           io.grpc.protobuf.ProtoServiceDescriptorSupplier {
diff --git a/grpc-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableGrpc.java b/grpc-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableGrpc.java
index 960bd47fe0..0b661a4358 100644
--- a/grpc-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableGrpc.java
+++ b/grpc-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableGrpc.java
@@ -479,7 +479,7 @@ public BigtableFutureStub newStub(
    * Service for reading from and writing to existing Bigtable tables.
    * 
*/ - public abstract static class BigtableImplBase implements io.grpc.BindableService { + public interface AsyncService { /** * @@ -492,7 +492,7 @@ public abstract static class BigtableImplBase implements io.grpc.BindableService * ReadRowsResponse documentation for details. *
*/ - public void readRows( + default void readRows( com.google.bigtable.v2.ReadRowsRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getReadRowsMethod(), responseObserver); @@ -508,7 +508,7 @@ public void readRows( * mapreduces. *
*/ - public void sampleRowKeys( + default void sampleRowKeys( com.google.bigtable.v2.SampleRowKeysRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -524,7 +524,7 @@ public void sampleRowKeys( * unchanged unless explicitly changed by `mutation`. * */ - public void mutateRow( + default void mutateRow( com.google.bigtable.v2.MutateRowRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMutateRowMethod(), responseObserver); @@ -539,7 +539,7 @@ public void mutateRow( * atomically. * */ - public void mutateRows( + default void mutateRows( com.google.bigtable.v2.MutateRowsRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMutateRowsMethod(), responseObserver); @@ -552,7 +552,7 @@ public void mutateRows( * Mutates a row atomically based on the output of a predicate Reader filter. * */ - public void checkAndMutateRow( + default void checkAndMutateRow( com.google.bigtable.v2.CheckAndMutateRowRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -568,7 +568,7 @@ public void checkAndMutateRow( * This call is not required but may be useful for connection keep-alive. * */ - public void pingAndWarm( + default void pingAndWarm( com.google.bigtable.v2.PingAndWarmRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( @@ -586,7 +586,7 @@ public void pingAndWarm( * time. The method returns the new contents of all modified cells. * */ - public void readModifyWriteRow( + default void readModifyWriteRow( com.google.bigtable.v2.ReadModifyWriteRowRequest request, io.grpc.stub.StreamObserver responseObserver) { @@ -604,7 +604,7 @@ public void readModifyWriteRow( * Partitions can be read with `ReadChangeStream`. * */ - public void generateInitialChangeStreamPartitions( + default void generateInitialChangeStreamPartitions( com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest request, io.grpc.stub.StreamObserver< com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse> @@ -623,82 +623,32 @@ public void generateInitialChangeStreamPartitions( * garbage collection. * */ - public void readChangeStream( + default void readChangeStream( com.google.bigtable.v2.ReadChangeStreamRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( getReadChangeStreamMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service Bigtable. + * + *
+   * Service for reading from and writing to existing Bigtable tables.
+   * 
+ */ + public abstract static class BigtableImplBase implements io.grpc.BindableService, AsyncService { @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getReadRowsMethod(), - io.grpc.stub.ServerCalls.asyncServerStreamingCall( - new MethodHandlers< - com.google.bigtable.v2.ReadRowsRequest, - com.google.bigtable.v2.ReadRowsResponse>(this, METHODID_READ_ROWS))) - .addMethod( - getSampleRowKeysMethod(), - io.grpc.stub.ServerCalls.asyncServerStreamingCall( - new MethodHandlers< - com.google.bigtable.v2.SampleRowKeysRequest, - com.google.bigtable.v2.SampleRowKeysResponse>( - this, METHODID_SAMPLE_ROW_KEYS))) - .addMethod( - getMutateRowMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.v2.MutateRowRequest, - com.google.bigtable.v2.MutateRowResponse>(this, METHODID_MUTATE_ROW))) - .addMethod( - getMutateRowsMethod(), - io.grpc.stub.ServerCalls.asyncServerStreamingCall( - new MethodHandlers< - com.google.bigtable.v2.MutateRowsRequest, - com.google.bigtable.v2.MutateRowsResponse>(this, METHODID_MUTATE_ROWS))) - .addMethod( - getCheckAndMutateRowMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.v2.CheckAndMutateRowRequest, - com.google.bigtable.v2.CheckAndMutateRowResponse>( - this, METHODID_CHECK_AND_MUTATE_ROW))) - .addMethod( - getPingAndWarmMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.v2.PingAndWarmRequest, - com.google.bigtable.v2.PingAndWarmResponse>(this, METHODID_PING_AND_WARM))) - .addMethod( - getReadModifyWriteRowMethod(), - io.grpc.stub.ServerCalls.asyncUnaryCall( - new MethodHandlers< - com.google.bigtable.v2.ReadModifyWriteRowRequest, - com.google.bigtable.v2.ReadModifyWriteRowResponse>( - this, METHODID_READ_MODIFY_WRITE_ROW))) - .addMethod( - getGenerateInitialChangeStreamPartitionsMethod(), - io.grpc.stub.ServerCalls.asyncServerStreamingCall( - new MethodHandlers< - com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest, - com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse>( - this, METHODID_GENERATE_INITIAL_CHANGE_STREAM_PARTITIONS))) - .addMethod( - getReadChangeStreamMethod(), - io.grpc.stub.ServerCalls.asyncServerStreamingCall( - new MethodHandlers< - com.google.bigtable.v2.ReadChangeStreamRequest, - com.google.bigtable.v2.ReadChangeStreamResponse>( - this, METHODID_READ_CHANGE_STREAM))) - .build(); + return BigtableGrpc.bindService(this); } } /** - * + * A stub to allow clients to do asynchronous rpc calls to service Bigtable. * *
    * Service for reading from and writing to existing Bigtable tables.
@@ -881,7 +831,7 @@ public void readChangeStream(
   }
 
   /**
-   *
+   * A stub to allow clients to do synchronous rpc calls to service Bigtable.
    *
    * 
    * Service for reading from and writing to existing Bigtable tables.
@@ -1042,7 +992,7 @@ public java.util.Iterator readC
   }
 
   /**
-   *
+   * A stub to allow clients to do ListenableFuture-style rpc calls to service Bigtable.
    *
    * 
    * Service for reading from and writing to existing Bigtable tables.
@@ -1137,10 +1087,10 @@ private static final class MethodHandlers
           io.grpc.stub.ServerCalls.ServerStreamingMethod,
           io.grpc.stub.ServerCalls.ClientStreamingMethod,
           io.grpc.stub.ServerCalls.BidiStreamingMethod {
-    private final BigtableImplBase serviceImpl;
+    private final AsyncService serviceImpl;
     private final int methodId;
 
-    MethodHandlers(BigtableImplBase serviceImpl, int methodId) {
+    MethodHandlers(AsyncService serviceImpl, int methodId) {
       this.serviceImpl = serviceImpl;
       this.methodId = methodId;
     }
@@ -1220,6 +1170,70 @@ public io.grpc.stub.StreamObserver invoke(
     }
   }
 
+  public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) {
+    return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+        .addMethod(
+            getReadRowsMethod(),
+            io.grpc.stub.ServerCalls.asyncServerStreamingCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.ReadRowsRequest,
+                    com.google.bigtable.v2.ReadRowsResponse>(service, METHODID_READ_ROWS)))
+        .addMethod(
+            getSampleRowKeysMethod(),
+            io.grpc.stub.ServerCalls.asyncServerStreamingCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.SampleRowKeysRequest,
+                    com.google.bigtable.v2.SampleRowKeysResponse>(
+                    service, METHODID_SAMPLE_ROW_KEYS)))
+        .addMethod(
+            getMutateRowMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.MutateRowRequest,
+                    com.google.bigtable.v2.MutateRowResponse>(service, METHODID_MUTATE_ROW)))
+        .addMethod(
+            getMutateRowsMethod(),
+            io.grpc.stub.ServerCalls.asyncServerStreamingCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.MutateRowsRequest,
+                    com.google.bigtable.v2.MutateRowsResponse>(service, METHODID_MUTATE_ROWS)))
+        .addMethod(
+            getCheckAndMutateRowMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.CheckAndMutateRowRequest,
+                    com.google.bigtable.v2.CheckAndMutateRowResponse>(
+                    service, METHODID_CHECK_AND_MUTATE_ROW)))
+        .addMethod(
+            getPingAndWarmMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.PingAndWarmRequest,
+                    com.google.bigtable.v2.PingAndWarmResponse>(service, METHODID_PING_AND_WARM)))
+        .addMethod(
+            getReadModifyWriteRowMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.ReadModifyWriteRowRequest,
+                    com.google.bigtable.v2.ReadModifyWriteRowResponse>(
+                    service, METHODID_READ_MODIFY_WRITE_ROW)))
+        .addMethod(
+            getGenerateInitialChangeStreamPartitionsMethod(),
+            io.grpc.stub.ServerCalls.asyncServerStreamingCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest,
+                    com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse>(
+                    service, METHODID_GENERATE_INITIAL_CHANGE_STREAM_PARTITIONS)))
+        .addMethod(
+            getReadChangeStreamMethod(),
+            io.grpc.stub.ServerCalls.asyncServerStreamingCall(
+                new MethodHandlers<
+                    com.google.bigtable.v2.ReadChangeStreamRequest,
+                    com.google.bigtable.v2.ReadChangeStreamResponse>(
+                    service, METHODID_READ_CHANGE_STREAM)))
+        .build();
+  }
+
   private abstract static class BigtableBaseDescriptorSupplier
       implements io.grpc.protobuf.ProtoFileDescriptorSupplier,
           io.grpc.protobuf.ProtoServiceDescriptorSupplier {

From b97badbaa30588c578bfacc8183e77baaa656bd9 Mon Sep 17 00:00:00 2001
From: Jack Dingilian 
Date: Wed, 29 Mar 2023 17:16:13 -0400
Subject: [PATCH 13/14] fix: Make ChangeStreamRecord interface serializable
 (#1685)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Make ChangeStreamRecord interface Serializable so that beam can create Coders for it by default.  ChangeStreamMutation, CloseStream, and Heartbeat all already implement Serializable.

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
- [ ] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigtable/issues/new/choose) before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
- [ ] Ensure the tests and linter pass
- [ ] Code coverage does not decrease (if any source code was changed)
- [ ] Appropriate docs were updated (if necessary)

Fixes # ☕️

If you write sample code, please follow the [samples format](
https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md).
---
 .../cloud/bigtable/data/v2/models/ChangeStreamRecord.java      | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecord.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecord.java
index edf0c1a26e..2f0233e180 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecord.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecord.java
@@ -16,10 +16,11 @@
 package com.google.cloud.bigtable.data.v2.models;
 
 import com.google.api.core.InternalApi;
+import java.io.Serializable;
 
 /**
  * Default representation of a change stream record, which can be a Heartbeat, a CloseStream, or a
  * logical mutation.
  */
 @InternalApi("Intended for use by the BigtableIO in apache/beam only.")
-public interface ChangeStreamRecord {}
+public interface ChangeStreamRecord extends Serializable {}

From 31ca96608c9ab6e976456e3e9812df5170b5f8bb Mon Sep 17 00:00:00 2001
From: "release-please[bot]"
 <55107282+release-please[bot]@users.noreply.github.com>
Date: Thu, 30 Mar 2023 16:24:56 -0400
Subject: [PATCH 14/14] chore(main): release 2.20.2 (#1677)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
---
 CHANGELOG.md                                   |  9 +++++++++
 google-cloud-bigtable-bom/pom.xml              | 18 +++++++++---------
 google-cloud-bigtable-deps-bom/pom.xml         |  2 +-
 google-cloud-bigtable-emulator-core/pom.xml    |  4 ++--
 google-cloud-bigtable-emulator/pom.xml         | 10 +++++-----
 google-cloud-bigtable-stats/pom.xml            |  6 +++---
 google-cloud-bigtable/pom.xml                  | 10 +++++-----
 .../com/google/cloud/bigtable/Version.java     |  2 +-
 grpc-google-cloud-bigtable-admin-v2/pom.xml    |  8 ++++----
 grpc-google-cloud-bigtable-v2/pom.xml          |  8 ++++----
 pom.xml                                        | 12 ++++++------
 proto-google-cloud-bigtable-admin-v2/pom.xml   |  8 ++++----
 proto-google-cloud-bigtable-v2/pom.xml         |  8 ++++----
 samples/snapshot/pom.xml                       |  2 +-
 test-proxy/pom.xml                             |  4 ++--
 versions.txt                                   | 14 +++++++-------
 16 files changed, 67 insertions(+), 58 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 656685e10c..359c607e34 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
 # Changelog
 
+## [2.20.2](https://github.com/googleapis/java-bigtable/compare/v2.20.1...v2.20.2) (2023-03-29)
+
+
+### Bug Fixes
+
+* Higher application blocking latency precision ([#1676](https://github.com/googleapis/java-bigtable/issues/1676)) ([45ce93b](https://github.com/googleapis/java-bigtable/commit/45ce93bb52112391b9c3a90f10f51279839bea1b))
+* Make ChangeStreamRecord interface serializable ([#1685](https://github.com/googleapis/java-bigtable/issues/1685)) ([b97badb](https://github.com/googleapis/java-bigtable/commit/b97badbaa30588c578bfacc8183e77baaa656bd9))
+* Mark readRow requests as unary operations ([#1679](https://github.com/googleapis/java-bigtable/issues/1679)) ([f88bb67](https://github.com/googleapis/java-bigtable/commit/f88bb67a7a63450b8cd29f01660cf677ddfe436c))
+
 ## [2.20.1](https://github.com/googleapis/java-bigtable/compare/v2.20.0...v2.20.1) (2023-03-21)
 
 
diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml
index 8580e1ade1..bf424442c7 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.20.2-SNAPSHOT
+    2.20.2
     pom
     
         com.google.cloud
@@ -63,42 +63,42 @@
         
           com.google.cloud
           google-cloud-bigtable
-          2.20.2-SNAPSHOT
+          2.20.2
         
         
           com.google.cloud
           google-cloud-bigtable-emulator
-          0.157.2-SNAPSHOT
+          0.157.2
         
         
           com.google.cloud
           google-cloud-bigtable-emulator-core
-          0.157.2-SNAPSHOT
+          0.157.2
         
         
           com.google.api.grpc
           grpc-google-cloud-bigtable-admin-v2
-          2.20.2-SNAPSHOT
+          2.20.2
         
         
           com.google.api.grpc
           grpc-google-cloud-bigtable-v2
-          2.20.2-SNAPSHOT
+          2.20.2
         
         
           com.google.api.grpc
           proto-google-cloud-bigtable-admin-v2
-          2.20.2-SNAPSHOT
+          2.20.2
         
         
           com.google.api.grpc
           proto-google-cloud-bigtable-v2
-          2.20.2-SNAPSHOT
+          2.20.2
         
           
               com.google.cloud
               google-cloud-bigtable-stats
-              2.20.2-SNAPSHOT
+              2.20.2
           
       
     
diff --git a/google-cloud-bigtable-deps-bom/pom.xml b/google-cloud-bigtable-deps-bom/pom.xml
index 208b88aff6..9e6c288e16 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.20.2-SNAPSHOT
+  2.20.2
 
   pom
   
diff --git a/google-cloud-bigtable-emulator-core/pom.xml b/google-cloud-bigtable-emulator-core/pom.xml
index fc37494734..9fe1b12f3d 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.20.2-SNAPSHOT
+    2.20.2
   
 
   google-cloud-bigtable-emulator-core
-  0.157.2-SNAPSHOT
+  0.157.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 b50668963a..f000f00ed0 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.157.2-SNAPSHOT
+  0.157.2
   Google Cloud Java - Bigtable Emulator
   https://github.com/googleapis/java-bigtable
   
@@ -14,7 +14,7 @@
   
     com.google.cloud
     google-cloud-bigtable-parent
-    2.20.2-SNAPSHOT
+    2.20.2
   
   
     scm:git:git@github.com:googleapis/java-bigtable.git
@@ -81,14 +81,14 @@
       
         com.google.cloud
         google-cloud-bigtable-deps-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
       
         com.google.cloud
         google-cloud-bigtable-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
@@ -99,7 +99,7 @@
     
       com.google.cloud
       google-cloud-bigtable-emulator-core
-      0.157.2-SNAPSHOT
+      0.157.2
     
 
     
diff --git a/google-cloud-bigtable-stats/pom.xml b/google-cloud-bigtable-stats/pom.xml
index fa7256a6ad..5d3c59d4b8 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.20.2-SNAPSHOT
+        2.20.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.20.2-SNAPSHOT
+    2.20.2
     Experimental project to shade OpenCensus dependencies.
 
     
@@ -21,7 +21,7 @@
             
                 com.google.cloud
                 google-cloud-bigtable-deps-bom
-                2.20.2-SNAPSHOT
+                2.20.2
                 pom
                 import
             
diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml
index ef27ac4ba9..a154a351dd 100644
--- a/google-cloud-bigtable/pom.xml
+++ b/google-cloud-bigtable/pom.xml
@@ -2,7 +2,7 @@
 
   4.0.0
   google-cloud-bigtable
-  2.20.2-SNAPSHOT
+  2.20.2
   jar
   Google Cloud Bigtable
   https://github.com/googleapis/java-bigtable
@@ -12,11 +12,11 @@
   
     com.google.cloud
     google-cloud-bigtable-parent
-    2.20.2-SNAPSHOT
+    2.20.2
   
   
     
-    2.20.2-SNAPSHOT
+    2.20.2
 
     google-cloud-bigtable
 
@@ -49,14 +49,14 @@
       
         com.google.cloud
         google-cloud-bigtable-deps-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
       
         com.google.cloud
         google-cloud-bigtable-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
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 6ffbfc5516..6826746374 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.20.2-SNAPSHOT";
+  public static String VERSION = "2.20.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 091bdb6bad..a88bef6f24 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.20.2-SNAPSHOT
+  2.20.2
   grpc-google-cloud-bigtable-admin-v2
   GRPC library for grpc-google-cloud-bigtable-admin-v2
   
     com.google.cloud
     google-cloud-bigtable-parent
-    2.20.2-SNAPSHOT
+    2.20.2
   
 
   
@@ -18,14 +18,14 @@
       
         com.google.cloud
         google-cloud-bigtable-deps-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
       
         com.google.cloud
         google-cloud-bigtable-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml
index 38747ddc75..f5683b753e 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.20.2-SNAPSHOT
+  2.20.2
   grpc-google-cloud-bigtable-v2
   GRPC library for grpc-google-cloud-bigtable-v2
   
     com.google.cloud
     google-cloud-bigtable-parent
-    2.20.2-SNAPSHOT
+    2.20.2
   
 
   
@@ -18,14 +18,14 @@
       
         com.google.cloud
         google-cloud-bigtable-deps-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
       
         com.google.cloud
         google-cloud-bigtable-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
diff --git a/pom.xml b/pom.xml
index 8715127fd1..cf57584754 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
 
     google-cloud-bigtable-parent
     pom
-    2.20.2-SNAPSHOT
+    2.20.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.20.2-SNAPSHOT
+                2.20.2
             
             
                 com.google.api.grpc
                 proto-google-cloud-bigtable-admin-v2
-                2.20.2-SNAPSHOT
+                2.20.2
             
             
                 com.google.api.grpc
                 grpc-google-cloud-bigtable-v2
-                2.20.2-SNAPSHOT
+                2.20.2
             
             
                 com.google.api.grpc
                 grpc-google-cloud-bigtable-admin-v2
-                2.20.2-SNAPSHOT
+                2.20.2
             
             
                 com.google.cloud
                 google-cloud-bigtable
-                2.20.2-SNAPSHOT
+                2.20.2
             
             
             
diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml
index f063fbefbc..6a8e16763c 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.20.2-SNAPSHOT
+  2.20.2
   proto-google-cloud-bigtable-admin-v2
   PROTO library for proto-google-cloud-bigtable-admin-v2
   
     com.google.cloud
     google-cloud-bigtable-parent
-    2.20.2-SNAPSHOT
+    2.20.2
   
 
   
@@ -18,14 +18,14 @@
       
         com.google.cloud
         google-cloud-bigtable-deps-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
       
         com.google.cloud
         google-cloud-bigtable-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml
index 71a573ef2c..d7b7215f6e 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.20.2-SNAPSHOT
+  2.20.2
   proto-google-cloud-bigtable-v2
   PROTO library for proto-google-cloud-bigtable-v2
   
     com.google.cloud
     google-cloud-bigtable-parent
-    2.20.2-SNAPSHOT
+    2.20.2
   
 
   
@@ -18,14 +18,14 @@
       
         com.google.cloud
         google-cloud-bigtable-deps-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
       
         com.google.cloud
         google-cloud-bigtable-bom
-        2.20.2-SNAPSHOT
+        2.20.2
         pom
         import
       
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 3f0f85acb7..af10b64b46 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
     
       com.google.cloud
       google-cloud-bigtable
-      2.20.2-SNAPSHOT
+      2.20.2
     
   
 
diff --git a/test-proxy/pom.xml b/test-proxy/pom.xml
index 72d67bd40e..9ce90885dd 100644
--- a/test-proxy/pom.xml
+++ b/test-proxy/pom.xml
@@ -12,11 +12,11 @@
   
     google-cloud-bigtable-parent
     com.google.cloud
-    2.20.2-SNAPSHOT
+    2.20.2
   
 
   
-    2.20.2-SNAPSHOT
+    2.20.2
   
 
   
diff --git a/versions.txt b/versions.txt
index 9a8b5e76f6..8b9f751a83 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,10 +1,10 @@
 # Format:
 # module:released-version:current-version
 
-google-cloud-bigtable:2.20.1:2.20.2-SNAPSHOT
-grpc-google-cloud-bigtable-admin-v2:2.20.1:2.20.2-SNAPSHOT
-grpc-google-cloud-bigtable-v2:2.20.1:2.20.2-SNAPSHOT
-proto-google-cloud-bigtable-admin-v2:2.20.1:2.20.2-SNAPSHOT
-proto-google-cloud-bigtable-v2:2.20.1:2.20.2-SNAPSHOT
-google-cloud-bigtable-emulator:0.157.1:0.157.2-SNAPSHOT
-google-cloud-bigtable-emulator-core:2.20.1:2.20.2-SNAPSHOT
+google-cloud-bigtable:2.20.2:2.20.2
+grpc-google-cloud-bigtable-admin-v2:2.20.2:2.20.2
+grpc-google-cloud-bigtable-v2:2.20.2:2.20.2
+proto-google-cloud-bigtable-admin-v2:2.20.2:2.20.2
+proto-google-cloud-bigtable-v2:2.20.2:2.20.2
+google-cloud-bigtable-emulator:0.157.2:0.157.2
+google-cloud-bigtable-emulator-core:2.20.2:2.20.2