Skip to content

Commit 958d908

Browse files
committed
support for both prefix spanner/cloudspanner
1 parent fb58f61 commit 958d908

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -640,10 +640,10 @@ private Builder() {}
640640

641641
/** Spanner {@link ConnectionOptions} URI format. */
642642
public static final String SPANNER_URI_FORMAT =
643-
"(?:cloudspanner:)(?<HOSTGROUP>//[\\w.-]+(?:\\.[\\w\\.-]+)*[\\w\\-\\._~:/?#\\[\\]@!\\$&'\\(\\)\\*\\+,;=.]+)?/projects/(?<PROJECTGROUP>(([a-z]|[-.:]|[0-9])+|(DEFAULT_PROJECT_ID)))(/instances/(?<INSTANCEGROUP>([a-z]|[-]|[0-9])+)(/databases/(?<DATABASEGROUP>([a-z]|[-]|[_]|[0-9])+))?)?(?:[?|;].*)?";
643+
"(?:(?:spanner|cloudspanner):)(?<HOSTGROUP>//[\\w.-]+(?:\\.[\\w\\.-]+)*[\\w\\-\\._~:/?#\\[\\]@!\\$&'\\(\\)\\*\\+,;=.]+)?/projects/(?<PROJECTGROUP>(([a-z]|[-.:]|[0-9])+|(DEFAULT_PROJECT_ID)))(/instances/(?<INSTANCEGROUP>([a-z]|[-]|[0-9])+)(/databases/(?<DATABASEGROUP>([a-z]|[-]|[_]|[0-9])+))?)?(?:[?|;].*)?";
644644

645645
public static final String EXTERNAL_HOST_FORMAT =
646-
"(?:spanner:)(?<HOSTGROUP>//[\\w.-]+(?::\\d+)?)(/instances/(?<INSTANCEGROUP>[a-z0-9-]+))?(/databases/(?<DATABASEGROUP>[a-z0-9_-]+))(?:[?;].*)?";
646+
"(?:(?:spanner|cloudspanner):)(?<HOSTGROUP>//[\\w.-]+(?::\\d+)?)(/instances/(?<INSTANCEGROUP>[a-z0-9-]+))?(/databases/(?<DATABASEGROUP>[a-z0-9_-]+))(?:[?;].*)?";
647647
private static final String SPANNER_URI_REGEX = "(?is)^" + SPANNER_URI_FORMAT + "$";
648648

649649
@VisibleForTesting

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,18 +1216,19 @@ public void testEnableApiTracing() {
12161216
@Test
12171217
public void testExternalHostPatterns() {
12181218
Matcher matcherWithoutInstance =
1219-
EXTERNAL_HOST_PATTERN.matcher("spanner://localhost:15000/databases/test-db");
1219+
EXTERNAL_HOST_PATTERN.matcher("cloudspanner://localhost:15000/databases/test-db");
12201220
assertTrue(matcherWithoutInstance.matches());
12211221
assertNull(matcherWithoutInstance.group("INSTANCEGROUP"));
12221222
assertEquals("test-db", matcherWithoutInstance.group("DATABASEGROUP"));
12231223
Matcher matcherWithProperty =
12241224
EXTERNAL_HOST_PATTERN.matcher(
1225-
"spanner://localhost:15000/instances/default/databases/singers-db?usePlainText=true");
1225+
"cloudspanner://localhost:15000/instances/default/databases/singers-db?usePlainText=true");
12261226
assertTrue(matcherWithProperty.matches());
12271227
assertEquals("default", matcherWithProperty.group("INSTANCEGROUP"));
12281228
assertEquals("singers-db", matcherWithProperty.group("DATABASEGROUP"));
12291229
Matcher matcherWithoutPort =
1230-
EXTERNAL_HOST_PATTERN.matcher("spanner://localhost/instances/default/databases/test-db");
1230+
EXTERNAL_HOST_PATTERN.matcher(
1231+
"cloudspanner://localhost/instances/default/databases/test-db");
12311232
assertTrue(matcherWithoutPort.matches());
12321233
assertEquals("default", matcherWithoutPort.group("INSTANCEGROUP"));
12331234
assertEquals("test-db", matcherWithoutPort.group("DATABASEGROUP"));
@@ -1241,10 +1242,15 @@ public void testExternalHostPatterns() {
12411242
ImmutableMap.of()));
12421243
Matcher matcherWithProject =
12431244
EXTERNAL_HOST_PATTERN.matcher(
1244-
"spanner://localhost:15000/projects/default/instances/default/databases/singers-db");
1245+
"cloudspanner://localhost:15000/projects/default/instances/default/databases/singers-db");
12451246
assertFalse(matcherWithProject.matches());
12461247
Matcher matcherWithoutHost =
1247-
EXTERNAL_HOST_PATTERN.matcher("spanner:/instances/default/databases/singers-db");
1248+
EXTERNAL_HOST_PATTERN.matcher("cloudspanner:/instances/default/databases/singers-db");
12481249
assertFalse(matcherWithoutHost.matches());
1250+
Matcher matcherWithPrefixSpanner =
1251+
EXTERNAL_HOST_PATTERN.matcher("spanner://localhost:15000/databases/test-db");
1252+
assertTrue(matcherWithPrefixSpanner.matches());
1253+
assertNull(matcherWithPrefixSpanner.group("INSTANCEGROUP"));
1254+
assertEquals("test-db", matcherWithPrefixSpanner.group("DATABASEGROUP"));
12491255
}
12501256
}

0 commit comments

Comments
 (0)