From ee9c7b9085dd923c0ffda2224b6a69f24576adb5 Mon Sep 17 00:00:00 2001 From: Sri Harsha CH Date: Fri, 24 May 2024 12:47:28 +0000 Subject: [PATCH 1/2] chore(spanner): code refactoring --- .../spanner/connection/ConnectionImpl.java | 6 +-- .../cloud/spanner/connection/DdlClient.java | 48 +++++-------------- .../spanner/connection/DdlClientTests.java | 4 +- 3 files changed, 17 insertions(+), 41 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java index c0cbc8c22d5..74126d6a6a5 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java @@ -359,9 +359,9 @@ public Spanner getSpanner() { private DdlClient createDdlClient() { return DdlClient.newBuilder() .setDatabaseAdminClient(spanner.getDatabaseAdminClient()) - .setProjectId(options.getProjectId()) - .setInstanceId(options.getInstanceId()) - .setDatabaseName(options.getDatabaseName()) + .setDatabaseId( + DatabaseId.of( + options.getProjectId(), options.getInstanceId(), options.getDatabaseName())) .build(); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlClient.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlClient.java index 7bce1ab78cd..785b9414bab 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlClient.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlClient.java @@ -24,7 +24,6 @@ import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.common.base.Preconditions; -import com.google.common.base.Strings; import com.google.spanner.admin.database.v1.CreateDatabaseMetadata; import com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata; import java.util.Collections; @@ -36,15 +35,12 @@ */ class DdlClient { private final DatabaseAdminClient dbAdminClient; - private final String projectId; - private final String instanceId; - private final String databaseName; + private final DatabaseId databaseId; static class Builder { private DatabaseAdminClient dbAdminClient; - private String projectId; - private String instanceId; - private String databaseName; + + private DatabaseId databaseId; private Builder() {} @@ -54,33 +50,15 @@ Builder setDatabaseAdminClient(DatabaseAdminClient client) { return this; } - Builder setProjectId(String projectId) { - Preconditions.checkArgument( - !Strings.isNullOrEmpty(projectId), "Empty projectId is not allowed"); - this.projectId = projectId; - return this; - } - - Builder setInstanceId(String instanceId) { - Preconditions.checkArgument( - !Strings.isNullOrEmpty(instanceId), "Empty instanceId is not allowed"); - this.instanceId = instanceId; - return this; - } - - Builder setDatabaseName(String name) { - Preconditions.checkArgument( - !Strings.isNullOrEmpty(name), "Empty database name is not allowed"); - this.databaseName = name; + Builder setDatabaseId(DatabaseId databaseId) { + Preconditions.checkNotNull(databaseId); + this.databaseId = databaseId; return this; } DdlClient build() { Preconditions.checkState(dbAdminClient != null, "No DatabaseAdminClient specified"); - Preconditions.checkState(!Strings.isNullOrEmpty(projectId), "No ProjectId specified"); - Preconditions.checkState(!Strings.isNullOrEmpty(instanceId), "No InstanceId specified"); - Preconditions.checkArgument( - !Strings.isNullOrEmpty(databaseName), "No database name specified"); + Preconditions.checkState(databaseId != null, "No DatabaseId specified"); return new DdlClient(this); } } @@ -91,16 +69,17 @@ static Builder newBuilder() { private DdlClient(Builder builder) { this.dbAdminClient = builder.dbAdminClient; - this.projectId = builder.projectId; - this.instanceId = builder.instanceId; - this.databaseName = builder.databaseName; + this.databaseId = builder.databaseId; } OperationFuture executeCreateDatabase( String createStatement, Dialect dialect) { Preconditions.checkArgument(isCreateDatabaseStatement(createStatement)); return dbAdminClient.createDatabase( - instanceId, createStatement, dialect, Collections.emptyList()); + databaseId.getInstanceId().getInstance(), + createStatement, + dialect, + Collections.emptyList()); } /** Execute a single DDL statement. */ @@ -115,8 +94,7 @@ OperationFuture executeDdl( throw SpannerExceptionFactory.newSpannerException( ErrorCode.INVALID_ARGUMENT, "CREATE DATABASE is not supported in a DDL batch"); } - Database.Builder dbBuilder = - dbAdminClient.newDatabaseBuilder(DatabaseId.of(projectId, instanceId, databaseName)); + Database.Builder dbBuilder = dbAdminClient.newDatabaseBuilder(databaseId); if (protoDescriptors != null) { dbBuilder.setProtoDescriptors(protoDescriptors); } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DdlClientTests.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DdlClientTests.java index c61635fce23..fda0432011e 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DdlClientTests.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DdlClientTests.java @@ -53,9 +53,7 @@ public class DdlClientTests { private DdlClient createSubject(DatabaseAdminClient client) { return DdlClient.newBuilder() - .setProjectId(projectId) - .setInstanceId(instanceId) - .setDatabaseName(databaseId) + .setDatabaseId(DatabaseId.of(projectId, instanceId, databaseId)) .setDatabaseAdminClient(client) .build(); } From 26d471fe3bb84699a235d8a06c7a313b15c5aa47 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Mon, 24 Jun 2024 11:37:49 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ba3bc5d59c7..45392c83018 100644 --- a/README.md +++ b/README.md @@ -50,20 +50,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.39.0') +implementation platform('com.google.cloud:libraries-bom:26.42.0') implementation 'com.google.cloud:google-cloud-spanner' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-spanner:6.67.0' +implementation 'com.google.cloud:google-cloud-spanner:6.69.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.67.0" +libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.69.0" ``` @@ -671,7 +671,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-spanner.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.67.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.69.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles