From d8e632026ae8f32fd6a12f2d3e95ed6357a3c2b2 Mon Sep 17 00:00:00 2001 From: Dmitry Ivankov Date: Thu, 12 Aug 2021 13:39:31 +0200 Subject: [PATCH 1/5] Set projectId to a default value in emulator case Spanner client wants to have a projectId option set, by default it also tries to pick it up from [lots of places](https://github.com/googleapis/java-core/blob/375983090b3700b3fb6a1953626db7efca49cc51/google-cloud-core/src/main/java/com/google/cloud/ServiceOptions.java#L372) For emulator case none of those may be present as it could be that neither gcloud nor default application credentials are configured, but emulator is accessible nevertheless. Set default project id in SpannerOptions, value doesn't matter so much as emulator would be happy with any value it seems. Note that alternatively it could be improved in base ServiceOptions, but not sure about assumptions there. --- .../main/java/com/google/cloud/spanner/SpannerOptions.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index 621baf86906..c5f56cd712b 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -1134,6 +1134,12 @@ public SpannerOptions build() { this.setChannelConfigurator(ManagedChannelBuilder::usePlaintext); // As we are using plain text, we should never send any credentials. this.setCredentials(NoCredentials.getInstance()); + // Default project id resolution might fail, but in emulator case + // any project id would work, one from credentials or filesystem isn't + // strictly needed + if (super.getProjectId() == null) { + super.setProjetcId("your-project-id"); + } } return new SpannerOptions(this); } From 9740d9e0014be09cf3fe462ccd724d26dc9800b7 Mon Sep 17 00:00:00 2001 From: Dmitry Ivankov Date: Thu, 12 Aug 2021 13:40:30 +0200 Subject: [PATCH 2/5] Update google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java --- .../main/java/com/google/cloud/spanner/SpannerOptions.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index c5f56cd712b..7dbb62da02d 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -1137,8 +1137,8 @@ public SpannerOptions build() { // Default project id resolution might fail, but in emulator case // any project id would work, one from credentials or filesystem isn't // strictly needed - if (super.getProjectId() == null) { - super.setProjetcId("your-project-id"); + if (this.getProjectId() == null) { + this.setProjetcId("your-project-id"); } } return new SpannerOptions(this); From 9edd63e446f404db638ce2f077f5aa2ceca03448 Mon Sep 17 00:00:00 2001 From: Thiago Nunes Date: Fri, 13 Aug 2021 14:46:44 +1000 Subject: [PATCH 3/5] docs: update comment for emulator default project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Knut Olav Løite --- .../main/java/com/google/cloud/spanner/SpannerOptions.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index 7dbb62da02d..cecaccd1186 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -1134,9 +1134,8 @@ public SpannerOptions build() { this.setChannelConfigurator(ManagedChannelBuilder::usePlaintext); // As we are using plain text, we should never send any credentials. this.setCredentials(NoCredentials.getInstance()); - // Default project id resolution might fail, but in emulator case - // any project id would work, one from credentials or filesystem isn't - // strictly needed + // Default project id resolution might fail, but the emulator accepts any + // project id, so we can safely use a dummy id. if (this.getProjectId() == null) { this.setProjetcId("your-project-id"); } From ba4ea3405baaca3387a7ca5c5d25749f5c9f1775 Mon Sep 17 00:00:00 2001 From: Thiago Nunes Date: Fri, 13 Aug 2021 14:47:02 +1000 Subject: [PATCH 4/5] fix: set emulator project id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Knut Olav Løite --- .../src/main/java/com/google/cloud/spanner/SpannerOptions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index cecaccd1186..db747b65de4 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -1137,7 +1137,7 @@ public SpannerOptions build() { // Default project id resolution might fail, but the emulator accepts any // project id, so we can safely use a dummy id. if (this.getProjectId() == null) { - this.setProjetcId("your-project-id"); + this.setProjetcId("emulator-project-id"); } } return new SpannerOptions(this); From f28dddb2b4f1e8befc906a4c843e65523b152a2d Mon Sep 17 00:00:00 2001 From: Dmitry Ivankov Date: Fri, 13 Aug 2021 10:24:00 +0200 Subject: [PATCH 5/5] Update google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java --- .../src/main/java/com/google/cloud/spanner/SpannerOptions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index db747b65de4..19b0be625c0 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -1137,7 +1137,7 @@ public SpannerOptions build() { // Default project id resolution might fail, but the emulator accepts any // project id, so we can safely use a dummy id. if (this.getProjectId() == null) { - this.setProjetcId("emulator-project-id"); + this.setProjectId("emulator-project-id"); } } return new SpannerOptions(this);