diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 5b7dd21a1..7394b52af 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -14,6 +14,6 @@ jobs: shell: bash run: .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.2 with: bom-path: pom.xml diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index f69120cbb..631631deb 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 7f7797ccf..16cf471b0 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 0ed7b4e65..5d2697122 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.2" } env_vars: { diff --git a/CHANGELOG.md b/CHANGELOG.md index 9077df99a..38f6d8d3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## [2.33.0](https://github.com/googleapis/java-spanner-jdbc/compare/v2.32.3...v2.33.0) (2025-09-27) + + +### Features + +* Add transaction_timeout connection property ([#2226](https://github.com/googleapis/java-spanner-jdbc/issues/2226)) ([092df54](https://github.com/googleapis/java-spanner-jdbc/commit/092df54f1bd823ce721c29732a51f8ef5065a6f2)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-trace-v1 to v2.74.0 ([#2205](https://github.com/googleapis/java-spanner-jdbc/issues/2205)) ([84dd68c](https://github.com/googleapis/java-spanner-jdbc/commit/84dd68cd661623132c007ac1bed9e69950aa3cac)) +* Update dependency com.google.api.grpc:proto-google-cloud-trace-v1 to v2.75.0 ([#2223](https://github.com/googleapis/java-spanner-jdbc/issues/2223)) ([4aaa4a1](https://github.com/googleapis/java-spanner-jdbc/commit/4aaa4a132473935746d91363cf4e8b80e08bd017)) +* Update dependency com.google.cloud:google-cloud-trace to v2.74.0 ([#2211](https://github.com/googleapis/java-spanner-jdbc/issues/2211)) ([ac95834](https://github.com/googleapis/java-spanner-jdbc/commit/ac958346f19faad5eaf8dd53ce88b995261e9897)) +* Update dependency com.google.cloud:google-cloud-trace to v2.75.0 ([#2224](https://github.com/googleapis/java-spanner-jdbc/issues/2224)) ([99392d4](https://github.com/googleapis/java-spanner-jdbc/commit/99392d4aa010331815759c45b34372f6766ec9c8)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.2 ([#2218](https://github.com/googleapis/java-spanner-jdbc/issues/2218)) ([5718b16](https://github.com/googleapis/java-spanner-jdbc/commit/5718b161ce326fac7e85fed0bda960e00f035cde)) +* Update dependency com.spotify.fmt:fmt-maven-plugin to v2.29 ([#2214](https://github.com/googleapis/java-spanner-jdbc/issues/2214)) ([a73a772](https://github.com/googleapis/java-spanner-jdbc/commit/a73a77245f4827afb8580912d437543b5cc59317)) +* Update dependency io.opentelemetry:opentelemetry-bom to v1.54.1 ([#2220](https://github.com/googleapis/java-spanner-jdbc/issues/2220)) ([b386483](https://github.com/googleapis/java-spanner-jdbc/commit/b38648370a09631d5f6514aad2960dd3c76af99c)) +* Update dependency org.apache.commons:commons-lang3 to v3.19.0 ([#2225](https://github.com/googleapis/java-spanner-jdbc/issues/2225)) ([1ea3eca](https://github.com/googleapis/java-spanner-jdbc/commit/1ea3eca4c7711775d5d1b89534e490a989ad4630)) +* Update dependency org.postgresql:postgresql to v42.7.8 ([#2221](https://github.com/googleapis/java-spanner-jdbc/issues/2221)) ([bcc3f3d](https://github.com/googleapis/java-spanner-jdbc/commit/bcc3f3d59c02d2d7ff70e6a65a86f0750587c52e)) +* Update dependency org.springframework.boot:spring-boot to v3.5.6 ([#2216](https://github.com/googleapis/java-spanner-jdbc/issues/2216)) ([84396e0](https://github.com/googleapis/java-spanner-jdbc/commit/84396e042d3ac2d7da35bb7900f25f59d36f83d9)) +* Update dependency org.springframework.boot:spring-boot-starter-data-jdbc to v3.5.6 ([#2217](https://github.com/googleapis/java-spanner-jdbc/issues/2217)) ([1805daa](https://github.com/googleapis/java-spanner-jdbc/commit/1805daa587fe5f589213b0ef23fe773137446f9a)) +* Update dependency org.springframework.boot:spring-boot-starter-parent to v3.5.6 ([#2219](https://github.com/googleapis/java-spanner-jdbc/issues/2219)) ([63525af](https://github.com/googleapis/java-spanner-jdbc/commit/63525af099a80b0ae89bd3336244a3aa4e8b71e0)) +* Update dependency org.springframework.data:spring-data-bom to v2025.0.4 ([#2204](https://github.com/googleapis/java-spanner-jdbc/issues/2204)) ([f6327c7](https://github.com/googleapis/java-spanner-jdbc/commit/f6327c79ce4d3dd30994b0c2419ae5b6b058d156)) + ## [2.32.3](https://github.com/googleapis/java-spanner-jdbc/compare/v2.32.2...v2.32.3) (2025-09-13) diff --git a/README.md b/README.md index 4e95b5a01..61b3d5cb2 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ If you are using Maven, add this to your pom.xml file: com.google.cloud google-cloud-spanner-jdbc - 2.32.3 + 2.33.0 ``` @@ -30,7 +30,7 @@ If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-spanner-jdbc:2.32.3' +implementation 'com.google.cloud:google-cloud-spanner-jdbc:2.33.0' ``` @@ -38,7 +38,7 @@ If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-spanner-jdbc" % "2.32.3" +libraryDependencies += "com.google.cloud" % "google-cloud-spanner-jdbc" % "2.33.0" ``` diff --git a/documentation/connection_properties.md b/documentation/connection_properties.md index 4110bcfe7..c0cd13861 100644 --- a/documentation/connection_properties.md +++ b/documentation/connection_properties.md @@ -45,6 +45,7 @@ The 'Context' value indicates whether the property can only be set when a connec | oauthtoken | A valid pre-existing OAuth token to use for authentication for this connection. Setting this property will take precedence over any value set for a credentials file. | | | STARTUP | | optimizerstatisticspackage | Sets the query optimizer statistics package to use for this connection. | | | USER | | optimizerversion | Sets the default query optimizer version to use for this connection. | | | USER | +| read_lock_mode | This option controls the locking behavior for read operations and queries within a read/write transaction. It works in conjunction with the transaction's isolation level. PESSIMISTIC: Read locks are acquired immediately on read. This mode only applies to SERIALIZABLE isolation. This mode prevents concurrent modifications by locking data throughout the transaction. This reduces commit-time aborts due to conflicts, but can increase how long transactions wait for locks and the overall contention. OPTIMISTIC: Locks for reads within the transaction are not acquired on read. Instead, the locks are acquired on commit to validate that read/queried data has not changed since the transaction started. If a conflict is detected, the transaction will fail. This mode only applies to SERIALIZABLE isolation. This mode defers locking until commit, which can reduce contention and improve throughput. However, be aware that this increases the risk of transaction aborts if there's significant write competition on the same data. READ_LOCK_MODE_UNSPECIFIED: This is the default if no mode is set. The locking behavior depends on the isolation level: REPEATABLE_READ: Locking semantics default to OPTIMISTIC. However, validation checks at commit are only performed for queries using SELECT FOR UPDATE, statements with {@code LOCK_SCANNED_RANGES} hints, and DML statements. For all other isolation levels: If the read lock mode is not set, it defaults to PESSIMISTIC locking. | READ_LOCK_MODE_UNSPECIFIED | READ_LOCK_MODE_UNSPECIFIED, PESSIMISTIC, OPTIMISTIC | USER | | read_only_staleness | The read-only staleness to use for read-only transactions and single-use queries. | strong | | USER | | readonly | Should the connection start in read-only mode (true/false) | false | true, false | USER | | retryabortsinternally | Should the connection automatically retry Aborted errors (true/false) | true | true, false | USER | @@ -55,6 +56,8 @@ The 'Context' value indicates whether the property can only be set when a connec | tracing_prefix | The prefix that will be prepended to all OpenTelemetry traces that are generated by a Connection. | CloudSpanner | | STARTUP | | trackconnectionleaks | Capture the call stack of the thread that created a connection. This will pre-create a LeakedConnectionException already when a connection is created. This can be disabled, for example if a monitoring system logs the pre-created exception. If disabled, the LeakedConnectionException will only be created when an actual connection leak is detected. The stack trace of the exception will in that case not contain the call stack of when the connection was created. | true | true, false | STARTUP | | tracksessionleaks | Capture the call stack of the thread that checked out a session of the session pool. This will pre-create a LeakedSessionException already when a session is checked out. This can be disabled, for example if a monitoring system logs the pre-created exception. If disabled, the LeakedSessionException will only be created when an actual session leak is detected. The stack trace of the exception will in that case not contain the call stack of when the session was checked out. | true | true, false | STARTUP | +| transaction_timeout | Timeout for read/write transactions. | | | USER | +| universedomain | Configure the connection to try to connect to Spanner using a different partner Google Universe than GDU (googleapis.com). | googleapis.com | | STARTUP | | useautosavepointsforemulator | Automatically creates savepoints for each statement in a read/write transaction when using the Emulator. This is no longer needed when using Emulator version 1.5.23 or higher. | false | true, false | STARTUP | | useplaintext | Use a plain text communication channel (i.e. non-TLS) for communicating with the server (true/false). Set this value to true for communication with the Cloud Spanner emulator. | false | true, false | STARTUP | | useragent | The custom user-agent property name to use when communicating with Cloud Spanner. This property is intended for internal library usage, and should not be set by applications. | | | STARTUP | diff --git a/pom.xml b/pom.xml index cde8f1989..b457a2356 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 google-cloud-spanner-jdbc - 2.32.3 + 2.33.0 jar Google Cloud Spanner JDBC https://github.com/googleapis/java-spanner-jdbc @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.52.1 + 3.52.2 @@ -61,7 +61,7 @@ com.google.cloud google-cloud-spanner-bom - 6.100.0 + 6.101.1 pom import @@ -216,13 +216,13 @@ com.google.cloud google-cloud-trace - 2.73.0 + 2.75.0 test com.google.api.grpc proto-google-cloud-trace-v1 - 2.73.0 + 2.75.0 test @@ -279,7 +279,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.6.0 + 3.6.1 @@ -449,7 +449,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.6.0 + 3.6.1 diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ddb461ec2..06eab9662 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-spanner-jdbc - 2.32.2 + 2.32.3 diff --git a/samples/quickperf/pom.xml b/samples/quickperf/pom.xml index da1c8551e..1a79d8825 100644 --- a/samples/quickperf/pom.xml +++ b/samples/quickperf/pom.xml @@ -12,7 +12,7 @@ com.google.cloud sdk-platform-java-config - 3.52.1 + 3.52.2 @@ -27,7 +27,7 @@ com.google.cloud libraries-bom - 26.67.0 + 26.68.0 pom import @@ -62,7 +62,7 @@ org.apache.commons commons-lang3 - 3.18.0 + 3.19.0 com.fasterxml.jackson.core @@ -79,7 +79,7 @@ org.springframework.boot spring-boot - 3.5.5 + 3.5.6 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 981ae4f52..59afa6f0d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-spanner-jdbc - 2.32.3 + 2.33.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index fd661e4bc..e82086db7 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -9,7 +9,7 @@ com.google.cloud sdk-platform-java-config - 3.52.1 + 3.52.2 @@ -26,7 +26,7 @@ com.google.cloud libraries-bom - 26.67.0 + 26.68.0 pom import diff --git a/samples/spring-data-jdbc/googlesql/pom.xml b/samples/spring-data-jdbc/googlesql/pom.xml index 28939aefe..31db916ba 100644 --- a/samples/spring-data-jdbc/googlesql/pom.xml +++ b/samples/spring-data-jdbc/googlesql/pom.xml @@ -23,7 +23,7 @@ org.springframework.data spring-data-bom - 2025.0.3 + 2025.0.4 import pom @@ -37,14 +37,14 @@ com.google.cloud libraries-bom - 26.67.0 + 26.68.0 import pom io.opentelemetry opentelemetry-bom - 1.54.0 + 1.54.1 pom import @@ -55,7 +55,7 @@ org.springframework.boot spring-boot-starter-data-jdbc - 3.5.5 + 3.5.6 @@ -124,7 +124,7 @@ com.spotify.fmt fmt-maven-plugin - 2.28 + 2.29 diff --git a/samples/spring-data-jdbc/postgresql/pom.xml b/samples/spring-data-jdbc/postgresql/pom.xml index 494c576ec..aa78ad2eb 100644 --- a/samples/spring-data-jdbc/postgresql/pom.xml +++ b/samples/spring-data-jdbc/postgresql/pom.xml @@ -23,7 +23,7 @@ org.springframework.data spring-data-bom - 2025.0.3 + 2025.0.4 import pom @@ -37,14 +37,14 @@ com.google.cloud libraries-bom - 26.67.0 + 26.68.0 import pom io.opentelemetry opentelemetry-bom - 1.54.0 + 1.54.1 pom import @@ -55,7 +55,7 @@ org.springframework.boot spring-boot-starter-data-jdbc - 3.5.5 + 3.5.6 @@ -72,7 +72,7 @@ org.postgresql postgresql - 42.7.7 + 42.7.8 @@ -129,7 +129,7 @@ com.spotify.fmt fmt-maven-plugin - 2.28 + 2.29 diff --git a/samples/spring-data-mybatis/googlesql/pom.xml b/samples/spring-data-mybatis/googlesql/pom.xml index 46bfcdad1..b4aa07c1d 100644 --- a/samples/spring-data-mybatis/googlesql/pom.xml +++ b/samples/spring-data-mybatis/googlesql/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.5.5 + 3.5.6 @@ -28,7 +28,7 @@ org.springframework.data spring-data-bom - 2025.0.3 + 2025.0.4 import pom @@ -42,7 +42,7 @@ com.google.cloud libraries-bom - 26.67.0 + 26.68.0 import pom @@ -116,7 +116,7 @@ com.spotify.fmt fmt-maven-plugin - 2.28 + 2.29 diff --git a/samples/spring-data-mybatis/postgresql/pom.xml b/samples/spring-data-mybatis/postgresql/pom.xml index 3a3c30b22..5f2b06f55 100644 --- a/samples/spring-data-mybatis/postgresql/pom.xml +++ b/samples/spring-data-mybatis/postgresql/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.5.5 + 3.5.6 @@ -28,14 +28,14 @@ org.springframework.data spring-data-bom - 2025.0.3 + 2025.0.4 import pom com.google.cloud libraries-bom - 26.67.0 + 26.68.0 import pom @@ -75,7 +75,7 @@ org.postgresql postgresql - 42.7.7 + 42.7.8 org.testcontainers @@ -113,7 +113,7 @@ com.spotify.fmt fmt-maven-plugin - 2.28 + 2.29 diff --git a/src/test/java/com/google/cloud/spanner/jdbc/ConnectionPropertiesFileGenerator.java b/src/test/java/com/google/cloud/spanner/jdbc/ConnectionPropertiesFileGenerator.java index 9efc63b9e..052e4dce4 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/ConnectionPropertiesFileGenerator.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/ConnectionPropertiesFileGenerator.java @@ -45,7 +45,7 @@ public static void main(String[] args) throws IOException { .append("| ") .append(connectionProperty.getName()) .append(" | ") - .append(connectionProperty.getDescription()) + .append(connectionProperty.getDescription().replace("\n", " ")) .append(" | ") .append( connectionProperty.getDefaultValue() == null diff --git a/versions.txt b/versions.txt index 862e4e8ee..4edb3f7a6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-spanner-jdbc:2.32.3:2.32.3 +google-cloud-spanner-jdbc:2.33.0:2.33.0