diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 4fdebf7e0a..c4cc443536 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- java: [11, 17]
+ java: [11, 17, 21]
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: actions/setup-java@v2
diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg
index bcdbba576b..28a65e0fea 100644
--- a/.kokoro/continuous/graalvm-native-17.cfg
+++ b/.kokoro/continuous/graalvm-native-17.cfg
@@ -3,7 +3,7 @@
# Configure the docker image for kokoro-trampoline.
env_vars: {
key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.3"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.25.0"
}
env_vars: {
diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg
index 92fc2cfe7f..e3dcfa7a69 100644
--- a/.kokoro/continuous/graalvm-native.cfg
+++ b/.kokoro/continuous/graalvm-native.cfg
@@ -3,7 +3,7 @@
# Configure the docker image for kokoro-trampoline.
env_vars: {
key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.3"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.25.0"
}
env_vars: {
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2a435071ab..4958958809 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,30 @@
# Changelog
+## [3.2.0](https://github.com/googleapis/java-bigquerystorage/compare/v3.1.0...v3.2.0) (2024-02-15)
+
+
+### Features
+
+* Introduce MaximumRequestCallbackWaitTimeExceededException ([#2401](https://github.com/googleapis/java-bigquerystorage/issues/2401)) ([0dbbfb8](https://github.com/googleapis/java-bigquerystorage/commit/0dbbfb80632e17b06bff04760e129df16149be4b))
+
+
+### Bug Fixes
+
+* Add client id and update trace id population for StreamWriter and JsonWriter ([#2389](https://github.com/googleapis/java-bigquerystorage/issues/2389)) ([4258af4](https://github.com/googleapis/java-bigquerystorage/commit/4258af42f8ab4494a254637fd018159ea426e0b7))
+* **deps:** Update the Java code generator (gapic-generator-java) to 2.35.0 ([#2407](https://github.com/googleapis/java-bigquerystorage/issues/2407)) ([59a1ede](https://github.com/googleapis/java-bigquerystorage/commit/59a1ede76bf37d4f71e8d0b89a1610277091f5ec))
+
+
+### Dependencies
+
+* Update core dependencies to v1.23.0 ([#2403](https://github.com/googleapis/java-bigquerystorage/issues/2403)) ([68eaae7](https://github.com/googleapis/java-bigquerystorage/commit/68eaae7851ccc2b698eb06a88c11719905fca049))
+* Update dependency com.google.cloud:google-cloud-bigquery to v2.37.1 ([#2402](https://github.com/googleapis/java-bigquerystorage/issues/2402)) ([ac13acc](https://github.com/googleapis/java-bigquerystorage/commit/ac13acc3b363ac954c2efdeff86fe7ca1eaeb0a8))
+* Update dependency com.google.cloud:google-cloud-bigquery to v2.37.2 ([#2409](https://github.com/googleapis/java-bigquerystorage/issues/2409)) ([c95f4b4](https://github.com/googleapis/java-bigquerystorage/commit/c95f4b46e1040be606deace3bd0ec952d07cfc4d))
+* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.25.0 ([#2406](https://github.com/googleapis/java-bigquerystorage/issues/2406)) ([2184b82](https://github.com/googleapis/java-bigquerystorage/commit/2184b82f322737b952d2ddab68bc37ded02f30a5))
+* Update dependency com.google.truth:truth to v1.4.0 ([#2394](https://github.com/googleapis/java-bigquerystorage/issues/2394)) ([3234fc9](https://github.com/googleapis/java-bigquerystorage/commit/3234fc93476342774a92febd14fb4a9a08bca330))
+* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.0 ([#2392](https://github.com/googleapis/java-bigquerystorage/issues/2392)) ([9106284](https://github.com/googleapis/java-bigquerystorage/commit/91062842986166f156abbf5eefa986e3a134ef46))
+* Update dependency org.json:json to v20240205 ([#2398](https://github.com/googleapis/java-bigquerystorage/issues/2398)) ([7e6481d](https://github.com/googleapis/java-bigquerystorage/commit/7e6481d3daf1c3930c48670ccd774f1629e22360))
+* Update dependency org.junit.vintage:junit-vintage-engine to v5.10.2 ([#2397](https://github.com/googleapis/java-bigquerystorage/issues/2397)) ([f01182b](https://github.com/googleapis/java-bigquerystorage/commit/f01182b63fb31dd8a1d95f5e084b3f2ddb2e8580))
+
## [3.1.0](https://github.com/googleapis/java-bigquerystorage/compare/v3.0.1...v3.1.0) (2024-02-02)
diff --git a/README.md b/README.md
index f8f5cbd987..ad72ebe9f0 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file:
com.google.cloud
libraries-bom
- 26.31.0
+ 26.32.0
pom
import
@@ -42,7 +42,7 @@ If you are using Maven without the BOM, add this to your dependencies:
com.google.cloud
google-cloud-bigquerystorage
- 3.0.1
+ 3.1.0
```
@@ -50,20 +50,20 @@ If you are using Maven without the BOM, add this to your dependencies:
If you are using Gradle 5.x or later, add this to your dependencies:
```Groovy
-implementation platform('com.google.cloud:libraries-bom:26.31.0')
+implementation platform('com.google.cloud:libraries-bom:26.32.0')
implementation 'com.google.cloud:google-cloud-bigquerystorage'
```
If you are using Gradle without BOM, add this to your dependencies:
```Groovy
-implementation 'com.google.cloud:google-cloud-bigquerystorage:3.0.1'
+implementation 'com.google.cloud:google-cloud-bigquerystorage:3.1.0'
```
If you are using SBT, add this to your dependencies:
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-bigquerystorage" % "3.0.1"
+libraryDependencies += "com.google.cloud" % "google-cloud-bigquerystorage" % "3.1.0"
```
@@ -221,7 +221,7 @@ Java is a registered trademark of Oracle and/or its affiliates.
[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquerystorage/java11.html
[stability-image]: https://img.shields.io/badge/stability-stable-green
[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquerystorage.svg
-[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquerystorage/3.0.1
+[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquerystorage/3.1.0
[authentication]: https://github.com/googleapis/google-cloud-java#authentication
[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes
[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles
diff --git a/google-cloud-bigquerystorage-bom/pom.xml b/google-cloud-bigquerystorage-bom/pom.xml
index df69e51acf..37b0f97b68 100644
--- a/google-cloud-bigquerystorage-bom/pom.xml
+++ b/google-cloud-bigquerystorage-bom/pom.xml
@@ -3,12 +3,12 @@
4.0.0
com.google.cloud
google-cloud-bigquerystorage-bom
- 3.1.0
+ 3.2.0
pom
com.google.cloud
- google-cloud-shared-config
- 1.7.1
+ sdk-platform-java-config
+ 3.25.0
Google Cloud bigquerystorage BOM
@@ -52,37 +52,37 @@
com.google.cloud
google-cloud-bigquerystorage
- 3.1.0
+ 3.2.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1beta1
- 0.173.0
+ 0.174.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1beta2
- 0.173.0
+ 0.174.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1
- 3.1.0
+ 3.2.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1beta1
- 0.173.0
+ 0.174.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1beta2
- 0.173.0
+ 0.174.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1
- 3.1.0
+ 3.2.0
diff --git a/google-cloud-bigquerystorage/clirr-ignored-differences.xml b/google-cloud-bigquerystorage/clirr-ignored-differences.xml
index 6d99d6a031..0add32e9f1 100644
--- a/google-cloud-bigquerystorage/clirr-ignored-differences.xml
+++ b/google-cloud-bigquerystorage/clirr-ignored-differences.xml
@@ -188,5 +188,10 @@
com/google/cloud/bigquery/storage/v1/StreamWriter$Builder
com.google.cloud.bigquery.storage.v1.StreamWriter$Builder setRetryFirstDelay(org.threeten.bp.Duration)
+
+ 7002
+ com/google/cloud/bigquery/storage/v1/SchemaAwareStreamWriter$Builder
+ com.google.cloud.bigquery.storage.v1.SchemaAwareStreamWriter$Builder setTraceIdBase(java.lang.String)
+
diff --git a/google-cloud-bigquerystorage/pom.xml b/google-cloud-bigquerystorage/pom.xml
index 4e4c0fce3d..a1f77c3e07 100644
--- a/google-cloud-bigquerystorage/pom.xml
+++ b/google-cloud-bigquerystorage/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-bigquerystorage
- 3.1.0
+ 3.2.0
jar
BigQuery Storage
https://github.com/googleapis/java-bigquerystorage
@@ -11,7 +11,7 @@
com.google.cloud
google-cloud-bigquerystorage-parent
- 3.1.0
+ 3.2.0
google-cloud-bigquerystorage
@@ -154,7 +154,7 @@
com.google.auth
google-auth-library-credentials
- 1.22.0
+ 1.23.0
@@ -172,7 +172,7 @@
com.google.truth
truth
- 1.3.0
+ 1.4.0
test
@@ -207,7 +207,7 @@
com.google.auth
google-auth-library-oauth2-http
- 1.22.0
+ 1.23.0
test
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BaseBigQueryReadClient.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BaseBigQueryReadClient.java
index 0dbd4b47fa..35a779668b 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BaseBigQueryReadClient.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BaseBigQueryReadClient.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BaseBigQueryReadSettings.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BaseBigQueryReadSettings.java
index a24fe3d332..b850b663d2 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BaseBigQueryReadSettings.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BaseBigQueryReadSettings.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
package com.google.cloud.bigquery.storage.v1;
import com.google.api.core.ApiFunction;
-import com.google.api.core.BetaApi;
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
@@ -123,7 +122,6 @@ public static TransportChannelProvider defaultTransportChannelProvider() {
return BigQueryReadStubSettings.defaultTransportChannelProvider();
}
- @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
return BigQueryReadStubSettings.defaultApiClientHeaderProviderBuilder();
}
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BigQueryWriteClient.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BigQueryWriteClient.java
index d21b636291..09adba70d9 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BigQueryWriteClient.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BigQueryWriteClient.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BigQueryWriteSettings.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BigQueryWriteSettings.java
index 58b5f8f2fa..65568407d9 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BigQueryWriteSettings.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/BigQueryWriteSettings.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
package com.google.cloud.bigquery.storage.v1;
import com.google.api.core.ApiFunction;
-import com.google.api.core.BetaApi;
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
@@ -138,7 +137,6 @@ public static TransportChannelProvider defaultTransportChannelProvider() {
return BigQueryWriteStubSettings.defaultTransportChannelProvider();
}
- @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
return BigQueryWriteStubSettings.defaultApiClientHeaderProviderBuilder();
}
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/ConnectionWorker.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/ConnectionWorker.java
index f0740223b5..4608dc942a 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/ConnectionWorker.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/ConnectionWorker.java
@@ -844,11 +844,8 @@ private void appendLoop() {
private void throwIfWaitCallbackTooLong(Instant timeToCheck) {
Duration milliSinceLastCallback = Duration.between(timeToCheck, Instant.now());
if (milliSinceLastCallback.compareTo(MAXIMUM_REQUEST_CALLBACK_WAIT_TIME) > 0) {
- throw new RuntimeException(
- String.format(
- "Request has waited in inflight queue for %sms for writer %s, "
- + "which is over maximum wait time %s",
- milliSinceLastCallback, writerId, MAXIMUM_REQUEST_CALLBACK_WAIT_TIME.toString()));
+ throw new Exceptions.MaximumRequestCallbackWaitTimeExceededException(
+ milliSinceLastCallback, writerId, MAXIMUM_REQUEST_CALLBACK_WAIT_TIME);
}
}
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/Exceptions.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/Exceptions.java
index 8824e43c77..2738e10d45 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/Exceptions.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/Exceptions.java
@@ -22,6 +22,7 @@
import io.grpc.Status;
import io.grpc.StatusRuntimeException;
import io.grpc.protobuf.StatusProto;
+import java.time.Duration;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -416,5 +417,38 @@ public String getFieldName() {
}
}
+ /**
+ * The connection was shut down because a callback was not received within the maximum wait time.
+ */
+ public static class MaximumRequestCallbackWaitTimeExceededException extends RuntimeException {
+ private final Duration callbackWaitTime;
+ private final String writerId;
+ private final Duration callbackWaitTimeLimit;
+
+ public MaximumRequestCallbackWaitTimeExceededException(
+ Duration callbackWaitTime, String writerId, Duration callbackWaitTimeLimit) {
+ super(
+ String.format(
+ "Request has waited in inflight queue for %sms for writer %s, "
+ + "which is over maximum wait time %s",
+ callbackWaitTime, writerId, callbackWaitTimeLimit.toString()));
+ this.callbackWaitTime = callbackWaitTime;
+ this.writerId = writerId;
+ this.callbackWaitTimeLimit = callbackWaitTimeLimit;
+ }
+
+ public Duration getCallbackWaitTime() {
+ return callbackWaitTime;
+ }
+
+ public String getWriterId() {
+ return writerId;
+ }
+
+ public Duration getCallbackWaitTimeLimit() {
+ return callbackWaitTimeLimit;
+ }
+ }
+
private Exceptions() {}
}
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonStreamWriter.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonStreamWriter.java
index 64d683438c..0e8d669764 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonStreamWriter.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonStreamWriter.java
@@ -37,6 +37,7 @@
*/
public class JsonStreamWriter implements AutoCloseable {
private final SchemaAwareStreamWriter