This is meant for advanced usage. The default RPC settings are set to their recommended
+ * values.
*/
+ public BigtableTableAdminStubSettings.Builder stubSettings() {
+ return stubSettings;
+ }
+
+ /** Builds an instance of the settings. */
+ public BigtableTableAdminSettings build() throws IOException {
+ return new BigtableTableAdminSettings(this);
+ }
+
+ // This is meant for advanced usage. The default RPC settings are set to their recommended
- * values.
- */
- public BigtableTableAdminStubSettings.Builder stubSettings() {
- return stubSettings;
- }
-
- /** Builds an instance of the settings. */
- public BigtableTableAdminSettings build() throws IOException {
- return new BigtableTableAdminSettings(this);
- }
+ //
Sample code: * *
{@code
- * InstanceName instanceName = InstanceName.of("[PROJECT]", "[INSTANCE]");
- * try (BigtableDataClient bigtableDataClient = BigtableDataClient.create(instanceName)) {
+ * try (BigtableDataClient bigtableDataClient = BigtableDataClient.create("[PROJECT]", "[INSTANCE]")) {
* String tableId = "[TABLE]";
*
* // Build the filter expression
@@ -400,8 +394,7 @@ public ApiFuture readRowAsync(String tableId, String rowKey, @Nullable Filt
* Sample code:
*
*
{@code
- * InstanceName instanceName = InstanceName.of("[PROJECT]", "[INSTANCE]");
- * try (BigtableDataClient bigtableDataClient = BigtableDataClient.create(instanceName)) {
+ * try (BigtableDataClient bigtableDataClient = BigtableDataClient.create("[PROJECT]", "[INSTANCE]")) {
* String tableId = "[TABLE]";
*
* // Build the filter expression
@@ -442,8 +435,7 @@ public ApiFuture readRowAsync(String tableId, ByteString rowKey, @Nullable
* Sample code:
*
*
{@code
- * InstanceName instanceName = InstanceName.of("[PROJECT]", "[INSTANCE]");
- * try (BigtableDataClient bigtableDataClient = BigtableDataClient.create(instanceName)) {
+ * try (BigtableDataClient bigtableDataClient = BigtableDataClient.create("[PROJECT]", "[INSTANCE]")) {
* String tableId = "[TABLE]";
*
* Query query = Query.create(tableId)
@@ -495,8 +487,7 @@ public UnaryCallable readRowCallable() {
* Sample code:
*
*
{@code
- * InstanceName instanceName = InstanceName.of("[PROJECT]", "[INSTANCE]");
- * try (BigtableDataClient bigtableDataClient = BigtableDataClient.create(instanceName)) {
+ * try (BigtableDataClient bigtableDataClient = BigtableDataClient.create("[PROJECT]", "[INSTANCE]")) {
* String tableId = "[TABLE]";
*
* Query query = Query.create(tableId)
diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataSettings.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataSettings.java
index cf7fd5255c8d..ca2251e96316 100644
--- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataSettings.java
+++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataSettings.java
@@ -15,10 +15,18 @@
*/
package com.google.cloud.bigtable.data.v2;
+import com.google.api.core.ApiClock;
+import com.google.api.core.ApiFunction;
+import com.google.api.gax.core.CredentialsProvider;
+import com.google.api.gax.core.ExecutorProvider;
+import com.google.api.gax.core.NoCredentialsProvider;
import com.google.api.gax.rpc.BatchingCallSettings;
-import com.google.api.gax.rpc.ClientSettings;
+import com.google.api.gax.rpc.HeaderProvider;
import com.google.api.gax.rpc.ServerStreamingCallSettings;
+import com.google.api.gax.rpc.TransportChannelProvider;
import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.WatchdogProvider;
+import com.google.api.gax.tracing.ApiTracerFactory;
import com.google.cloud.bigtable.data.v2.models.ConditionalRowMutation;
import com.google.cloud.bigtable.data.v2.models.KeyOffset;
import com.google.cloud.bigtable.data.v2.models.Query;
@@ -26,9 +34,11 @@
import com.google.cloud.bigtable.data.v2.models.Row;
import com.google.cloud.bigtable.data.v2.models.RowMutation;
import com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStubSettings;
-import java.io.IOException;
+import io.grpc.ManagedChannelBuilder;
import java.util.List;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import org.threeten.bp.Duration;
/**
* Settings class to configure an instance of {@link BigtableDataClient}.
@@ -52,14 +62,17 @@
* .setInstanceId("my-instance-id")
* .setAppProfileId("default");
*
- * settingsBuilder.readRowsSettings().setRetryableCodes(Code.DEADLINE_EXCEEDED, Code.UNAVAILABLE);
- *
* BigtableDataSettings settings = builder.build();
* }
+ *
+ * For fine grained control of individual RPCs, please refer to {@link
+ * EnhancedBigtableStubSettings}, which is exposed as {@link Builder#stubSettings()}.
*/
-public class BigtableDataSettings extends ClientSettings {
- private BigtableDataSettings(Builder builder) throws IOException {
- super(builder);
+public final class BigtableDataSettings {
+ private final EnhancedBigtableStubSettings stubSettings;
+
+ private BigtableDataSettings(Builder builder) {
+ stubSettings = builder.stubSettings().build();
}
/** Create a new builder. */
@@ -67,81 +80,159 @@ public static Builder newBuilder() {
return new Builder();
}
- /**
- * Returns the target instance.
- *
- * @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}.
- */
- @Deprecated()
- public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
- return getTypedStubSettings().getInstanceName();
+ /** Create a new builder preconfigured to connect to the Bigtable emulator. */
+ public static Builder newBuilderForEmulator(int port) {
+ Builder builder = newBuilder();
+
+ builder
+ .stubSettings()
+ .setProjectId("fake-project")
+ .setInstanceId("fake-instance")
+ .setCredentialsProvider(NoCredentialsProvider.create())
+ .setEndpoint("localhost:" + port)
+ .setTransportChannelProvider(
+ EnhancedBigtableStubSettings.defaultGrpcTransportProviderBuilder()
+ .setPoolSize(1)
+ .setChannelConfigurator(
+ new ApiFunction() {
+ @Override
+ public ManagedChannelBuilder apply(ManagedChannelBuilder input) {
+ return input.usePlaintext();
+ }
+ })
+ .build());
+
+ return builder;
}
/** Returns the target project id. */
public String getProjectId() {
- return getTypedStubSettings().getProjectId();
+ return stubSettings.getProjectId();
}
/** Returns the target instance id. */
public String getInstanceId() {
- return getTypedStubSettings().getInstanceId();
+ return stubSettings.getInstanceId();
}
/** Returns the configured AppProfile id to use. */
public String getAppProfileId() {
- return getTypedStubSettings().getAppProfileId();
+ return stubSettings.getAppProfileId();
}
- /** Returns the object with the settings used for calls to ReadRows. */
- public ServerStreamingCallSettings readRowsSettings() {
- return getTypedStubSettings().readRowsSettings();
+ /** Returns the underlying RPC settings. */
+ public EnhancedBigtableStubSettings getStubSettings() {
+ return stubSettings;
}
- /** Returns the object with the settings used for point reads via ReadRow. */
- public UnaryCallSettings readRowSettings() {
- return getTypedStubSettings().readRowSettings();
+ //
+ /** @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}. */
+ @Deprecated()
+ public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
+ return stubSettings.getInstanceName();
}
- /** Returns the object with the settings used for calls to sampleRowKeys. */
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public ServerStreamingCallSettings readRowsSettings() {
+ return stubSettings.readRowsSettings();
+ }
+
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
public UnaryCallSettings> sampleRowKeysSettings() {
- return getTypedStubSettings().sampleRowKeysSettings();
+ return stubSettings.sampleRowKeysSettings();
}
- /** Returns the object with the settings used for calls to MutateRow. */
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public UnaryCallSettings readRowSettings() {
+ return stubSettings.readRowSettings();
+ }
+
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
public UnaryCallSettings mutateRowSettings() {
- return getTypedStubSettings().mutateRowSettings();
+ return stubSettings.mutateRowSettings();
}
- /** Returns the object with the settings used for BulkMutations. */
- public BatchingCallSettings bulkMutationsSettings() {
- // NOTE: the user facing BigtableDataClient only exposes this api as newBulkMutationBatcher,
- // so the outer name should match that, while the stub should stick to rpc names.
- return getTypedStubSettings().bulkMutateRowsSettings();
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public BatchingCallSettings bulkMutateRowsSettings() {
+ return stubSettings.bulkMutateRowsSettings();
}
- /** Returns the object with the settings used for calls to checkAndMutateRow. */
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
public UnaryCallSettings checkAndMutateRowSettings() {
- return getTypedStubSettings().checkAndMutateRowSettings();
+ return stubSettings.checkAndMutateRowSettings();
}
- /** Returns the object with the settings used for calls to ReadModifyWriteRow. */
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
public UnaryCallSettings readModifyWriteRowSettings() {
- return getTypedStubSettings().readModifyWriteRowSettings();
+ return stubSettings.readModifyWriteRowSettings();
+ }
+
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public ExecutorProvider getExecutorProvider() {
+ return stubSettings.getExecutorProvider();
}
- @SuppressWarnings("unchecked")
- EnhancedBigtableStubSettings getTypedStubSettings() {
- return (EnhancedBigtableStubSettings) getStubSettings();
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public TransportChannelProvider getTransportChannelProvider() {
+ return stubSettings.getTransportChannelProvider();
}
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public CredentialsProvider getCredentialsProvider() {
+ return stubSettings.getCredentialsProvider();
+ }
+
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public HeaderProvider getHeaderProvider() {
+ return stubSettings.getHeaderProvider();
+ }
+
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public ApiClock getClock() {
+ return stubSettings.getClock();
+ }
+
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ public String getEndpoint() {
+ return stubSettings.getEndpoint();
+ }
+
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ @Nullable
+ public WatchdogProvider getStreamWatchdogProvider() {
+ return stubSettings.getStreamWatchdogProvider();
+ }
+
+ /** @deprecated Please use {@link #getStubSettings()} */
+ @Deprecated
+ @Nonnull
+ public Duration getStreamWatchdogCheckInterval() {
+ return stubSettings.getStreamWatchdogCheckInterval();
+ }
+ //
+
/** Returns a builder containing all the values of this settings class. */
- @SuppressWarnings("unchecked")
public Builder toBuilder() {
return new Builder(this);
}
/** Builder for BigtableDataSettings. */
- public static class Builder extends ClientSettings.Builder {
+ public static class Builder {
+ private final EnhancedBigtableStubSettings.Builder stubSettings;
/**
* Initializes a new Builder with sane defaults for all settings.
*
@@ -151,50 +242,26 @@ public static class Builder extends ClientSettings.Builder
- /**
- * Sets the target instance. This setting is required. All RPCs will be made in the context of
- * this setting.
- *
- * @deprecated Please use {@link #setProjectId(String)} and {@link #setInstanceId(String)}.
- */
- @Deprecated
- public Builder setInstanceName(
- @Nonnull com.google.cloud.bigtable.data.v2.models.InstanceName instanceName) {
- getTypedStubSettings().setInstanceName(instanceName);
- return this;
- }
-
- /**
- * Gets the {@link com.google.cloud.bigtable.data.v2.models.InstanceName} that was previously
- * set on this Builder.
- *
- * @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}.
- */
- @Deprecated
- public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
- return getTypedStubSettings().getInstanceName();
- }
-
/**
* Sets the target project. This setting is required. All RPCs will be made in the context of
* this setting.
*/
public Builder setProjectId(@Nonnull String projectId) {
- getTypedStubSettings().setProjectId(projectId);
+ stubSettings.setProjectId(projectId);
return this;
}
/** Gets the project id that was previously set on this Builder. */
public String getProjectId() {
- return getTypedStubSettings().getProjectId();
+ return stubSettings.getProjectId();
}
/**
@@ -202,13 +269,13 @@ public String getProjectId() {
* this setting.
*/
public Builder setInstanceId(@Nonnull String instanceId) {
- getTypedStubSettings().setInstanceId(instanceId);
+ stubSettings.setInstanceId(instanceId);
return this;
}
/** Gets the instance id that was previously set on this Builder. */
public String getInstanceId() {
- return getTypedStubSettings().getInstanceId();
+ return stubSettings.getInstanceId();
}
/**
@@ -218,59 +285,201 @@ public String getInstanceId() {
* handled according to that application profile.
*/
public Builder setAppProfileId(@Nonnull String appProfileId) {
- getTypedStubSettings().setAppProfileId(appProfileId);
+ stubSettings.setAppProfileId(appProfileId);
return this;
}
/** Gets the app profile id that was previously set on this Builder. */
public String getAppProfileId() {
- return getTypedStubSettings().getAppProfileId();
+ return stubSettings.getAppProfileId();
+ }
+
+ /** Sets the CredentialsProvider to use for getting the credentials to make calls with. */
+ public Builder setCredentialsProvider(CredentialsProvider credentialsProvider) {
+ stubSettings.setCredentialsProvider(credentialsProvider);
+ return this;
+ }
+
+ /** Gets the CredentialsProvider to use for getting the credentials to make calls with. */
+ public CredentialsProvider getCredentialsProvider() {
+ return stubSettings.getCredentialsProvider();
+ }
+
+ /**
+ * Returns the underlying settings for making RPC calls. The settings should be changed with
+ * care.
+ */
+ public EnhancedBigtableStubSettings.Builder stubSettings() {
+ return stubSettings;
+ }
+
+ public BigtableDataSettings build() {
+ return new BigtableDataSettings(this);
+ }
+ //
+
+ //
+ /** @deprecated Please use {@link #setProjectId(String)} and {@link #setInstanceId(String)}. */
+ @Deprecated
+ public Builder setInstanceName(
+ @Nonnull com.google.cloud.bigtable.data.v2.models.InstanceName instanceName) {
+ stubSettings().setInstanceName(instanceName);
+ return this;
+ }
+
+ /** @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}. */
+ @Deprecated
+ public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
+ return stubSettings.getInstanceName();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public Builder setExecutorProvider(ExecutorProvider executorProvider) {
+ stubSettings.setExecutorProvider(executorProvider);
+ return this;
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public Builder setHeaderProvider(HeaderProvider headerProvider) {
+ stubSettings.setHeaderProvider(headerProvider);
+ return this;
}
- /** Returns the builder for the settings used for calls to readRows. */
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public Builder setTransportChannelProvider(TransportChannelProvider transportChannelProvider) {
+ stubSettings.setTransportChannelProvider(transportChannelProvider);
+ return this;
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public Builder setStreamWatchdogProvider(@Nullable WatchdogProvider streamWatchdogProvider) {
+ stubSettings.setStreamWatchdogProvider(streamWatchdogProvider);
+ return this;
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public Builder setClock(ApiClock clock) {
+ stubSettings.setClock(clock);
+ return this;
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public Builder setEndpoint(String endpoint) {
+ stubSettings.setEndpoint(endpoint);
+ return this;
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public Builder setStreamWatchdogCheckInterval(@Nonnull Duration checkInterval) {
+ stubSettings.setStreamWatchdogCheckInterval(checkInterval);
+ return this;
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public Builder setTracerFactory(@Nonnull ApiTracerFactory tracerFactory) {
+ stubSettings.setTracerFactory(tracerFactory);
+ return this;
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public ExecutorProvider getExecutorProvider() {
+ return stubSettings.getExecutorProvider();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public TransportChannelProvider getTransportChannelProvider() {
+ return stubSettings.getTransportChannelProvider();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public HeaderProvider getHeaderProvider() {
+ return stubSettings.getHeaderProvider();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ @Nullable
+ public WatchdogProvider getStreamWatchdogProvider() {
+ return stubSettings.getStreamWatchdogProvider();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public ApiClock getClock() {
+ return stubSettings.getClock();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ public String getEndpoint() {
+ return stubSettings.getEndpoint();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ @Nonnull
+ public Duration getStreamWatchdogCheckInterval() {
+ return stubSettings.getStreamWatchdogCheckInterval();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
+ @Nonnull
+ public ApiTracerFactory getTracerFactory() {
+ return stubSettings.getTracerFactory();
+ }
+
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
public ServerStreamingCallSettings.Builder readRowsSettings() {
- return getTypedStubSettings().readRowsSettings();
+ return stubSettings.readRowsSettings();
}
- /** Returns the builder for the settings used for point reads using readRow. */
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
public UnaryCallSettings.Builder readRowSettings() {
- return getTypedStubSettings().readRowSettings();
+ return stubSettings.readRowSettings();
}
- /** Returns the builder for the settings used for calls to SampleRowKeysSettings. */
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
public UnaryCallSettings.Builder> sampleRowKeysSettings() {
- return getTypedStubSettings().sampleRowKeysSettings();
+ return stubSettings.sampleRowKeysSettings();
}
- /** Returns the builder for the settings used for calls to MutateRow. */
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
public UnaryCallSettings.Builder mutateRowSettings() {
- return getTypedStubSettings().mutateRowSettings();
+ return stubSettings.mutateRowSettings();
}
- /** Returns the builder for the settings used for BulkMutations. */
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
public BatchingCallSettings.Builder bulkMutationsSettings() {
- // NOTE: the user facing BigtableDataClient only exposes this api as newBulkMutationBatcher,
- // so the outer name should match that, while the stub should stick to rpc names.
- return getTypedStubSettings().bulkMutateRowsSettings();
+ return stubSettings.bulkMutateRowsSettings();
}
- /** Returns the object with the settings used for calls to checkAndMutateRow. */
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
public UnaryCallSettings.Builder checkAndMutateRowSettings() {
- return getTypedStubSettings().checkAndMutateRowSettings();
+ return stubSettings.checkAndMutateRowSettings();
}
- /** Returns the builder with the settings used for calls to ReadModifyWriteRow. */
+ /** @deprecated Please use {@link #stubSettings()} */
+ @Deprecated
public UnaryCallSettings.Builder readModifyWriteRowSettings() {
- return getTypedStubSettings().readModifyWriteRowSettings();
- }
-
- @SuppressWarnings("unchecked")
- private EnhancedBigtableStubSettings.Builder getTypedStubSettings() {
- return (EnhancedBigtableStubSettings.Builder) getStubSettings();
- }
-
- public BigtableDataSettings build() throws IOException {
- return new BigtableDataSettings(this);
+ return stubSettings.readModifyWriteRowSettings();
}
//
}
diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/RequestContext.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/RequestContext.java
index ad1a2d27e1c4..fc015186aa63 100644
--- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/RequestContext.java
+++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/RequestContext.java
@@ -38,31 +38,12 @@ public static RequestContext create(String projectId, String instanceId, String
return new AutoValue_RequestContext(projectId, instanceId, appProfileId);
}
- /** @deprecated Please use {@link #create(String, String, String)}. */
- @Deprecated
- public static RequestContext create(
- com.google.cloud.bigtable.data.v2.models.InstanceName instanceName, String appProfileId) {
- return new AutoValue_RequestContext(
- instanceName.getProject(), instanceName.getInstance(), appProfileId);
- }
-
/** The project id that the client is configured to target. */
public abstract String getProjectId();
/** The instance id that the client is configured to target. */
public abstract String getInstanceId();
- /**
- * The instance that the client is configured to target.
- *
- * @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}.
- */
- @Deprecated
- public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
- return com.google.cloud.bigtable.data.v2.models.InstanceName.of(
- getProjectId(), getInstanceId());
- }
-
/** The App Profile to use when processing the current request */
public abstract String getAppProfileId();
}
diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java
index ca44142a91eb..4b607911bf3b 100644
--- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java
+++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java
@@ -15,7 +15,6 @@
*/
package com.google.cloud.bigtable.data.v2.stub;
-import com.google.api.core.InternalApi;
import com.google.api.gax.batching.BatchingSettings;
import com.google.api.gax.batching.FlowControlSettings;
import com.google.api.gax.batching.FlowController.LimitExceededBehavior;
@@ -26,6 +25,7 @@
import com.google.api.gax.rpc.ServerStreamingCallSettings;
import com.google.api.gax.rpc.StatusCode.Code;
import com.google.api.gax.rpc.StubSettings;
+import com.google.api.gax.rpc.TransportChannelProvider;
import com.google.api.gax.rpc.UnaryCallSettings;
import com.google.cloud.bigtable.data.v2.internal.DummyBatchingDescriptor;
import com.google.cloud.bigtable.data.v2.models.ConditionalRowMutation;
@@ -69,11 +69,7 @@
*
* BigtableDataSettings settings = builder.build();
* }
- *
- * This class is considered an internal implementation detail and not meant to be used by
- * applications.
*/
-@InternalApi
public class EnhancedBigtableStubSettings extends StubSettings {
// The largest message that can be received is a 256 MB ReadRowsResponse.
private static final int MAX_MESSAGE_SIZE = 256 * 1024 * 1024;
@@ -151,14 +147,24 @@ public static Builder newBuilder() {
return new Builder();
}
- /**
- * Returns the target instance.
- *
- * @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}
- */
- @Deprecated
- public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
- return com.google.cloud.bigtable.data.v2.models.InstanceName.of(projectId, instanceId);
+ /** Returns a builder for the default ChannelProvider for this service. */
+ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
+ return InstantiatingGrpcChannelProvider.newBuilder()
+ // TODO: tune channels
+ .setChannelsPerCpu(2)
+ .setMaxInboundMessageSize(MAX_MESSAGE_SIZE);
+ }
+
+ @SuppressWarnings("WeakerAccess")
+ public static TransportChannelProvider defaultTransportChannelProvider() {
+ return defaultGrpcTransportProviderBuilder().build();
+ }
+
+ /** Returns a builder for the default credentials for this service. */
+ @SuppressWarnings("WeakerAccess")
+ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
+ return BigtableStubSettings.defaultCredentialsProviderBuilder()
+ .setJwtEnabledScopes(JWT_ENABLED_SCOPES);
}
/** Returns the project id of the target instance. */
@@ -176,12 +182,6 @@ public String getAppProfileId() {
return appProfileId;
}
- /** Returns a builder for the default credentials for this service. */
- public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
- return BigtableStubSettings.defaultCredentialsProviderBuilder()
- .setJwtEnabledScopes(JWT_ENABLED_SCOPES);
- }
-
/** Returns the object with the settings used for calls to ReadRows. */
public ServerStreamingCallSettings readRowsSettings() {
return readRowsSettings;
@@ -228,6 +228,14 @@ public Builder toBuilder() {
return new Builder(this);
}
+ //
+ /** @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()} */
+ @Deprecated
+ public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
+ return com.google.cloud.bigtable.data.v2.models.InstanceName.of(projectId, instanceId);
+ }
+ //
+
/** Builder for BigtableDataSettings. */
public static class Builder extends StubSettings.Builder {
@@ -260,12 +268,7 @@ private Builder() {
BigtableStubSettings.Builder baseDefaults = BigtableStubSettings.newBuilder();
setEndpoint(baseDefaults.getEndpoint());
- setTransportChannelProvider(
- InstantiatingGrpcChannelProvider.newBuilder()
- // TODO: tune channels
- .setChannelsPerCpu(2)
- .setMaxInboundMessageSize(MAX_MESSAGE_SIZE)
- .build());
+ setTransportChannelProvider(defaultTransportChannelProvider());
setStreamWatchdogCheckInterval(baseDefaults.getStreamWatchdogCheckInterval());
setStreamWatchdogProvider(baseDefaults.getStreamWatchdogProvider());
@@ -350,35 +353,6 @@ private static void copyRetrySettings(
//
//
- /**
- * Sets the target instance. This setting is required. All RPCs will be made in the context of
- * this setting.
- *
- * @deprecated Please use {@link #setProjectId(String)} and {@link #setInstanceId(String)}.
- */
- @Deprecated
- public Builder setInstanceName(
- @Nonnull com.google.cloud.bigtable.data.v2.models.InstanceName instanceName) {
- Preconditions.checkNotNull(instanceName);
- this.projectId = instanceName.getProject();
- this.instanceId = instanceName.getInstance();
- return this;
- }
-
- /**
- * Gets the {@link com.google.cloud.bigtable.data.v2.models.InstanceName} that was previously
- * set on this Builder.
- *
- * @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}.
- */
- @Deprecated
- public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
- if (projectId != null && instanceId != null) {
- return com.google.cloud.bigtable.data.v2.models.InstanceName.of(projectId, instanceId);
- }
- return null;
- }
-
/**
* Sets the project id of that target instance. This setting is required. All RPCs will be made
* in the context of this setting.
@@ -469,5 +443,26 @@ public EnhancedBigtableStubSettings build() {
return new EnhancedBigtableStubSettings(this);
}
//
+
+ //
+ /** @deprecated Please use {@link #setProjectId(String)} and {@link #setInstanceId(String)}. */
+ @Deprecated
+ public Builder setInstanceName(
+ @Nonnull com.google.cloud.bigtable.data.v2.models.InstanceName instanceName) {
+ Preconditions.checkNotNull(instanceName);
+ this.projectId = instanceName.getProject();
+ this.instanceId = instanceName.getInstance();
+ return this;
+ }
+
+ /** @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}. */
+ @Deprecated
+ public com.google.cloud.bigtable.data.v2.models.InstanceName getInstanceName() {
+ if (projectId != null && instanceId != null) {
+ return com.google.cloud.bigtable.data.v2.models.InstanceName.of(projectId, instanceId);
+ }
+ return null;
+ }
+ //
}
}
diff --git a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/env/Emulator.java b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/env/Emulator.java
index dca4efbc514e..51c156143113 100644
--- a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/env/Emulator.java
+++ b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/env/Emulator.java
@@ -17,7 +17,6 @@
import com.google.api.gax.core.NoCredentialsProvider;
import com.google.api.gax.grpc.GrpcTransportChannel;
-import com.google.api.gax.rpc.ClientSettings;
import com.google.api.gax.rpc.FixedTransportChannelProvider;
import com.google.bigtable.admin.v2.BigtableTableAdminGrpc;
import com.google.bigtable.admin.v2.BigtableTableAdminGrpc.BigtableTableAdminBlockingStub;
@@ -178,8 +177,9 @@ private ManagedChannel createChannel(int port) {
.build();
}
- private > T configureClient(T settings) {
+ private BigtableDataSettings.Builder configureClient(BigtableDataSettings.Builder settings) {
settings
+ .stubSettings()
.setCredentialsProvider(new NoCredentialsProvider())
.setTransportChannelProvider(
FixedTransportChannelProvider.create(GrpcTransportChannel.create(channel)));
diff --git a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java
index 6176a81a5149..c4c95dd2e925 100644
--- a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java
+++ b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java
@@ -21,7 +21,6 @@
import com.google.api.gax.grpc.testing.InProcessServer;
import com.google.api.gax.grpc.testing.LocalChannelProvider;
import com.google.api.gax.rpc.FixedHeaderProvider;
-import com.google.api.gax.rpc.HeaderProvider;
import com.google.bigtable.v2.BigtableGrpc;
import com.google.cloud.bigtable.data.v2.BigtableDataClient;
import com.google.cloud.bigtable.data.v2.BigtableDataSettings;
@@ -64,21 +63,25 @@ public void setUp() throws Exception {
server.start();
channelProvider = LocalChannelProvider.create(NAME);
- HeaderProvider headerProvider = FixedHeaderProvider.create(TEST_HEADER_NAME, TEST_HEADER_VALUE);
BigtableDataSettings.Builder settings =
BigtableDataSettings.newBuilder()
.setProjectId(PROJECT_ID)
.setInstanceId(INSTANCE_ID)
- .setTransportChannelProvider(channelProvider)
- .setHeaderProvider(headerProvider)
.setCredentialsProvider(NoCredentialsProvider.create());
+ settings
+ .stubSettings()
+ .setTransportChannelProvider(channelProvider)
+ .setHeaderProvider(FixedHeaderProvider.create(TEST_HEADER_NAME, TEST_HEADER_VALUE));
+
// Force immediate flush
settings
- .bulkMutationsSettings()
+ .stubSettings()
+ .bulkMutateRowsSettings()
.setBatchingSettings(
settings
- .bulkMutationsSettings()
+ .stubSettings()
+ .bulkMutateRowsSettings()
.getBatchingSettings()
.toBuilder()
.setElementCountThreshold(1L)
diff --git a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/BulkMutateRowsRetryTest.java b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/BulkMutateRowsRetryTest.java
index 10528d333d27..cf3af546463b 100644
--- a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/BulkMutateRowsRetryTest.java
+++ b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/BulkMutateRowsRetryTest.java
@@ -76,16 +76,20 @@ public void setUp() throws Exception {
BigtableDataSettings.newBuilder()
.setProjectId(PROJECT_ID)
.setInstanceId(INSTANCE_ID)
- .setCredentialsProvider(NoCredentialsProvider.create())
- .setTransportChannelProvider(
- FixedTransportChannelProvider.create(
- GrpcTransportChannel.create(serverRule.getChannel())));
+ .setCredentialsProvider(NoCredentialsProvider.create());
+ settings
+ .stubSettings()
+ .setTransportChannelProvider(
+ FixedTransportChannelProvider.create(
+ GrpcTransportChannel.create(serverRule.getChannel())));
settings
- .bulkMutationsSettings()
+ .stubSettings()
+ .bulkMutateRowsSettings()
.setRetrySettings(
settings
- .bulkMutationsSettings()
+ .stubSettings()
+ .bulkMutateRowsSettings()
.getRetrySettings()
.toBuilder()
.setMaxAttempts(MAX_ATTEMPTS)
@@ -95,7 +99,8 @@ public void setUp() throws Exception {
.build())
.setBatchingSettings(
settings
- .bulkMutationsSettings()
+ .stubSettings()
+ .bulkMutateRowsSettings()
.getBatchingSettings()
.toBuilder()
.setDelayThreshold(FLUSH_PERIOD)
diff --git a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
index 12c01275cfe1..adedf4b6de1a 100644
--- a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
+++ b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
@@ -66,17 +66,20 @@ public void setUp() throws IOException {
service = new TestBigtableService();
serverRule.getServiceRegistry().addService(service);
- BigtableDataSettings settings =
+ BigtableDataSettings.Builder settings =
BigtableDataSettings.newBuilder()
.setProjectId(PROJECT_ID)
.setInstanceId(INSTANCE_ID)
- .setCredentialsProvider(NoCredentialsProvider.create())
- .setTransportChannelProvider(
- FixedTransportChannelProvider.create(
- GrpcTransportChannel.create(serverRule.getChannel())))
- .build();
+ .setCredentialsProvider(NoCredentialsProvider.create());
- client = BigtableDataClient.create(settings);
+ settings
+ .stubSettings()
+ .setTransportChannelProvider(
+ FixedTransportChannelProvider.create(
+ GrpcTransportChannel.create(serverRule.getChannel())))
+ .build();
+
+ client = BigtableDataClient.create(settings.build());
}
@After
diff --git a/google-cloud-testing/google-cloud-bigtable-emulator/README.md b/google-cloud-testing/google-cloud-bigtable-emulator/README.md
index be4378ef4829..ecdced2f999b 100644
--- a/google-cloud-testing/google-cloud-bigtable-emulator/README.md
+++ b/google-cloud-testing/google-cloud-bigtable-emulator/README.md
@@ -110,25 +110,10 @@ public class ExampleTest {
@Before
public void setUp() throws IOException {
// Initialize the clients to connect to the emulator
- BigtableTableAdminSettings.Builder tableAdminSettings = BigtableTableAdminSettings.newBuilder()
- .setInstanceName(com.google.bigtable.admin.v2.InstanceName.of("fake-project", "fake-instance"));
- tableAdminSettings.stubSettings()
- .setCredentialsProvider(NoCredentialsProvider.create())
- .setTransportChannelProvider(
- FixedTransportChannelProvider.create(
- GrpcTransportChannel.create(bigtableEmulator.getAdminChannel())
- )
- );
+ BigtableTableAdminSettings.Builder tableAdminSettings = BigtableTableAdminSettings.newBuilderForEmulator(bigtableEmulator.getPort());
tableAdminClient = BigtableTableAdminClient.create(tableAdminSettings.build());
- BigtableDataSettings.Builder dataSettings = BigtableDataSettings.newBuilder()
- .setInstanceName(com.google.cloud.bigtable.data.v2.models.InstanceName.of("fake-project", "fake-instance"))
- .setCredentialsProvider(NoCredentialsProvider.create())
- .setTransportChannelProvider(
- FixedTransportChannelProvider.create(
- GrpcTransportChannel.create(bigtableEmulator.getDataChannel())
- )
- );
+ BigtableDataSettings.Builder dataSettings = BigtableDataSettings.newBuilderForEmulator(bigtableEmulator.getPort());
dataClient = BigtableDataClient.create(dataSettings.build());
// Create a test table that can be used in tests