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