From 9d90d70abbdc44c5f4f7fefecb678d6fb66dc9f5 Mon Sep 17 00:00:00 2001
From: "release-please[bot]"
<55107282+release-please[bot]@users.noreply.github.com>
Date: Mon, 6 Jan 2025 16:46:32 +0000
Subject: [PATCH 1/8] chore(main): release 2.25.4-SNAPSHOT (#1882)
:robot: I have created a release *beep* *boop*
---
### Updating meta-information for bleeding-edge SNAPSHOT release.
---
This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
---
pom.xml | 2 +-
samples/snapshot/pom.xml | 2 +-
versions.txt | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/pom.xml b/pom.xml
index 306777953..a6bcd5bca 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.25.3
+ 2.25.4-SNAPSHOT
jar
Google Cloud Spanner JDBC
https://github.com/googleapis/java-spanner-jdbc
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 0e135825b..ea33b94e4 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
com.google.cloud
google-cloud-spanner-jdbc
- 2.25.3
+ 2.25.4-SNAPSHOT
diff --git a/versions.txt b/versions.txt
index d3b8ba19e..bf44f1830 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,4 +1,4 @@
# Format:
# module:released-version:current-version
-google-cloud-spanner-jdbc:2.25.3:2.25.3
+google-cloud-spanner-jdbc:2.25.3:2.25.4-SNAPSHOT
From 123a7bcd9825b20bfbf7e9b057c2bd0f5213cac3 Mon Sep 17 00:00:00 2001
From: Sagnik Ghosh
Date: Wed, 8 Jan 2025 19:35:37 +0530
Subject: [PATCH 2/8] feat: support for spanner external host (#1884)
* feat(spanner): jdbc support for spanner external host
* added unit tests for the new introduced pattern
---
.../google/cloud/spanner/jdbc/JdbcDriver.java | 9 +++++-
.../cloud/spanner/jdbc/JdbcDriverTest.java | 31 +++++++++++++++++++
2 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/src/main/java/com/google/cloud/spanner/jdbc/JdbcDriver.java b/src/main/java/com/google/cloud/spanner/jdbc/JdbcDriver.java
index 6bb70283f..3fb70106a 100644
--- a/src/main/java/com/google/cloud/spanner/jdbc/JdbcDriver.java
+++ b/src/main/java/com/google/cloud/spanner/jdbc/JdbcDriver.java
@@ -25,6 +25,7 @@
import com.google.cloud.spanner.connection.ConnectionOptionsHelper;
import com.google.cloud.spanner.connection.ConnectionPropertiesHelper;
import com.google.cloud.spanner.connection.ConnectionProperty;
+import com.google.common.annotations.VisibleForTesting;
import com.google.rpc.Code;
import io.opentelemetry.api.OpenTelemetry;
import java.sql.Connection;
@@ -145,6 +146,11 @@ public class JdbcDriver implements Driver {
private static final String JDBC_URL_FORMAT =
"jdbc:" + ConnectionOptions.Builder.SPANNER_URI_FORMAT;
private static final Pattern URL_PATTERN = Pattern.compile(JDBC_URL_FORMAT);
+ private static final String JDBC_EXTERNAL_HOST_FORMAT =
+ "jdbc:" + ConnectionOptions.Builder.EXTERNAL_HOST_FORMAT;
+
+ @VisibleForTesting
+ static final Pattern EXTERNAL_HOST_URL_PATTERN = Pattern.compile(JDBC_EXTERNAL_HOST_FORMAT);
@InternalApi
public static String getClientLibToken() {
@@ -213,7 +219,8 @@ public Connection connect(String url, Properties info) throws SQLException {
if (url != null && url.startsWith("jdbc:cloudspanner")) {
try {
Matcher matcher = URL_PATTERN.matcher(url);
- if (matcher.matches()) {
+ Matcher matcherExternalHost = EXTERNAL_HOST_URL_PATTERN.matcher(url);
+ if (matcher.matches() || matcherExternalHost.matches()) {
// strip 'jdbc:' from the URL, add any extra properties and pass on to the generic
// Connection API
String connectionUri = appendPropertiesToUrl(url.substring(5), info);
diff --git a/src/test/java/com/google/cloud/spanner/jdbc/JdbcDriverTest.java b/src/test/java/com/google/cloud/spanner/jdbc/JdbcDriverTest.java
index 020848e1e..b4ae04f56 100644
--- a/src/test/java/com/google/cloud/spanner/jdbc/JdbcDriverTest.java
+++ b/src/test/java/com/google/cloud/spanner/jdbc/JdbcDriverTest.java
@@ -16,8 +16,10 @@
package com.google.cloud.spanner.jdbc;
+import static com.google.cloud.spanner.jdbc.JdbcDriver.EXTERNAL_HOST_URL_PATTERN;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -47,6 +49,7 @@
import java.util.Collection;
import java.util.Objects;
import java.util.Properties;
+import java.util.regex.Matcher;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -211,4 +214,32 @@ public void testLenient() throws SQLException {
assertThat(jdbc.getCode()).isEqualTo(Code.INVALID_ARGUMENT);
}
}
+
+ @Test
+ public void testJdbcExternalHostFormat() {
+ Matcher matcherWithoutInstance =
+ EXTERNAL_HOST_URL_PATTERN.matcher("jdbc:cloudspanner://localhost:15000/databases/test-db");
+ assertTrue(matcherWithoutInstance.matches());
+ assertEquals("test-db", matcherWithoutInstance.group("DATABASEGROUP"));
+ Matcher matcherWithProperty =
+ EXTERNAL_HOST_URL_PATTERN.matcher(
+ "jdbc:cloudspanner://localhost:15000/instances/default/databases/singers-db?usePlainText=true");
+ assertTrue(matcherWithProperty.matches());
+ assertEquals("default", matcherWithProperty.group("INSTANCEGROUP"));
+ assertEquals("singers-db", matcherWithProperty.group("DATABASEGROUP"));
+ Matcher matcherWithoutPort =
+ EXTERNAL_HOST_URL_PATTERN.matcher(
+ "jdbc:cloudspanner://localhost/instances/default/databases/test-db");
+ assertTrue(matcherWithoutPort.matches());
+ assertEquals("default", matcherWithoutPort.group("INSTANCEGROUP"));
+ assertEquals("test-db", matcherWithoutPort.group("DATABASEGROUP"));
+ Matcher matcherWithProject =
+ EXTERNAL_HOST_URL_PATTERN.matcher(
+ "jdbc:cloudspanner://localhost:15000/projects/default/instances/default/databases/singers-db");
+ assertFalse(matcherWithProject.matches());
+ Matcher matcherWithoutHost =
+ EXTERNAL_HOST_URL_PATTERN.matcher(
+ "jdbc:cloudspanner:/instances/default/databases/singers-db");
+ assertFalse(matcherWithoutHost.matches());
+ }
}
From 13f4404e7a2b744b036ffe309964558162e4ad67 Mon Sep 17 00:00:00 2001
From: Mend Renovate
Date: Wed, 8 Jan 2025 15:05:51 +0100
Subject: [PATCH 3/8] chore(deps): update dependency
com.google.cloud:google-cloud-spanner-jdbc to v2.25.3 (#1883)
---
samples/install-without-bom/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index 5b713984c..91840fd45 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.25.2
+ 2.25.3
From 73eacc66bacfd5c367f764ed3db805309cb0d1c8 Mon Sep 17 00:00:00 2001
From: Mend Renovate
Date: Sat, 11 Jan 2025 07:41:53 +0100
Subject: [PATCH 4/8] deps: update dependency
com.google.cloud:sdk-platform-java-config to v3.41.1 (#1886)
---
.github/workflows/unmanaged_dependency_check.yaml | 2 +-
.kokoro/presubmit/graalvm-native-17.cfg | 2 +-
.kokoro/presubmit/graalvm-native.cfg | 2 +-
pom.xml | 2 +-
samples/quickperf/pom.xml | 2 +-
samples/snippets/pom.xml | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml
index 9150bf459..547bea04a 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.41.0
+ uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.41.1
with:
bom-path: pom.xml
diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg
index 76ca3ee6d..9705694f8 100644
--- a/.kokoro/presubmit/graalvm-native-17.cfg
+++ b/.kokoro/presubmit/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-public-resources/graalvm_sdk_platform_b:3.41.0"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.1"
}
env_vars: {
diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg
index 644bb62ce..b070666b4 100644
--- a/.kokoro/presubmit/graalvm-native.cfg
+++ b/.kokoro/presubmit/graalvm-native.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.41.0"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.1"
}
env_vars: {
diff --git a/pom.xml b/pom.xml
index a6bcd5bca..f2e87f887 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
com.google.cloud
sdk-platform-java-config
- 3.41.0
+ 3.41.1
diff --git a/samples/quickperf/pom.xml b/samples/quickperf/pom.xml
index 15b8b27da..7dfc53f7f 100644
--- a/samples/quickperf/pom.xml
+++ b/samples/quickperf/pom.xml
@@ -12,7 +12,7 @@
com.google.cloud
sdk-platform-java-config
- 3.41.0
+ 3.41.1
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index 11b8346b9..431ac24bc 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -9,7 +9,7 @@
com.google.cloud
sdk-platform-java-config
- 3.41.0
+ 3.41.1
From 2016d9c47a5c6d12ba101827fe933c3ddd334e78 Mon Sep 17 00:00:00 2001
From: Mend Renovate
Date: Sat, 11 Jan 2025 07:42:06 +0100
Subject: [PATCH 5/8] deps: update dependency
com.google.api.grpc:proto-google-cloud-trace-v1 to v2.56.0 (#1887)
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index f2e87f887..7372416ef 100644
--- a/pom.xml
+++ b/pom.xml
@@ -216,7 +216,7 @@
com.google.api.grpc
proto-google-cloud-trace-v1
- 2.55.0
+ 2.56.0
test
From ce78b188e70f30776e58a1e3a7d8c4b1559e4d68 Mon Sep 17 00:00:00 2001
From: Mend Renovate
Date: Sat, 11 Jan 2025 07:42:19 +0100
Subject: [PATCH 6/8] deps: update dependency
com.google.cloud:google-cloud-trace to v2.56.0 (#1888)
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 7372416ef..e4db8c2a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -210,7 +210,7 @@
com.google.cloud
google-cloud-trace
- 2.55.0
+ 2.56.0
test
From 3424d382a89b33d0870b00f04fd10dafa62bcc3d Mon Sep 17 00:00:00 2001
From: Mend Renovate
Date: Sat, 11 Jan 2025 08:08:22 +0100
Subject: [PATCH 7/8] deps: update dependency
com.google.cloud:google-cloud-spanner-bom to v6.85.0 (#1889)
---
pom.xml | 2 +-
samples/spring-data-jdbc/pom.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index e4db8c2a3..5d136645a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,7 +61,7 @@
com.google.cloud
google-cloud-spanner-bom
- 6.84.0
+ 6.85.0
pom
import
diff --git a/samples/spring-data-jdbc/pom.xml b/samples/spring-data-jdbc/pom.xml
index 2ac50a807..b945992ef 100644
--- a/samples/spring-data-jdbc/pom.xml
+++ b/samples/spring-data-jdbc/pom.xml
@@ -30,7 +30,7 @@
com.google.cloud
google-cloud-spanner-bom
- 6.84.0
+ 6.85.0
import
pom
From 0ac12831f359eaaa903776ca550168fe4dbfa7ea Mon Sep 17 00:00:00 2001
From: "release-please[bot]"
<55107282+release-please[bot]@users.noreply.github.com>
Date: Sat, 11 Jan 2025 10:52:26 +0000
Subject: [PATCH 8/8] chore(main): release 2.26.0 (#1885)
:robot: I have created a release *beep* *boop*
---
## [2.26.0](https://togithub.com/googleapis/java-spanner-jdbc/compare/v2.25.3...v2.26.0) (2025-01-11)
### Features
* Support for spanner external host ([#1884](https://togithub.com/googleapis/java-spanner-jdbc/issues/1884)) ([123a7bc](https://togithub.com/googleapis/java-spanner-jdbc/commit/123a7bcd9825b20bfbf7e9b057c2bd0f5213cac3))
### Dependencies
* Update dependency com.google.api.grpc:proto-google-cloud-trace-v1 to v2.56.0 ([#1887](https://togithub.com/googleapis/java-spanner-jdbc/issues/1887)) ([2016d9c](https://togithub.com/googleapis/java-spanner-jdbc/commit/2016d9c47a5c6d12ba101827fe933c3ddd334e78))
* Update dependency com.google.cloud:google-cloud-spanner-bom to v6.85.0 ([#1889](https://togithub.com/googleapis/java-spanner-jdbc/issues/1889)) ([3424d38](https://togithub.com/googleapis/java-spanner-jdbc/commit/3424d382a89b33d0870b00f04fd10dafa62bcc3d))
* Update dependency com.google.cloud:google-cloud-trace to v2.56.0 ([#1888](https://togithub.com/googleapis/java-spanner-jdbc/issues/1888)) ([ce78b18](https://togithub.com/googleapis/java-spanner-jdbc/commit/ce78b188e70f30776e58a1e3a7d8c4b1559e4d68))
* Update dependency com.google.cloud:sdk-platform-java-config to v3.41.1 ([#1886](https://togithub.com/googleapis/java-spanner-jdbc/issues/1886)) ([73eacc6](https://togithub.com/googleapis/java-spanner-jdbc/commit/73eacc66bacfd5c367f764ed3db805309cb0d1c8))
---
This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
---
CHANGELOG.md | 15 +++++++++++++++
README.md | 6 +++---
pom.xml | 2 +-
samples/snapshot/pom.xml | 2 +-
versions.txt | 2 +-
5 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 64e1e8f81..24f175e80 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
# Changelog
+## [2.26.0](https://github.com/googleapis/java-spanner-jdbc/compare/v2.25.3...v2.26.0) (2025-01-11)
+
+
+### Features
+
+* Support for spanner external host ([#1884](https://github.com/googleapis/java-spanner-jdbc/issues/1884)) ([123a7bc](https://github.com/googleapis/java-spanner-jdbc/commit/123a7bcd9825b20bfbf7e9b057c2bd0f5213cac3))
+
+
+### Dependencies
+
+* Update dependency com.google.api.grpc:proto-google-cloud-trace-v1 to v2.56.0 ([#1887](https://github.com/googleapis/java-spanner-jdbc/issues/1887)) ([2016d9c](https://github.com/googleapis/java-spanner-jdbc/commit/2016d9c47a5c6d12ba101827fe933c3ddd334e78))
+* Update dependency com.google.cloud:google-cloud-spanner-bom to v6.85.0 ([#1889](https://github.com/googleapis/java-spanner-jdbc/issues/1889)) ([3424d38](https://github.com/googleapis/java-spanner-jdbc/commit/3424d382a89b33d0870b00f04fd10dafa62bcc3d))
+* Update dependency com.google.cloud:google-cloud-trace to v2.56.0 ([#1888](https://github.com/googleapis/java-spanner-jdbc/issues/1888)) ([ce78b18](https://github.com/googleapis/java-spanner-jdbc/commit/ce78b188e70f30776e58a1e3a7d8c4b1559e4d68))
+* Update dependency com.google.cloud:sdk-platform-java-config to v3.41.1 ([#1886](https://github.com/googleapis/java-spanner-jdbc/issues/1886)) ([73eacc6](https://github.com/googleapis/java-spanner-jdbc/commit/73eacc66bacfd5c367f764ed3db805309cb0d1c8))
+
## [2.25.3](https://github.com/googleapis/java-spanner-jdbc/compare/v2.25.2...v2.25.3) (2025-01-06)
diff --git a/README.md b/README.md
index ec61e3622..1c0c6b101 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.25.3
+ 2.26.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.25.3'
+implementation 'com.google.cloud:google-cloud-spanner-jdbc:2.26.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.25.3"
+libraryDependencies += "com.google.cloud" % "google-cloud-spanner-jdbc" % "2.26.0"
```
diff --git a/pom.xml b/pom.xml
index 5d136645a..8d8afb291 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.25.4-SNAPSHOT
+ 2.26.0
jar
Google Cloud Spanner JDBC
https://github.com/googleapis/java-spanner-jdbc
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index ea33b94e4..5f470ec17 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
com.google.cloud
google-cloud-spanner-jdbc
- 2.25.4-SNAPSHOT
+ 2.26.0
diff --git a/versions.txt b/versions.txt
index bf44f1830..bab76b391 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,4 +1,4 @@
# Format:
# module:released-version:current-version
-google-cloud-spanner-jdbc:2.25.3:2.25.4-SNAPSHOT
+google-cloud-spanner-jdbc:2.26.0:2.26.0