diff --git a/google-cloud-clients/google-cloud-bigtable/README.md b/google-cloud-clients/google-cloud-bigtable/README.md index 616956fff593..6e91df70c569 100644 --- a/google-cloud-clients/google-cloud-bigtable/README.md +++ b/google-cloud-clients/google-cloud-bigtable/README.md @@ -72,7 +72,6 @@ at the top of your file: ```java import com.google.cloud.bigtable.data.v2.BigtableDataClient; -import com.google.cloud.bigtable.data.v2.models.InstanceName; import com.google.cloud.bigtable.data.v2.models.Query; import com.google.cloud.bigtable.data.v2.models.Row; diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java index e92ff7333289..16356add2f9a 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java +++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java @@ -15,6 +15,7 @@ */ package com.google.cloud.bigtable.admin.v2; +import com.google.api.gax.core.CredentialsProvider; import com.google.bigtable.admin.v2.ProjectName; import com.google.cloud.bigtable.admin.v2.stub.BigtableInstanceAdminStubSettings; import com.google.common.base.Preconditions; @@ -34,12 +35,6 @@ * BigtableInstanceAdminSettings.Builder settingsBuilder = BigtableInstanceAdminSettings.newBuilder() * .setProjectId("my-project"); * - * settingsBuilder.stubSettings().createInstanceSettings() - * .setRetrySettings( - * RetrySettings.newBuilder() - * .setTotalTimeout(Duration.ofMinutes(15)) - * .build()); - * * BigtableInstanceAdminSettings settings = settingsBuilder.build(); * } */ @@ -61,17 +56,6 @@ public String getProjectId() { return projectId; } - /** - * Gets the name of the project whose instances the client will manager. - * - * @deprecated Please use {@link #getProjectId()}. - */ - @Deprecated - @Nonnull - public com.google.bigtable.admin.v2.ProjectName getProjectName() { - return ProjectName.of(projectId); - } - /** Gets the underlying RPC settings. */ @Nonnull public BigtableInstanceAdminStubSettings getStubSettings() { @@ -88,6 +72,15 @@ public static Builder newBuilder() { return new Builder(); } + // + /** @deprecated Please use {@link #getProjectId()}. */ + @Deprecated + @Nonnull + public com.google.bigtable.admin.v2.ProjectName getProjectName() { + return ProjectName.of(projectId); + } + // + /** Builder for BigtableInstanceAdminSettings. */ public static final class Builder { @Nullable private String projectId; @@ -115,28 +108,16 @@ public String getProjectId() { return projectId; } - /** - * Sets the name of instance whose tables the client will manage. - * - * @deprecated Please use {@link #setProjectId(String)}. - */ - @Deprecated - public Builder setProjectName(@Nonnull com.google.bigtable.admin.v2.ProjectName projectName) { - return setProjectId(projectName.getProject()); + /** 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 name of the project whose instances the client will manage. - * - * @deprecated Please use {@link #getProjectId()}. - */ - @Deprecated - @Nullable - public ProjectName getProjectName() { - if (projectId != null) { - return ProjectName.of(projectId); - } - return null; + /** Gets the CredentialsProvider to use for getting the credentials to make calls with. */ + public CredentialsProvider getCredentialsProvider() { + return stubSettings.getCredentialsProvider(); } /** @@ -153,5 +134,23 @@ public BigtableInstanceAdminStubSettings.Builder stubSettings() { public BigtableInstanceAdminSettings build() throws IOException { return new BigtableInstanceAdminSettings(this); } + + // + /** @deprecated Please use {@link #setProjectId(String)}. */ + @Deprecated + public Builder setProjectName(@Nonnull com.google.bigtable.admin.v2.ProjectName projectName) { + return setProjectId(projectName.getProject()); + } + + /** @deprecated Please use {@link #getProjectId()}. */ + @Deprecated + @Nullable + public ProjectName getProjectName() { + if (projectId != null) { + return ProjectName.of(projectId); + } + return null; + } + // } } diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java index f613bf3f7369..c487eb0a5598 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java +++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java @@ -15,9 +15,14 @@ */ package com.google.cloud.bigtable.admin.v2; +import com.google.api.core.ApiFunction; +import com.google.api.gax.core.CredentialsProvider; +import com.google.api.gax.core.NoCredentialsProvider; import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStubSettings; +import com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStubSettings; import com.google.common.base.Preconditions; import com.google.common.base.Verify; +import io.grpc.ManagedChannelBuilder; import java.io.IOException; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -34,12 +39,6 @@ * .setProjectId("my-project") * .setInstanceId("my-instance"); * - * tableAdminSettingsBuilder.stubSettings().createTableSettings() - * .setRetrySettings( - * RetrySettings.newBuilder() - * .setTotalTimeout(Duration.ofMinutes(15)) - * .build()); - * * BigtableTableAdminSettings tableAdminSettings = tableAdminSettingsBuilder.build(); * } */ @@ -65,17 +64,6 @@ public String getInstanceId() { return instanceId; } - /** - * Gets the name of instance whose tables the client will manage. - * - * @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}. - */ - @Deprecated - @Nonnull - public com.google.bigtable.admin.v2.InstanceName getInstanceName() { - return com.google.bigtable.admin.v2.InstanceName.of(projectId, instanceId); - } - /** Gets the underlying RPC settings. */ public BigtableTableAdminStubSettings getStubSettings() { return stubSettings; @@ -91,6 +79,38 @@ public static Builder newBuilder() { return new Builder(); } + /** Create a new builder preconfigured to connect to the Bigtable emulator. */ + public static Builder newBuilderForEmulator(int port) { + Builder builder = newBuilder().setProjectId("fake-project").setInstanceId("fake-instance"); + + builder + .stubSettings() + .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; + } + + // + /** @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}. */ + @Deprecated + @Nonnull + public com.google.bigtable.admin.v2.InstanceName getInstanceName() { + return com.google.bigtable.admin.v2.InstanceName.of(projectId, instanceId); + } + // + /** Builder for BigtableTableAdminSettings. */ public static final class Builder { @Nullable private String projectId; @@ -133,11 +153,34 @@ public String getInstanceId() { return instanceId; } + /** 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(); + } + /** - * Sets the name of instance whose tables the client will manage. + * Returns the builder for the settings used for all RPCs. * - * @deprecated Please use {@link #setProjectId(String)} and {@link #setInstanceId(String)}. + *

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); + } + + // + /** @deprecated Please use {@link #setProjectId(String)} and {@link #setInstanceId(String)}. */ @Deprecated public Builder setInstanceName( @Nonnull com.google.bigtable.admin.v2.InstanceName instanceName) { @@ -147,11 +190,7 @@ public Builder setInstanceName( return this; } - /** - * Gets the name of instance whose tables the client will manage. - * - * @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}. - */ + /** @deprecated Please use {@link #getProjectId()} and {@link #getInstanceId()}. */ @Deprecated @Nullable public com.google.bigtable.admin.v2.InstanceName getInstanceName() { @@ -160,20 +199,6 @@ public com.google.bigtable.admin.v2.InstanceName getInstanceName() { } return null; } - - /** - * Returns the builder for the settings used for all RPCs. - * - *

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); - } + // } } diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClient.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClient.java index aa1084b6ff1a..18ae33554ee3 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClient.java +++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClient.java @@ -127,13 +127,16 @@ public static BigtableDataClient create(String projectId, String instanceId) thr } /** - * Constructs an instance of BigtableDataClient with default settings. - * - * @param instanceName The instance to connect to. - * @return A new client. - * @throws IOException If any. - * @deprecated Please use {@link #create(String, String)}. + * Constructs an instance of BigtableDataClient, using the given settings. The channels are + * created based on the settings passed in, or defaults for any settings that are not set. */ + public static BigtableDataClient create(BigtableDataSettings settings) throws IOException { + EnhancedBigtableStub stub = EnhancedBigtableStub.create(settings.getStubSettings()); + return new BigtableDataClient(stub); + } + + // + /** @deprecated Please use {@link #create(String, String)}. */ @Deprecated public static BigtableDataClient create( com.google.cloud.bigtable.data.v2.models.InstanceName instanceName) throws IOException { @@ -141,15 +144,7 @@ public static BigtableDataClient create( BigtableDataSettings.newBuilder().setInstanceName(instanceName).build(); return create(settings); } - - /** - * Constructs an instance of BigtableDataClient, using the given settings. The channels are - * created based on the settings passed in, or defaults for any settings that are not set. - */ - public static BigtableDataClient create(BigtableDataSettings settings) throws IOException { - EnhancedBigtableStub stub = EnhancedBigtableStub.create(settings.getTypedStubSettings()); - return new BigtableDataClient(stub); - } + // @InternalApi("Visible for testing") BigtableDataClient(EnhancedBigtableStub stub) { @@ -260,8 +255,7 @@ public Row readRow(String tableId, String rowKey, @Nullable Filter filter) { *

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