diff --git a/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java b/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java index 461252ac2980..70d1c568ec95 100644 --- a/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java +++ b/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java @@ -18,8 +18,8 @@ import static com.google.cloud.datastore.Validator.validateNamespace; -import com.google.api.core.ApiFunction; import com.google.api.core.BetaApi; +import com.google.api.core.ObsoleteApi; import com.google.api.gax.grpc.ChannelPoolSettings; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; import com.google.api.gax.rpc.TransportChannelProvider; @@ -37,7 +37,6 @@ import com.google.cloud.http.HttpTransportOptions; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableSet; -import io.grpc.ManagedChannelBuilder; import java.io.IOException; import java.lang.reflect.Method; import java.util.Objects; @@ -54,9 +53,18 @@ public class DatastoreOptions extends ServiceOptions channelConfigurator = - this.traceUtil.getChannelConfigurator(); - if (channelConfigurator == null) { - this.channelProvider = - GrpcTransportOptions.setUpChannelProvider( - DatastoreSettings.defaultGrpcTransportProviderBuilder() - .setChannelPoolSettings(datastoreChannelPoolSettings), - this); - } else { + InstantiatingGrpcChannelProvider.Builder channelProviderBuilder = + DatastoreSettings.defaultGrpcTransportProviderBuilder() + .setChannelPoolSettings(datastoreChannelPoolSettings) + .setEndpoint(getHost()); + if (traceUtil.getChannelConfigurator() != null) { // Intercept the grpc channel calls to add telemetry info. - this.channelProvider = - GrpcTransportOptions.setUpChannelProvider( - DatastoreSettings.defaultGrpcTransportProviderBuilder() - .setChannelPoolSettings(datastoreChannelPoolSettings) - .setChannelConfigurator(channelConfigurator), - this); + channelProviderBuilder.setChannelConfigurator(traceUtil.getChannelConfigurator()); } + this.channelProvider = channelProviderBuilder.build(); } else { this.channelProvider = builder.channelProvider; } diff --git a/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/GrpcDatastoreRpc.java b/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/GrpcDatastoreRpc.java index cc5391dfee6a..f952dfdc9ef0 100644 --- a/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/GrpcDatastoreRpc.java +++ b/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/GrpcDatastoreRpc.java @@ -24,7 +24,6 @@ import com.google.api.core.InternalApi; import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.core.GaxProperties; -import com.google.api.gax.grpc.ChannelPoolSettings; import com.google.api.gax.grpc.GrpcCallContext; import com.google.api.gax.grpc.GrpcTransportChannel; import com.google.api.gax.rpc.ClientContext; @@ -80,14 +79,11 @@ public GrpcDatastoreRpc(DatastoreOptions datastoreOptions) throws IOException { DatastoreStubSettings.newBuilder(clientContext) .applyToAllUnaryMethods(retrySettingSetter(datastoreOptions)); if (!isEmulator(datastoreOptions)) { + // Use the TransportChannelProvider configured in DatastoreOptions. For gRPC transport, this + // will + // be configured with a default ChannelPool configuration datastoreStubSettingsBuilder.setTransportChannelProvider( - DatastoreSettings.defaultGrpcTransportProviderBuilder() - .setChannelPoolSettings( - ChannelPoolSettings.builder() - .setInitialChannelCount(DatastoreOptions.INIT_CHANNEL_COUNT) - .setMinChannelCount(DatastoreOptions.MIN_CHANNEL_COUNT) - .build()) - .build()); + datastoreOptions.getTransportChannelProvider()); } datastoreStub = GrpcDatastoreStub.create(datastoreStubSettingsBuilder.build()); diff --git a/java-datastore/google-cloud-datastore/src/test/java/com/google/cloud/datastore/DatastoreOptionsTest.java b/java-datastore/google-cloud-datastore/src/test/java/com/google/cloud/datastore/DatastoreOptionsTest.java index 9e1df1abe4ec..79e9ab965aa1 100644 --- a/java-datastore/google-cloud-datastore/src/test/java/com/google/cloud/datastore/DatastoreOptionsTest.java +++ b/java-datastore/google-cloud-datastore/src/test/java/com/google/cloud/datastore/DatastoreOptionsTest.java @@ -187,6 +187,9 @@ public void testGrpcDefaultChannelConfigurations() { assertEquals(channelPoolSettings.getInitialChannelCount(), DatastoreOptions.INIT_CHANNEL_COUNT); assertEquals(channelPoolSettings.getMinChannelCount(), DatastoreOptions.MIN_CHANNEL_COUNT); assertEquals(channelPoolSettings.getMaxChannelCount(), DEFAULT_MAX_CHANNEL_COUNT); + assertEquals( + channelPoolSettings.getMaxRpcsPerChannel(), + DatastoreOptions.CHANNEL_POOL_MAX_RPCS_PER_CHANNEL); } @Test