diff --git a/bigtable-client-core-parent/bigtable-hbase/pom.xml b/bigtable-client-core-parent/bigtable-hbase/pom.xml
index dfcf82e15e..7630e64a0b 100644
--- a/bigtable-client-core-parent/bigtable-hbase/pom.xml
+++ b/bigtable-client-core-parent/bigtable-hbase/pom.xml
@@ -137,6 +137,20 @@ limitations under the License.
maven-surefire-plugin
false
+
+
+ org.jspecify:jspecify
+
java.util.logging.config.file
@@ -178,6 +192,8 @@ limitations under the License.
+
+ org.slf4j:slf4j-api
log4j:log4j
diff --git a/bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/wrappers/veneer/metrics/MetricsApiTracerAdapter.java b/bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/wrappers/veneer/metrics/MetricsApiTracerAdapter.java
index 50ffb2794c..24832885cc 100644
--- a/bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/wrappers/veneer/metrics/MetricsApiTracerAdapter.java
+++ b/bigtable-client-core-parent/bigtable-hbase/src/main/java/com/google/cloud/bigtable/hbase/wrappers/veneer/metrics/MetricsApiTracerAdapter.java
@@ -61,7 +61,11 @@ public MetricsApiTracerAdapter(
this.rpcMetrics = rpcMetrics;
operationTimer = rpcMetrics.timeOperation();
lastRetryStatus = RetryStatus.PERMANENT_FAILURE;
- if (methodName.equals("ReadRows") && operationType == OperationType.ServerStreaming) {
+ // Track first-response latency for ReadRows. Historically ReadRows was always a
+ // ServerStreaming operation, but since google-cloud-bigtable 2.81.0 bounded
+ // single-row reads (e.g. an HBase point-scan) are traced as OperationType.Unary,
+ // so key off the method name alone rather than the operation type.
+ if (methodName.equals("ReadRows")) {
this.firstResponseTimer = firstResponseLatencyTimer.time();
}
firstResponseRecorded = new AtomicBoolean(false);
diff --git a/bigtable-client-core-parent/bigtable-hbase/src/test/java/com/google/cloud/bigtable/hbase/wrappers/veneer/TestBigtableHBaseVeneerSettings.java b/bigtable-client-core-parent/bigtable-hbase/src/test/java/com/google/cloud/bigtable/hbase/wrappers/veneer/TestBigtableHBaseVeneerSettings.java
index 53c37f0f4e..09b70070af 100644
--- a/bigtable-client-core-parent/bigtable-hbase/src/test/java/com/google/cloud/bigtable/hbase/wrappers/veneer/TestBigtableHBaseVeneerSettings.java
+++ b/bigtable-client-core-parent/bigtable-hbase/src/test/java/com/google/cloud/bigtable/hbase/wrappers/veneer/TestBigtableHBaseVeneerSettings.java
@@ -100,7 +100,12 @@ public void testDataSettingsBasicKeys() throws IOException {
String appProfileId = "appProfileId";
String userAgent = "test-user-agent";
String fakeTracingCookie = "fake-tracing-cookie";
- Credentials credentials = Mockito.mock(Credentials.class);
+ // withoutAnnotations(): com.google.auth.Credentials carries jspecify TYPE_USE
+ // nullness annotations. On Java 8, byte-buddy reading them while building the
+ // mock hits a JDK bug (NPE in sun.reflect.annotation.TypeAnnotationParser), so
+ // tell Mockito not to copy annotations onto the generated mock.
+ Credentials credentials =
+ Mockito.mock(Credentials.class, Mockito.withSettings().withoutAnnotations());
configuration.set(BIGTABLE_PORT_KEY, String.valueOf(TEST_PORT));
configuration.set(APP_PROFILE_ID_KEY, appProfileId);
@@ -161,7 +166,12 @@ public void testAdminSettingsBasicKeys() throws IOException {
String adminHost = "testadmin.example.com";
String userAgent = "test-user-agent";
String fakeTracingCookie = "fake-tracing-cookie";
- Credentials credentials = Mockito.mock(Credentials.class);
+ // withoutAnnotations(): com.google.auth.Credentials carries jspecify TYPE_USE
+ // nullness annotations. On Java 8, byte-buddy reading them while building the
+ // mock hits a JDK bug (NPE in sun.reflect.annotation.TypeAnnotationParser), so
+ // tell Mockito not to copy annotations onto the generated mock.
+ Credentials credentials =
+ Mockito.mock(Credentials.class, Mockito.withSettings().withoutAnnotations());
configuration.set(BIGTABLE_ADMIN_HOST_KEY, adminHost);
configuration.setInt(BIGTABLE_PORT_KEY, TEST_PORT);
diff --git a/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-hadoop/pom.xml b/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-hadoop/pom.xml
index a34ad43fcf..4d2b52e0f5 100644
--- a/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-hadoop/pom.xml
+++ b/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-hadoop/pom.xml
@@ -209,6 +209,8 @@ limitations under the License.
org.apache.hbase:hbase-client
+
+ org.slf4j:slf4j-api
log4j:log4j
junit:junit
diff --git a/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-mapreduce/pom.xml b/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-mapreduce/pom.xml
index 9bec7fe076..e62a98e9d9 100644
--- a/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-mapreduce/pom.xml
+++ b/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-mapreduce/pom.xml
@@ -201,6 +201,8 @@ limitations under the License.
+
+ org.slf4j:slf4j-api
junit:junit
org.hamcrest:hamcrest-core
diff --git a/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-shaded/pom.xml b/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-shaded/pom.xml
index b9e97ac088..b030dbeee8 100644
--- a/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-shaded/pom.xml
+++ b/bigtable-hbase-1.x-parent/bigtable-hbase-1.x-shaded/pom.xml
@@ -56,13 +56,13 @@ limitations under the License.
org.conscrypt
conscrypt-openjdk-uber
- 2.5.2
+ ${conscrypt.version}
provided
org.conscrypt
conscrypt-openjdk
- 2.5.2
+ ${conscrypt.version}
provided
@@ -244,6 +244,16 @@ limitations under the License.
META-INF/DEPENDENCIES
META-INF/versions/9/module-info.class
META-INF/versions/11/module-info.class
+
+ META-INF/versions/*/com/fasterxml/**
@@ -426,6 +436,8 @@ limitations under the License.
org.apache.hbase:hbase-shaded-client
+
+ org.slf4j:slf4j-api
log4j:log4j
diff --git a/bigtable-hbase-1.x-parent/bigtable-hbase-1.x/pom.xml b/bigtable-hbase-1.x-parent/bigtable-hbase-1.x/pom.xml
index 8153d9cf9c..ee8d71fc02 100644
--- a/bigtable-hbase-1.x-parent/bigtable-hbase-1.x/pom.xml
+++ b/bigtable-hbase-1.x-parent/bigtable-hbase-1.x/pom.xml
@@ -160,6 +160,8 @@ limitations under the License.
+
+ org.slf4j:slf4j-api
log4j:log4j
diff --git a/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-hadoop/pom.xml b/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-hadoop/pom.xml
index aeaded71d6..1684f76c39 100644
--- a/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-hadoop/pom.xml
+++ b/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-hadoop/pom.xml
@@ -193,6 +193,8 @@ limitations under the License.
org.apache.hbase:hbase-client
+
+ org.slf4j:slf4j-api
log4j:log4j
diff --git a/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-mapreduce/pom.xml b/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-mapreduce/pom.xml
index 6e68e83f8f..f8ca938e8d 100644
--- a/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-mapreduce/pom.xml
+++ b/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-mapreduce/pom.xml
@@ -190,6 +190,8 @@ limitations under the License.
+
+ org.slf4j:slf4j-api
javax.activation:activation
javax.xml.bind:jaxb-api
javax.xml.stream:stax-api
diff --git a/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-shaded/pom.xml b/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-shaded/pom.xml
index 7a3d590a93..0c2d00faf4 100644
--- a/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-shaded/pom.xml
+++ b/bigtable-hbase-2.x-parent/bigtable-hbase-2.x-shaded/pom.xml
@@ -56,13 +56,13 @@ limitations under the License.
org.conscrypt
conscrypt-openjdk-uber
- 2.5.2
+ ${conscrypt.version}
provided
org.conscrypt
conscrypt-openjdk
- 2.5.2
+ ${conscrypt.version}
provided
@@ -236,6 +236,16 @@ limitations under the License.
META-INF/DEPENDENCIES
META-INF/versions/9/module-info.class
META-INF/versions/11/module-info.class
+
+ META-INF/versions/*/com/fasterxml/**
@@ -422,6 +432,8 @@ limitations under the License.
+
+ org.slf4j:slf4j-api
io.opentelemetry:opentelemetry-api
io.opentelemetry:opentelemetry-context
io.opentelemetry:opentelemetry-semconv
diff --git a/bigtable-hbase-2.x-parent/bigtable-hbase-2.x/pom.xml b/bigtable-hbase-2.x-parent/bigtable-hbase-2.x/pom.xml
index 07529f1aca..c0f4867ab7 100644
--- a/bigtable-hbase-2.x-parent/bigtable-hbase-2.x/pom.xml
+++ b/bigtable-hbase-2.x-parent/bigtable-hbase-2.x/pom.xml
@@ -182,6 +182,8 @@ limitations under the License.
org.apache.hbase:hbase-shaded-client
+
+ org.slf4j:slf4j-api
io.opentelemetry:opentelemetry-api
io.opentelemetry:opentelemetry-context
io.opentelemetry:opentelemetry-semconv
diff --git a/hbase-migration-tools/bigtable-hbase-replication/bigtable-hbase-1.x-replication/pom.xml b/hbase-migration-tools/bigtable-hbase-replication/bigtable-hbase-1.x-replication/pom.xml
index b7cb9d446b..0dabd4210f 100644
--- a/hbase-migration-tools/bigtable-hbase-replication/bigtable-hbase-1.x-replication/pom.xml
+++ b/hbase-migration-tools/bigtable-hbase-replication/bigtable-hbase-1.x-replication/pom.xml
@@ -49,6 +49,10 @@ limitations under the License.
org.apache.hbase:hbase-server
+
+
+ org.slf4j:slf4j-api
+
diff --git a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-1.x-parent/bigtable-hbase-mirroring-client-1.x-shaded/pom.xml b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-1.x-parent/bigtable-hbase-mirroring-client-1.x-shaded/pom.xml
index d0604af769..5f1bdc10cc 100644
--- a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-1.x-parent/bigtable-hbase-mirroring-client-1.x-shaded/pom.xml
+++ b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-1.x-parent/bigtable-hbase-mirroring-client-1.x-shaded/pom.xml
@@ -187,6 +187,8 @@ limitations under the License.
org.apache.hbase:hbase-shaded-client
+
+ org.slf4j:slf4j-api
log4j:log4j
@@ -223,6 +225,8 @@ limitations under the License.
org.apache.hbase:hbase-shaded-client
+
+ org.slf4j:slf4j-api
log4j:log4j
diff --git a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-1.x-parent/bigtable-hbase-mirroring-client-1.x/pom.xml b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-1.x-parent/bigtable-hbase-mirroring-client-1.x/pom.xml
index 87dbf20b24..019ffa12a1 100644
--- a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-1.x-parent/bigtable-hbase-mirroring-client-1.x/pom.xml
+++ b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-1.x-parent/bigtable-hbase-mirroring-client-1.x/pom.xml
@@ -128,6 +128,8 @@ limitations under the License.
+
+ org.slf4j:slf4j-api
log4j:log4j
diff --git a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x-hadoop/pom.xml b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x-hadoop/pom.xml
index 2c8973fe19..c082346e2c 100644
--- a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x-hadoop/pom.xml
+++ b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x-hadoop/pom.xml
@@ -201,6 +201,8 @@ limitations under the License.
we are using that version -->
commons-logging:commons-logging
+
+ org.slf4j:slf4j-api
log4j:log4j
diff --git a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x-shaded/pom.xml b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x-shaded/pom.xml
index 9ebe41cb78..8c0c81f30b 100644
--- a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x-shaded/pom.xml
+++ b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x-shaded/pom.xml
@@ -198,6 +198,10 @@ limitations under the License.
org.apache.hbase:hbase-shaded-client
+
+
+ org.slf4j:slf4j-api
+
diff --git a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x/pom.xml b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x/pom.xml
index f49e6d61cd..b7cceea38a 100644
--- a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x/pom.xml
+++ b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-2.x-parent/bigtable-hbase-mirroring-client-2.x/pom.xml
@@ -122,6 +122,8 @@ limitations under the License.
org.apache.hbase:hbase-shaded-client
+
+ org.slf4j:slf4j-api
diff --git a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-core-parent/bigtable-hbase-mirroring-client-core/pom.xml b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-core-parent/bigtable-hbase-mirroring-client-core/pom.xml
index 3a95302509..45e8bc7054 100644
--- a/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-core-parent/bigtable-hbase-mirroring-client-core/pom.xml
+++ b/hbase-migration-tools/mirroring-client/bigtable-hbase-mirroring-client-core-parent/bigtable-hbase-mirroring-client-core/pom.xml
@@ -146,6 +146,8 @@ limitations under the License.
+
+ org.slf4j:slf4j-api
log4j:log4j
diff --git a/pom.xml b/pom.xml
index e8a180da60..9f55dd5dbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,12 +55,17 @@ limitations under the License.
UTF-8
- 2.77.0
- 0.214.0
+ 2.81.0
+ 0.218.0
1.29.2
4.2.22
+
+ 2.0.16
+ 2.6.0
+
1.2.24
@@ -93,6 +98,19 @@ limitations under the License.
1.8
+
+
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+
+
scm:git:git@github.com:googleapis/java-bigtable-hbase.git
@@ -173,8 +191,12 @@ limitations under the License.
org.apache.maven.plugins
maven-shade-plugin
-
- 3.2.4
+
+ 3.6.0
org.apache.maven.plugins