() {
- @Override
- public ManagedChannelBuilder apply(ManagedChannelBuilder input) {
- return input.usePlaintext();
- }
- })
+ .setChannelPoolSettings(ChannelPoolSettings.staticallySized(1))
+ .setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
.setKeepAliveTime(Duration.ofSeconds(61)) // sends ping in this interval
.setKeepAliveTimeout(
Duration.ofSeconds(10)) // wait this long before considering the connection dead
@@ -244,8 +240,12 @@ public String getAppProfileId() {
return stubSettings.getAppProfileId();
}
- /** Gets if channels will gracefully refresh connections to Cloud Bigtable service */
- @BetaApi("Channel priming is not currently stable and may change in the future")
+ /**
+ * Gets if channels will gracefully refresh connections to Cloud Bigtable service
+ *
+ * @deprecated Channel refreshing is enabled by default and this method will be deprecated.
+ */
+ @Deprecated
public boolean isRefreshingChannel() {
return stubSettings.isRefreshingChannel();
}
@@ -395,19 +395,25 @@ public CredentialsProvider getCredentialsProvider() {
/**
* Configure periodic gRPC channel refreshes.
*
- * This feature will gracefully refresh connections to the Cloud Bigtable service. This is an
- * experimental feature to address tail latency caused by the service dropping long lived gRPC
- * connections, which causes the client to renegotiate the gRPC connection in the request path,
- * which causes periodic spikes in latency
+ *
This feature will gracefully refresh connections to the Cloud Bigtable service. This is a
+ * feature to address tail latency caused by the service dropping long lived gRPC connections,
+ * which causes the client to renegotiate the gRPC connection in the request path, which causes
+ * periodic spikes in latency.
+ *
+ * @deprecated Channel refreshing is enabled by default and this method will be deprecated.
*/
- @BetaApi("Channel priming is not currently stable and may change in the future")
+ @Deprecated
public Builder setRefreshingChannel(boolean isRefreshingChannel) {
stubSettings.setRefreshingChannel(isRefreshingChannel);
return this;
}
- /** Gets if channels will gracefully refresh connections to Cloud Bigtable service */
- @BetaApi("Channel priming is not currently stable and may change in the future")
+ /**
+ * Gets if channels will gracefully refresh connections to Cloud Bigtable service.
+ *
+ * @deprecated Channel refreshing is enabled by default and this method will be deprecated.
+ */
+ @Deprecated
public boolean isRefreshingChannel() {
return stubSettings.isRefreshingChannel();
}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java
index 303f52a8e2..ecbef85be5 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java
@@ -51,6 +51,8 @@ static BigtableChannelPrimer create(
.setInstanceId(instanceId)
.setAppProfileId(appProfileId)
.setCredentialsProvider(FixedCredentialsProvider.create(credentials))
+ // Disable refreshing channel here to avoid creating settings in a loop
+ .setRefreshingChannel(false)
.setExecutorProvider(
InstantiatingExecutorProvider.newBuilder().setExecutorThreadCount(1).build());
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java
index f2ae486d9e..c78bdafbf3 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java
+++ b/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.BetaApi;
import com.google.api.core.InternalApi;
import com.google.api.gax.batching.BatchingCallSettings;
import com.google.api.gax.batching.BatchingSettings;
@@ -236,8 +235,12 @@ public String getAppProfileId() {
return appProfileId;
}
- /** Returns if channels will gracefully refresh connections to Cloud Bigtable service */
- @BetaApi("This API depends on experimental gRPC APIs")
+ /**
+ * Returns if channels will gracefully refresh connections to Cloud Bigtable service
+ *
+ * @deprecated Channel refreshing is enabled by default and this method will be deprecated.
+ */
+ @Deprecated
public boolean isRefreshingChannel() {
return isRefreshingChannel;
}
@@ -545,7 +548,7 @@ public static class Builder extends StubSettings.BuilderWhen enabled, this will wait for the connection to complete the SSL handshake and warm up
- * serverside caches for all the tables of the instance.
+ * serverside caches for all the tables of the instance. This feature is enabled by default.
*
* @see com.google.cloud.bigtable.data.v2.BigtableDataSettings.Builder#setRefreshingChannel
+ * @deprecated Channel refreshing is enabled by default and this method will be deprecated.
*/
- @BetaApi("This API depends on experimental gRPC APIs")
+ @Deprecated
public Builder setRefreshingChannel(boolean isRefreshingChannel) {
this.isRefreshingChannel = isRefreshingChannel;
return this;
@@ -777,8 +781,12 @@ public Builder setPrimedTableIds(String... tableIds) {
return this;
}
- /** Gets if channels will gracefully refresh connections to Cloud Bigtable service */
- @BetaApi("This API depends on experimental gRPC APIs")
+ /**
+ * Gets if channels will gracefully refresh connections to Cloud Bigtable service.
+ *
+ * @deprecated Channel refreshing is enabled by default and this method will be deprecated.
+ */
+ @Deprecated
public boolean isRefreshingChannel() {
return isRefreshingChannel;
}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsAttemptCallable.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsAttemptCallable.java
index de2bf6224f..36c2930bda 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsAttemptCallable.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsAttemptCallable.java
@@ -169,7 +169,8 @@ public Void call() {
// variables in ApiTracer and avoid exceptions when the tracer marks the attempt as finished
callContext
.getTracer()
- .attemptStarted(externalFuture.getAttemptSettings().getOverallAttemptCount());
+ .attemptStarted(
+ currentRequest, externalFuture.getAttemptSettings().getOverallAttemptCount());
Preconditions.checkState(
currentRequest.getEntriesCount() > 0, "Request doesn't have any mutations to send");
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/BigtableDataSettingsTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/BigtableDataSettingsTest.java
index 2b95bf821f..de4fbe92fc 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/BigtableDataSettingsTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/BigtableDataSettingsTest.java
@@ -33,6 +33,9 @@ public void testToString() {
.setInstanceId("our-instance-85")
.setAppProfileId("our-appProfile-06")
.enableBatchMutationLatencyBasedThrottling(10)
+ // disable channel priming so we won't need authentication
+ // for sending the prime request since we're only testing the settings.
+ .setRefreshingChannel(false)
.build();
EnhancedBigtableStubSettings stubSettings = settings.getStubSettings();
assertThat(settings.toString())
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubCloseTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubCloseTest.java
index 597b109b0b..e918378691 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubCloseTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubCloseTest.java
@@ -65,7 +65,6 @@ public void setUp() throws Exception {
.setProjectId(PROJECT_ID)
.setInstanceId(INSTANCE_ID)
.setCredentialsProvider(NoCredentialsProvider.create())
- .setRefreshingChannel(false)
.build()
.getStubSettings();
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettingsTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettingsTest.java
index d5a22884b6..466355f892 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettingsTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettingsTest.java
@@ -185,7 +185,10 @@ public void readRowsIsNotLostTest() {
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
- .setInstanceId(dummyInstanceId);
+ .setInstanceId(dummyInstanceId)
+ // Here and everywhere in this test, disable channel priming so we won't need
+ // authentication for sending the prime request since we're only testing the settings.
+ .setRefreshingChannel(false);
RetrySettings retrySettings =
RetrySettings.newBuilder()
@@ -243,7 +246,8 @@ public void readRowIsNotLostTest() {
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId("my-project")
- .setInstanceId("my-instance");
+ .setInstanceId("my-instance")
+ .setRefreshingChannel(false);
RetrySettings retrySettings =
RetrySettings.newBuilder()
@@ -295,7 +299,8 @@ public void readRowRetryCodesMustMatch() {
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId("my-project")
- .setInstanceId("my-instance");
+ .setInstanceId("my-instance")
+ .setRefreshingChannel(false);
builder.readRowsSettings().setRetryableCodes(Code.DEADLINE_EXCEEDED);
@@ -329,7 +334,8 @@ public void sampleRowKeysSettingsAreNotLostTest() {
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
- .setInstanceId(dummyInstanceId);
+ .setInstanceId(dummyInstanceId)
+ .setRefreshingChannel(false);
RetrySettings retrySettings =
RetrySettings.newBuilder()
@@ -376,7 +382,8 @@ public void mutateRowSettingsAreNotLostTest() {
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
- .setInstanceId(dummyInstanceId);
+ .setInstanceId(dummyInstanceId)
+ .setRefreshingChannel(false);
RetrySettings retrySettings =
RetrySettings.newBuilder()
@@ -423,7 +430,8 @@ public void bulkMutateRowsSettingsAreNotLostTest() {
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
- .setInstanceId(dummyInstanceId);
+ .setInstanceId(dummyInstanceId)
+ .setRefreshingChannel(false);
assertThat(builder.bulkMutateRowsSettings().isLatencyBasedThrottlingEnabled()).isFalse();
@@ -536,7 +544,8 @@ public void bulkReadRowsSettingsAreNotLostTest() {
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
- .setInstanceId(dummyInstanceId);
+ .setInstanceId(dummyInstanceId)
+ .setRefreshingChannel(false);
RetrySettings retrySettings =
RetrySettings.newBuilder()
@@ -611,7 +620,8 @@ public void checkAndMutateRowSettingsAreNotLostTest() {
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
- .setInstanceId(dummyInstanceId);
+ .setInstanceId(dummyInstanceId)
+ .setRefreshingChannel(false);
RetrySettings retrySettings = RetrySettings.newBuilder().build();
builder
@@ -677,9 +687,7 @@ public void isRefreshingChannelDefaultValueTest() {
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
.setInstanceId(dummyInstanceId);
- assertThat(builder.isRefreshingChannel()).isFalse();
- assertThat(builder.build().isRefreshingChannel()).isFalse();
- assertThat(builder.build().toBuilder().isRefreshingChannel()).isFalse();
+ assertThat(builder.isRefreshingChannel()).isTrue();
}
@Test
@@ -721,6 +729,7 @@ public void testToString() {
.setProjectId("our-project-85")
.setInstanceId("our-instance-06")
.setAppProfileId("our-appProfile-06")
+ .setRefreshingChannel(false)
.build();
checkToString(defaultSettings);
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java
index 8176435f15..16100ad044 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java
@@ -162,7 +162,6 @@ public void testJwtAudience()
.setCredentialsProvider(FixedCredentialsProvider.create(jwtCreds))
.build();
enhancedBigtableStub = EnhancedBigtableStub.create(settings);
-
// Send rpc and grab the credentials sent
enhancedBigtableStub.readRowCallable().futureCall(Query.create("fake-table")).get();
Metadata metadata = metadataInterceptor.headers.take();
@@ -208,6 +207,9 @@ public void testBatchJwtAudience()
.setTransportChannelProvider(
FixedTransportChannelProvider.create(
GrpcTransportChannel.create(emulatorChannel)))
+ // Channel refreshing doesn't work with FixedTransportChannelProvider. Disable it for
+ // the test
+ .setRefreshingChannel(false)
.build();
enhancedBigtableStub = EnhancedBigtableStub.create(settings);
// Send rpc and grab the credentials sent
@@ -342,7 +344,7 @@ public void export(Collection collection) {
@Test
public void testBulkMutationFlowControllerConfigured() throws Exception {
BigtableDataSettings.Builder settings =
- BigtableDataSettings.newBuilder()
+ BigtableDataSettings.newBuilderForEmulator(server.getPort())
.setProjectId("my-project")
.setInstanceId("my-instance")
.setCredentialsProvider(defaultSettings.getCredentialsProvider())
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/HeadersTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/HeadersTest.java
index f1655e2880..020c0a1c27 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/HeadersTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/HeadersTest.java
@@ -233,6 +233,7 @@ public void checkAndMutateRow(
CheckAndMutateRowRequest request,
StreamObserver responseObserver) {
responseObserver.onNext(CheckAndMutateRowResponse.getDefaultInstance());
+ responseObserver.onCompleted();
}
@Override
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsRetryTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsRetryTest.java
index 19ab6413a0..5d15dd5219 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsRetryTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsRetryTest.java
@@ -69,6 +69,8 @@ public void setUp() throws IOException {
.setTransportChannelProvider(
FixedTransportChannelProvider.create(
GrpcTransportChannel.create(serverRule.getChannel())))
+ // channel priming doesn't work with FixedTransportChannelProvider. Disable it for the test
+ .setRefreshingChannel(false)
.build();
this.client = BigtableDataClient.create(settings.build());
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
index 54a3af5cf5..0f9ad21fa0 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
@@ -81,6 +81,8 @@ public void setUp() throws IOException {
.setTransportChannelProvider(
FixedTransportChannelProvider.create(
GrpcTransportChannel.create(serverRule.getChannel())))
+ // Refreshing channel doesn't work with FixedTransportChannelProvider
+ .setRefreshingChannel(false)
.build();
client = BigtableDataClient.create(settings.build());
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java
index ba0fda8b2c..f1308f3520 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java
@@ -120,7 +120,10 @@ private CloudEnv(
this.kmsKeyName = kmsKeyName;
this.dataSettings =
- BigtableDataSettings.newBuilder().setProjectId(projectId).setInstanceId(instanceId);
+ BigtableDataSettings.newBuilder()
+ .setProjectId(projectId)
+ .setInstanceId(instanceId)
+ .setRefreshingChannel(false);
if (!Strings.isNullOrEmpty(dataEndpoint)) {
dataSettings.stubSettings().setEndpoint(dataEndpoint);
}
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/EmulatorEnv.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/EmulatorEnv.java
index e4b0a26515..bec3e0eef2 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/EmulatorEnv.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/EmulatorEnv.java
@@ -61,6 +61,7 @@ void start() throws Exception {
BigtableDataSettings.newBuilderForEmulator(emulator.getPort())
.setProjectId("fake-project")
.setInstanceId("fake-instance")
+ .setRefreshingChannel(false)
.build();
dataClient = BigtableDataClient.create(dataSettings);
diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml
index 8a842f6959..1d7181947b 100644
--- a/grpc-google-cloud-bigtable-admin-v2/pom.xml
+++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-bigtable-admin-v2
- 2.17.1
+ 2.18.0
grpc-google-cloud-bigtable-admin-v2
GRPC library for grpc-google-cloud-bigtable-admin-v2
com.google.cloud
google-cloud-bigtable-parent
- 2.17.1
+ 2.18.0
@@ -18,14 +18,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.17.1
+ 2.18.0
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.17.1
+ 2.18.0
pom
import
diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml
index 3f2b256609..8ae439dbb5 100644
--- a/grpc-google-cloud-bigtable-v2/pom.xml
+++ b/grpc-google-cloud-bigtable-v2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-bigtable-v2
- 2.17.1
+ 2.18.0
grpc-google-cloud-bigtable-v2
GRPC library for grpc-google-cloud-bigtable-v2
com.google.cloud
google-cloud-bigtable-parent
- 2.17.1
+ 2.18.0
@@ -18,14 +18,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.17.1
+ 2.18.0
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.17.1
+ 2.18.0
pom
import
diff --git a/pom.xml b/pom.xml
index afeee0d024..37078e2b54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
google-cloud-bigtable-parent
pom
- 2.17.1
+ 2.18.0
Google Cloud Bigtable Parent
https://github.com/googleapis/java-bigtable
@@ -153,27 +153,27 @@
com.google.api.grpc
proto-google-cloud-bigtable-v2
- 2.17.1
+ 2.18.0
com.google.api.grpc
proto-google-cloud-bigtable-admin-v2
- 2.17.1
+ 2.18.0
com.google.api.grpc
grpc-google-cloud-bigtable-v2
- 2.17.1
+ 2.18.0
com.google.api.grpc
grpc-google-cloud-bigtable-admin-v2
- 2.17.1
+ 2.18.0
com.google.cloud
google-cloud-bigtable
- 2.17.1
+ 2.18.0
@@ -207,7 +207,7 @@
org.mockito
mockito-core
- 4.9.0
+ 4.11.0
@@ -245,6 +245,7 @@
+
none
protected
true
@@ -318,6 +319,7 @@
maven-javadoc-plugin
3.4.1
+
com.microsoft.doclet.DocFxDoclet
false
${env.KOKORO_GFILE_DIR}/java-docfx-doclet-1.5.0.jar
@@ -325,9 +327,18 @@
-outputpath ${project.build.directory}/docfx-yml
-projectname ${artifactId}
- -excludeclasses com\.google\.cloud\.bigtable\.admin\.v2\.internal\.:com\.google\.cloud\.bigtable\.admin\.v2\.BaseBigtableInstanceAdminClient:com\.google\.cloud\.bigtable\.admin\.v2\.BaseBigtableInstanceAdminSettings:com\.google\.cloud\.bigtable\.admin\.v2\.stub\.GrpcBigtableInstanceAdminCallableFactory:com\.google\.cloud\.bigtable\.admin\.v2\.stub\.GrpcBigtableInstanceAdminStub:com\.google\.cloud\.bigtable\.admin\.v2\.stub\.BigtableInstanceAdminStub:com\.google\.cloud\.bigtable\.admin\.v2\.BaseBigtableTableAdminClient:com\.google\.cloud\.bigtable\.admin\.v2\.BaseBigtableTableAdminSettings:com\.google\.cloud\.bigtable\.admin\.v2\.stub\.GrpcBigtableTableAdminCallableFactory:com\.google\.cloud\.bigtable\.admin\.v2\.stub\.GrpcBigtableTableAdminStub:com\.google\.cloud\.bigtable\.admin\.v2\.stub\.BigtableTableAdminStub:com\.google\.cloud\.bigtable\.admin\.v2\.stub\.EnhancedBigtableTableAdminStub:com\.google\.cloud\.bigtable\.data\.v2\.internal\.:com\.google\.cloud\.bigtable\.data\.v2\.BaseBigtableDataClient:com\.google\.cloud\.bigtable\.data\.v2\.BaseBigtableDataSettings:com\.google\.cloud\.bigtable\.data\.v2\.stub\.BigtableStub:com\.google\.cloud\.bigtable\.data\.v2\.stub\.BigtableStubSettings:com\.google\.cloud\.bigtable\.data\.v2\.stub\.GrpcBigtableStub:com\.google\.cloud\.bigtable\.data\.v2\.stub\.GrpcBigtableCallableFactory:com\.google\.cloud\.bigtable\.data\.v2\.stub\.EnhancedBigtableStub:com\.google\.cloud\.bigtable\.data\.v2\.stub\.mutaterows\.:com\.google\.cloud\.bigtable\.data\.v2\.stub\.readrows\.:com\.google\.cloud\.bigtable\.data\.v2\.stub\.metrics\.
+
+ -excludeclasses com\.google\.cloud\.bigtable\.admin\.v2\.(internal\.|(Base.*).*|stub\.(?!Bigtable.*StubSettings).*):com\.google\.cloud\.bigtable\.data\.v2\.(internal\.|(Base.*).*|stub\.(?!Enhanced.*StubSettings).*)
+
+ -excludepackages com\.google\.(bigtable\.v2|bigtable\.admin\.v2|cloud\.bigtable\.stats)
+
aggregate
diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml
index 76825ef41a..632ca26f37 100644
--- a/proto-google-cloud-bigtable-admin-v2/pom.xml
+++ b/proto-google-cloud-bigtable-admin-v2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-bigtable-admin-v2
- 2.17.1
+ 2.18.0
proto-google-cloud-bigtable-admin-v2
PROTO library for proto-google-cloud-bigtable-admin-v2
com.google.cloud
google-cloud-bigtable-parent
- 2.17.1
+ 2.18.0
@@ -18,14 +18,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.17.1
+ 2.18.0
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.17.1
+ 2.18.0
pom
import
diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml
index 99ae44e02a..d7a0469bf5 100644
--- a/proto-google-cloud-bigtable-v2/pom.xml
+++ b/proto-google-cloud-bigtable-v2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-bigtable-v2
- 2.17.1
+ 2.18.0
proto-google-cloud-bigtable-v2
PROTO library for proto-google-cloud-bigtable-v2
com.google.cloud
google-cloud-bigtable-parent
- 2.17.1
+ 2.18.0
@@ -18,14 +18,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.17.1
+ 2.18.0
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.17.1
+ 2.18.0
pom
import
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index 656b7cf8ed..fabaaf998c 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -29,7 +29,7 @@
com.google.cloud
google-cloud-bigtable
- 2.17.0
+ 2.17.1
diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml
index 1bf3a9e595..34746b6234 100644
--- a/samples/native-image-sample/pom.xml
+++ b/samples/native-image-sample/pom.xml
@@ -29,7 +29,7 @@
com.google.cloud
libraries-bom
- 26.1.5
+ 26.3.0
pom
import
@@ -83,7 +83,7 @@
org.junit.vintage
junit-vintage-engine
- 5.9.1
+ 5.9.2
test
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 69a5bf97aa..2d8357d423 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
com.google.cloud
google-cloud-bigtable
- 2.17.1
+ 2.18.0
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index 7083717877..6d31e3d7c9 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -30,7 +30,7 @@
com.google.cloud
libraries-bom
- 26.1.5
+ 26.3.0
pom
import
diff --git a/test-proxy/pom.xml b/test-proxy/pom.xml
index 23b3f8fe1e..f57dff1b42 100644
--- a/test-proxy/pom.xml
+++ b/test-proxy/pom.xml
@@ -12,11 +12,11 @@
google-cloud-bigtable-parent
com.google.cloud
- 2.17.1
+ 2.18.0
- 2.17.1
+ 2.18.0
diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java
index 18e9be1e92..54d02a7018 100644
--- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java
+++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java
@@ -49,10 +49,10 @@
import io.grpc.ManagedChannelBuilder;
import io.grpc.Status;
import io.grpc.StatusException;
-import io.grpc.netty.GrpcSslContexts;
-import io.grpc.netty.NettyChannelBuilder;
+import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts;
+import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder;
+import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext;
import io.grpc.stub.StreamObserver;
-import io.netty.handler.ssl.SslContext;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.io.IOException;
diff --git a/versions.txt b/versions.txt
index 057baba7fa..08cef370b7 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,10 +1,10 @@
# Format:
# module:released-version:current-version
-google-cloud-bigtable:2.17.1:2.17.1
-grpc-google-cloud-bigtable-admin-v2:2.17.1:2.17.1
-grpc-google-cloud-bigtable-v2:2.17.1:2.17.1
-proto-google-cloud-bigtable-admin-v2:2.17.1:2.17.1
-proto-google-cloud-bigtable-v2:2.17.1:2.17.1
-google-cloud-bigtable-emulator:0.154.1:0.154.1
-google-cloud-bigtable-emulator-core:2.17.1:2.17.1
+google-cloud-bigtable:2.18.0:2.18.0
+grpc-google-cloud-bigtable-admin-v2:2.18.0:2.18.0
+grpc-google-cloud-bigtable-v2:2.18.0:2.18.0
+proto-google-cloud-bigtable-admin-v2:2.18.0:2.18.0
+proto-google-cloud-bigtable-v2:2.18.0:2.18.0
+google-cloud-bigtable-emulator:0.155.0:0.155.0
+google-cloud-bigtable-emulator-core:2.18.0:2.18.0