createMutateRowCallable() {
* This function should not be exposed to external users, as it could cause a data loss.
*/
private UnaryCallable createMutateRowsBaseCallable() {
+ ClientContext clientContext = bigtableClientContext.getClientContext();
ServerStreamingCallable base =
GrpcRawCallableFactory.createServerStreamingCallable(
GrpcCallSettings.newBuilder()
@@ -874,9 +887,10 @@ public Batcher newMutateRowsBatcher(
bulkMutateRowsCallable,
BulkMutation.create(tableId),
settings.bulkMutateRowsSettings().getBatchingSettings(),
- clientContext.getExecutor(),
+ bigtableClientContext.getClientContext().getExecutor(),
bulkMutationFlowController,
- MoreObjects.firstNonNull(ctx, clientContext.getDefaultCallContext()));
+ MoreObjects.firstNonNull(
+ ctx, bigtableClientContext.getClientContext().getDefaultCallContext()));
}
/**
@@ -905,9 +919,10 @@ public Batcher newMutateRowsBatcher(
bulkMutateRowsCallable,
BulkMutation.create(targetId),
settings.bulkMutateRowsSettings().getBatchingSettings(),
- clientContext.getExecutor(),
+ bigtableClientContext.getClientContext().getExecutor(),
bulkMutationFlowController,
- MoreObjects.firstNonNull(ctx, clientContext.getDefaultCallContext()));
+ MoreObjects.firstNonNull(
+ ctx, bigtableClientContext.getClientContext().getDefaultCallContext()));
}
/**
@@ -933,9 +948,10 @@ public Batcher newBulkReadRowsBatcher(
bulkReadRowsCallable,
query,
settings.bulkReadRowsSettings().getBatchingSettings(),
- clientContext.getExecutor(),
+ bigtableClientContext.getClientContext().getExecutor(),
null,
- MoreObjects.firstNonNull(ctx, clientContext.getDefaultCallContext()));
+ MoreObjects.firstNonNull(
+ ctx, bigtableClientContext.getClientContext().getDefaultCallContext()));
}
/**
@@ -995,6 +1011,7 @@ private UnaryCallable createReadModifyWriteRowCallable(
*/
private ServerStreamingCallable
createGenerateInitialChangeStreamPartitionsCallable() {
+ ClientContext clientContext = bigtableClientContext.getClientContext();
ServerStreamingCallable<
GenerateInitialChangeStreamPartitionsRequest,
GenerateInitialChangeStreamPartitionsResponse>
@@ -1075,6 +1092,7 @@ private UnaryCallable createReadModifyWriteRowCallable(
ServerStreamingCallable
createReadChangeStreamCallable(
ChangeStreamRecordAdapter changeStreamRecordAdapter) {
+ ClientContext clientContext = bigtableClientContext.getClientContext();
ServerStreamingCallable base =
GrpcRawCallableFactory.createServerStreamingCallable(
GrpcCallSettings.newBuilder()
@@ -1151,6 +1169,7 @@ private UnaryCallable createReadModifyWriteRowCallable(
*/
@InternalApi("For internal use only")
public ExecuteQueryCallable createExecuteQueryCallable() {
+ ClientContext clientContext = bigtableClientContext.getClientContext();
ServerStreamingCallable base =
GrpcRawCallableFactory.createServerStreamingCallable(
GrpcCallSettings.newBuilder()
@@ -1245,9 +1264,13 @@ private UnaryCallable createUserFacin
String methodName, UnaryCallable inner) {
UnaryCallable traced =
- new TracedUnaryCallable<>(inner, clientContext.getTracerFactory(), getSpanName(methodName));
+ new TracedUnaryCallable<>(
+ inner,
+ bigtableClientContext.getClientContext().getTracerFactory(),
+ getSpanName(methodName));
- return traced.withDefaultCallContext(clientContext.getDefaultCallContext());
+ return traced.withDefaultCallContext(
+ bigtableClientContext.getClientContext().getDefaultCallContext());
}
private Map composeRequestParams(
@@ -1314,11 +1337,14 @@ public ApiFuture futureCall(ReqT reqT, ApiCallContext apiCallContext) {
UnaryCallable traced =
new TracedUnaryCallable<>(
transformed,
- clientContext.getTracerFactory(),
+ bigtableClientContext.getClientContext().getTracerFactory(),
getSpanName(methodDescriptor.getBareMethodName()));
return traced.withDefaultCallContext(
- clientContext.getDefaultCallContext().withRetrySettings(callSettings.getRetrySettings()));
+ bigtableClientContext
+ .getClientContext()
+ .getDefaultCallContext()
+ .withRetrySettings(callSettings.getRetrySettings()));
}
private UnaryCallable createUnaryCallableNew(
@@ -1347,8 +1373,11 @@ private UnaryCallable createUnar
return new BigtableUnaryOperationCallable<>(
transformed,
- clientContext.getDefaultCallContext().withRetrySettings(callSettings.getRetrySettings()),
- clientContext.getTracerFactory(),
+ bigtableClientContext
+ .getClientContext()
+ .getDefaultCallContext()
+ .withRetrySettings(callSettings.getRetrySettings()),
+ bigtableClientContext.getClientContext().getTracerFactory(),
getSpanName(methodDescriptor.getBareMethodName()),
/* allowNoResponse= */ false);
}
@@ -1371,9 +1400,11 @@ private UnaryCallable withRetries(
if (settings.getEnableRetryInfo()) {
retrying =
com.google.cloud.bigtable.gaxx.retrying.Callables.retrying(
- innerCallable, unaryCallSettings, clientContext);
+ innerCallable, unaryCallSettings, bigtableClientContext.getClientContext());
} else {
- retrying = Callables.retrying(innerCallable, unaryCallSettings, clientContext);
+ retrying =
+ Callables.retrying(
+ innerCallable, unaryCallSettings, bigtableClientContext.getClientContext());
}
if (settings.getEnableRoutingCookie()) {
return new CookiesUnaryCallable<>(retrying);
@@ -1389,9 +1420,11 @@ private ServerStreamingCallable withR
if (settings.getEnableRetryInfo()) {
retrying =
com.google.cloud.bigtable.gaxx.retrying.Callables.retrying(
- innerCallable, serverStreamingCallSettings, clientContext);
+ innerCallable, serverStreamingCallSettings, bigtableClientContext.getClientContext());
} else {
- retrying = Callables.retrying(innerCallable, serverStreamingCallSettings, clientContext);
+ retrying =
+ Callables.retrying(
+ innerCallable, serverStreamingCallSettings, bigtableClientContext.getClientContext());
}
if (settings.getEnableRoutingCookie()) {
return new CookiesServerStreamingCallable<>(retrying);
@@ -1408,7 +1441,7 @@ private ServerStreamingCallable large
ServerStreamingCallable retrying;
retrying =
com.google.cloud.bigtable.gaxx.retrying.Callables.retryingForLargeRows(
- innerCallable, serverStreamingCallSettings, clientContext);
+ innerCallable, serverStreamingCallSettings, bigtableClientContext.getClientContext());
if (settings.getEnableRoutingCookie()) {
return new CookiesServerStreamingCallable<>(retrying);
}
@@ -1507,12 +1540,10 @@ private SpanName getSpanName(String methodName) {
@Override
public void close() {
if (closeClientContext) {
- for (BackgroundResource backgroundResource : clientContext.getBackgroundResources()) {
- try {
- backgroundResource.close();
- } catch (Exception e) {
- throw new IllegalStateException("Failed to close resource", e);
- }
+ try {
+ bigtableClientContext.close();
+ } catch (Exception e) {
+ throw new IllegalStateException("failed to close client context", e);
}
}
}
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableTracerCallableTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableTracerCallableTest.java
index b0966a2166..1a09951b77 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableTracerCallableTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableTracerCallableTest.java
@@ -139,7 +139,9 @@ public void sendHeaders(Metadata headers) {
null))
.build();
attempts = settings.getStubSettings().readRowsSettings().getRetrySettings().getMaxAttempts();
- stub = new EnhancedBigtableStub(settings.getStubSettings(), clientContext);
+ stub =
+ new EnhancedBigtableStub(
+ settings.getStubSettings(), bigtableClientContext.setClientContext(clientContext));
// Create another server without injecting the server-timing header and another stub that
// connects to it.
@@ -164,7 +166,9 @@ public void sendHeaders(Metadata headers) {
null))
.build();
noHeaderStub =
- new EnhancedBigtableStub(noHeaderSettings.getStubSettings(), noHeaderClientContext);
+ new EnhancedBigtableStub(
+ noHeaderSettings.getStubSettings(),
+ noHeaderBigtableClientContext.setClientContext(noHeaderClientContext));
}
@After
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracerTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracerTest.java
index a59cf84751..864a801e6e 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracerTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracerTest.java
@@ -50,7 +50,6 @@
import com.google.api.gax.batching.BatchingSettings;
import com.google.api.gax.batching.FlowControlSettings;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
-import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.NotFoundException;
import com.google.api.gax.rpc.ResponseObserver;
import com.google.api.gax.rpc.StreamController;
@@ -71,6 +70,7 @@
import com.google.cloud.bigtable.data.v2.models.RowMutation;
import com.google.cloud.bigtable.data.v2.models.RowMutationEntry;
import com.google.cloud.bigtable.data.v2.models.TableId;
+import com.google.cloud.bigtable.data.v2.stub.BigtableClientContext;
import com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStub;
import com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStubSettings;
import com.google.common.base.Stopwatch;
@@ -276,7 +276,7 @@ public void sendHeaders(Metadata headers) {
});
stubSettingsBuilder.setTransportChannelProvider(channelProvider.build());
EnhancedBigtableStubSettings stubSettings = stubSettingsBuilder.build();
- stub = new EnhancedBigtableStub(stubSettings, ClientContext.create(stubSettings));
+ stub = new EnhancedBigtableStub(stubSettings, BigtableClientContext.create(stubSettings));
}
@After
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracerTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracerTest.java
index a9f3aa038b..8446f80f87 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracerTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracerTest.java
@@ -133,7 +133,9 @@ public void setUp() throws Exception {
localStats.getStatsRecorder(),
null))
.build();
- stub = new EnhancedBigtableStub(settings.getStubSettings(), clientContext);
+ stub =
+ new EnhancedBigtableStub(
+ settings.getStubSettings(), bigtableClientContext.setClientContext(clientContext));
}
@After