From 4cbb0f2138c89f793bc9516e8e4a9b00a6c96150 Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Thu, 23 Apr 2026 14:25:11 -0400 Subject: [PATCH 1/3] feat: update legacy escape hatch to return V2 admin clients This updates the internal initialization inside the legacy BigtableTableAdminClient and BigtableInstanceAdminClient to instantiate the new V2 clients. b/502616786 --- .../bigtable/admin/v2/BigtableInstanceAdminClient.java | 6 +++--- .../cloud/bigtable/admin/v2/BigtableTableAdminClient.java | 6 +++--- .../bigtable/admin/v2/BigtableTableAdminClientV2.java | 8 ++++++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java index 0e5a9155a0..e9f057e73e 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java @@ -125,7 +125,7 @@ public final class BigtableInstanceAdminClient implements AutoCloseable { private final String projectId; private final BigtableInstanceAdminStub stub; - private final BaseBigtableInstanceAdminClient baseClient; + private final BigtableInstanceAdminClientV2 baseClient; /** Constructs an instance of BigtableInstanceAdminClient with the given project ID. */ public static BigtableInstanceAdminClient create(@Nonnull String projectId) throws IOException { @@ -148,7 +148,7 @@ private BigtableInstanceAdminClient( @Nonnull String projectId, @Nonnull BigtableInstanceAdminStub stub) { this.projectId = projectId; this.stub = stub; - this.baseClient = BaseBigtableInstanceAdminClient.create(stub); + this.baseClient = BigtableInstanceAdminClientV2.create(stub); } /** Gets the project ID this client is associated with. */ @@ -160,7 +160,7 @@ public String getProjectId() { * Returns the modern autogenerated client. This provides access to the newest features and * proto-based methods. */ - public BaseBigtableInstanceAdminClient getBaseClient() { + public BigtableInstanceAdminClientV2 getBaseClient() { return baseClient; } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java index 3cd7fef840..2ef121ec3f 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java @@ -169,7 +169,7 @@ public final class BigtableTableAdminClient implements AutoCloseable { private final EnhancedBigtableTableAdminStub stub; private final String projectId; private final String instanceId; - private final BaseBigtableTableAdminClient baseClient; + private final BigtableTableAdminClientV2 baseClient; /** Constructs an instance of BigtableTableAdminClient with the given project and instance IDs. */ public static BigtableTableAdminClient create( @@ -209,7 +209,7 @@ private BigtableTableAdminClient( this.projectId = projectId; this.instanceId = instanceId; this.stub = stub; - this.baseClient = BaseBigtableTableAdminClient.create(stub); + this.baseClient = BigtableTableAdminClientV2.create(stub); } /** Gets the project ID of the instance whose tables this client manages. */ @@ -226,7 +226,7 @@ public String getInstanceId() { * Returns the modern autogenerated client. This provides access to the newest features and * proto-based methods. */ - public BaseBigtableTableAdminClient getBaseClient() { + public BigtableTableAdminClientV2 getBaseClient() { return baseClient; } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java index d654ab0064..a33c02300a 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java @@ -38,6 +38,7 @@ import com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable; import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStub; import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStubSettings; +import com.google.cloud.bigtable.admin.v2.stub.EnhancedBigtableTableAdminStub; import com.google.common.base.Strings; import com.google.longrunning.Operation; import com.google.protobuf.Empty; @@ -201,6 +202,13 @@ public static final BigtableTableAdminClientV2 create(BaseBigtableTableAdminSett /** Constructs an instance of BigtableTableAdminClientV2 with the given stub. */ public static final BigtableTableAdminClientV2 create(BigtableTableAdminStub stub) { + if (stub instanceof EnhancedBigtableTableAdminStub) { + EnhancedBigtableTableAdminStub enhancedStub = (EnhancedBigtableTableAdminStub) stub; + return new BigtableTableAdminClientV2( + stub, + (AwaitConsistencyCallable) enhancedStub.awaitConsistencyCallable(), + enhancedStub.awaitOptimizeRestoredTableCallable()); + } return new BigtableTableAdminClientV2(stub); } From db5899b6121e7cf80bfaaa2d3d7cc104a8388d62 Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Thu, 23 Apr 2026 16:07:59 -0400 Subject: [PATCH 2/3] remove legacy dependency --- .../admin/v2/BigtableTableAdminClient.java | 6 ++++- .../admin/v2/BigtableTableAdminClientV2.java | 24 ++++--------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java index 2ef121ec3f..95e27be6a8 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java @@ -209,7 +209,11 @@ private BigtableTableAdminClient( this.projectId = projectId; this.instanceId = instanceId; this.stub = stub; - this.baseClient = BigtableTableAdminClientV2.create(stub); + this.baseClient = + new BigtableTableAdminClientV2( + stub, + (com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable) stub.awaitConsistencyCallable(), + stub.awaitOptimizeRestoredTableCallable()); } /** Gets the project ID of the instance whose tables this client manages. */ diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java index a33c02300a..f3693a4cb0 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java @@ -35,10 +35,8 @@ import com.google.cloud.bigtable.admin.v2.models.ConsistencyRequest; import com.google.cloud.bigtable.admin.v2.models.OptimizeRestoredTableOperationToken; import com.google.cloud.bigtable.admin.v2.models.RestoredTableResult; -import com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable; import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStub; import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStubSettings; -import com.google.cloud.bigtable.admin.v2.stub.EnhancedBigtableTableAdminStub; import com.google.common.base.Strings; import com.google.longrunning.Operation; import com.google.protobuf.Empty; @@ -58,7 +56,7 @@ * generator cannot handle natively (e.g., chained Long Running Operations, Consistency Polling). */ public class BigtableTableAdminClientV2 extends BaseBigtableTableAdminClient { - private final AwaitConsistencyCallable awaitConsistencyCallable; + private final com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable awaitConsistencyCallable; private final OperationCallable optimizeRestoredTableOperationBaseCallable; @@ -80,7 +78,7 @@ protected BigtableTableAdminClientV2(BigtableTableAdminStub stub) { @com.google.common.annotations.VisibleForTesting BigtableTableAdminClientV2( BigtableTableAdminStub stub, - AwaitConsistencyCallable awaitConsistencyCallable, + com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable awaitConsistencyCallable, OperationCallable optimizeRestoredTableOperationBaseCallable) { super(stub); @@ -88,7 +86,7 @@ protected BigtableTableAdminClientV2(BigtableTableAdminStub stub) { this.optimizeRestoredTableOperationBaseCallable = optimizeRestoredTableOperationBaseCallable; } - private AwaitConsistencyCallable createAwaitConsistencyCallable( + private com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable createAwaitConsistencyCallable( BigtableTableAdminStubSettings settings) throws IOException { ClientContext clientContext = ClientContext.create(settings); // TODO(igorbernstein2): expose polling settings @@ -104,7 +102,7 @@ private AwaitConsistencyCallable createAwaitConsistencyCallable( .setRpcTimeoutMultiplier(1.0) .build(); - return AwaitConsistencyCallable.create( + return com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable.create( getStub().generateConsistencyTokenCallable(), getStub().checkConsistencyCallable(), clientContext, @@ -200,18 +198,6 @@ public static final BigtableTableAdminClientV2 create(BaseBigtableTableAdminSett return new BigtableTableAdminClientV2(settings); } - /** Constructs an instance of BigtableTableAdminClientV2 with the given stub. */ - public static final BigtableTableAdminClientV2 create(BigtableTableAdminStub stub) { - if (stub instanceof EnhancedBigtableTableAdminStub) { - EnhancedBigtableTableAdminStub enhancedStub = (EnhancedBigtableTableAdminStub) stub; - return new BigtableTableAdminClientV2( - stub, - (AwaitConsistencyCallable) enhancedStub.awaitConsistencyCallable(), - enhancedStub.awaitOptimizeRestoredTableCallable()); - } - return new BigtableTableAdminClientV2(stub); - } - /** * Awaits the completion of the "Optimize Restored Table" operation. * @@ -330,7 +316,7 @@ private UnaryCallable getAwaitConsistencyCallable() { return awaitConsistencyCallable; } throw new IllegalStateException( - "AwaitConsistencyCallable not initialized. BigtableTableAdminClientV2 must be " + "com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable not initialized. BigtableTableAdminClientV2 must be " + "initialized via settings to use this functionality."); } From baf19620a63f31b764a751be39ae2688dd23a895 Mon Sep 17 00:00:00 2001 From: cloud-java-bot Date: Thu, 23 Apr 2026 20:12:00 +0000 Subject: [PATCH 3/3] chore: generate libraries at Thu Apr 23 20:09:26 UTC 2026 --- .../bigtable/admin/v2/BigtableTableAdminClient.java | 3 ++- .../admin/v2/BigtableTableAdminClientV2.java | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java index 95e27be6a8..be636f6305 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java @@ -212,7 +212,8 @@ private BigtableTableAdminClient( this.baseClient = new BigtableTableAdminClientV2( stub, - (com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable) stub.awaitConsistencyCallable(), + (com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable) + stub.awaitConsistencyCallable(), stub.awaitOptimizeRestoredTableCallable()); } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java index f3693a4cb0..de4da3f1b1 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java @@ -56,7 +56,8 @@ * generator cannot handle natively (e.g., chained Long Running Operations, Consistency Polling). */ public class BigtableTableAdminClientV2 extends BaseBigtableTableAdminClient { - private final com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable awaitConsistencyCallable; + private final com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable + awaitConsistencyCallable; private final OperationCallable optimizeRestoredTableOperationBaseCallable; @@ -86,8 +87,8 @@ protected BigtableTableAdminClientV2(BigtableTableAdminStub stub) { this.optimizeRestoredTableOperationBaseCallable = optimizeRestoredTableOperationBaseCallable; } - private com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable createAwaitConsistencyCallable( - BigtableTableAdminStubSettings settings) throws IOException { + private com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable + createAwaitConsistencyCallable(BigtableTableAdminStubSettings settings) throws IOException { ClientContext clientContext = ClientContext.create(settings); // TODO(igorbernstein2): expose polling settings RetrySettings pollingSettings = @@ -316,8 +317,9 @@ private UnaryCallable getAwaitConsistencyCallable() { return awaitConsistencyCallable; } throw new IllegalStateException( - "com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable not initialized. BigtableTableAdminClientV2 must be " - + "initialized via settings to use this functionality."); + "com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable not initialized." + + " BigtableTableAdminClientV2 must be initialized via settings to use this" + + " functionality."); } private OperationCallable