Skip to content

Commit e69b16c

Browse files
committed
feat(bigtable): update legacy escape hatch to return V2 admin clients
1 parent 9567312 commit e69b16c

5 files changed

Lines changed: 43 additions & 11 deletions

File tree

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
public final class BigtableInstanceAdminClient implements AutoCloseable {
126126
private final String projectId;
127127
private final BigtableInstanceAdminStub stub;
128-
private final BaseBigtableInstanceAdminClient baseClient;
128+
private final BigtableInstanceAdminClientV2 baseClient;
129129

130130
/** Constructs an instance of BigtableInstanceAdminClient with the given project ID. */
131131
public static BigtableInstanceAdminClient create(@Nonnull String projectId) throws IOException {
@@ -148,7 +148,7 @@ private BigtableInstanceAdminClient(
148148
@Nonnull String projectId, @Nonnull BigtableInstanceAdminStub stub) {
149149
this.projectId = projectId;
150150
this.stub = stub;
151-
this.baseClient = BaseBigtableInstanceAdminClient.create(stub);
151+
this.baseClient = BigtableInstanceAdminClientV2.create(stub);
152152
}
153153

154154
/** Gets the project ID this client is associated with. */
@@ -157,10 +157,10 @@ public String getProjectId() {
157157
}
158158

159159
/**
160-
* Returns the modern autogenerated client. This provides access to the newest features and
161-
* proto-based methods.
160+
* Returns the modern V2 client. This provides access to the newest features and proto-based
161+
* methods.
162162
*/
163-
public BaseBigtableInstanceAdminClient getBaseClient() {
163+
public BigtableInstanceAdminClientV2 getBaseClient() {
164164
return baseClient;
165165
}
166166

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientV2.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,9 @@ public static final BigtableInstanceAdminClientV2 create(
4040
BaseBigtableInstanceAdminSettings settings) throws IOException {
4141
return new BigtableInstanceAdminClientV2(settings);
4242
}
43+
44+
/** Constructs an instance of BigtableInstanceAdminClientV2 with the given stub. */
45+
public static final BigtableInstanceAdminClientV2 create(BigtableInstanceAdminStub stub) {
46+
return new BigtableInstanceAdminClientV2(stub);
47+
}
4348
}

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import com.google.cloud.bigtable.admin.v2.models.UpdateBackupRequest;
7171
import com.google.cloud.bigtable.admin.v2.models.UpdateSchemaBundleRequest;
7272
import com.google.cloud.bigtable.admin.v2.models.UpdateTableRequest;
73+
import com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallableV2;
7374
import com.google.cloud.bigtable.admin.v2.stub.EnhancedBigtableTableAdminStub;
7475
import com.google.cloud.bigtable.data.v2.internal.TableAdminRequestContext;
7576
import com.google.common.base.Preconditions;
@@ -89,6 +90,7 @@
8990
import java.util.List;
9091
import java.util.Map;
9192
import java.util.concurrent.ExecutionException;
93+
import java.util.concurrent.ScheduledExecutorService;
9294
import javax.annotation.Nonnull;
9395

9496
/**
@@ -169,7 +171,7 @@ public final class BigtableTableAdminClient implements AutoCloseable {
169171
private final EnhancedBigtableTableAdminStub stub;
170172
private final String projectId;
171173
private final String instanceId;
172-
private final BaseBigtableTableAdminClient baseClient;
174+
private BigtableTableAdminClientV2 baseClient;
173175

174176
/** Constructs an instance of BigtableTableAdminClient with the given project and instance IDs. */
175177
public static BigtableTableAdminClient create(
@@ -209,7 +211,6 @@ private BigtableTableAdminClient(
209211
this.projectId = projectId;
210212
this.instanceId = instanceId;
211213
this.stub = stub;
212-
this.baseClient = BaseBigtableTableAdminClient.create(stub);
213214
}
214215

215216
/** Gets the project ID of the instance whose tables this client manages. */
@@ -223,10 +224,28 @@ public String getInstanceId() {
223224
}
224225

225226
/**
226-
* Returns the modern autogenerated client. This provides access to the newest features and
227-
* proto-based methods.
227+
* Returns the modern V2 client. This provides access to the newest features and proto-based
228+
* methods.
228229
*/
229-
public BaseBigtableTableAdminClient getBaseClient() {
230+
public synchronized BigtableTableAdminClientV2 getBaseClient() {
231+
if (baseClient == null) {
232+
ScheduledExecutorService backgroundExecutor =
233+
stub.getSettings().getBackgroundExecutorProvider().getExecutor();
234+
boolean shouldAutoClose =
235+
stub.getSettings().getBackgroundExecutorProvider().shouldAutoClose();
236+
237+
AwaitConsistencyCallableV2 awaitConsistencyCallable =
238+
BigtableTableAdminClientV2.createAwaitConsistencyCallable(
239+
stub, stub.getSettings(), stub.getClientContext().getClock(), backgroundExecutor);
240+
241+
baseClient =
242+
new BigtableTableAdminClientV2(
243+
stub,
244+
backgroundExecutor,
245+
shouldAutoClose,
246+
awaitConsistencyCallable,
247+
stub.awaitOptimizeRestoredTableCallable());
248+
}
230249
return baseClient;
231250
}
232251

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ protected BigtableTableAdminClientV2(
133133
this.optimizeRestoredTableOperationBaseCallable = optimizeRestoredTableOperationBaseCallable;
134134
}
135135

136-
private static AwaitConsistencyCallableV2 createAwaitConsistencyCallable(
136+
static AwaitConsistencyCallableV2 createAwaitConsistencyCallable(
137137
GrpcBigtableTableAdminStub stub,
138138
BigtableTableAdminStubSettings settings,
139139
ApiClock clock,

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/EnhancedBigtableTableAdminStub.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,4 +245,12 @@ public UnaryCallable<ConsistencyRequest, Void> awaitConsistencyCallable() {
245245
awaitOptimizeRestoredTableCallable() {
246246
return optimizeRestoredTableOperationBaseCallable;
247247
}
248+
249+
public BigtableTableAdminStubSettings getSettings() {
250+
return settings;
251+
}
252+
253+
public ClientContext getClientContext() {
254+
return clientContext;
255+
}
248256
}

0 commit comments

Comments
 (0)