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