From 4a4551a0cebfbec3f5f63b115f4e21e94163b979 Mon Sep 17 00:00:00 2001 From: Mairbek Khadikov Date: Tue, 30 May 2017 11:54:55 -0700 Subject: [PATCH] Avoid reading projectId from environment variable in tests. SpannerOptions.Builder requires projectId to be not-null. --- .../beam/sdk/io/gcp/spanner/SpannerIO.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java index c5325bb5a85f..5058d13f77bb 100644 --- a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java +++ b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java @@ -149,14 +149,6 @@ abstract static class Builder { abstract Write build(); } - SpannerOptions getSpannerOptions() { - SpannerOptions.Builder builder = SpannerOptions.newBuilder(); - if (getServiceFactory() != null) { - builder.setServiceFactory(getServiceFactory()); - } - return builder.build(); - } - /** * Returns a new {@link SpannerIO.Write} that will write to the specified Cloud Spanner project. * @@ -259,10 +251,10 @@ static class SpannerWriteFn extends DoFn { @Setup public void setup() throws Exception { - spanner = spec.getSpannerOptions().getService(); - dbClient = - spanner.getDatabaseClient( - DatabaseId.of(projectId(), spec.getInstanceId(), spec.getDatabaseId())); + SpannerOptions spannerOptions = getSpannerOptions(); + spanner = spannerOptions.getService(); + dbClient = spanner.getDatabaseClient( + DatabaseId.of(projectId(), spec.getInstanceId(), spec.getDatabaseId())); mutations = new ArrayList<>(); batchSizeBytes = 0; } @@ -299,6 +291,17 @@ public void teardown() throws Exception { spanner = null; } + private SpannerOptions getSpannerOptions() { + SpannerOptions.Builder spannerOptionsBuider = SpannerOptions.newBuilder(); + if (spec.getServiceFactory() != null) { + spannerOptionsBuider.setServiceFactory(spec.getServiceFactory()); + } + if (spec.getProjectId() != null) { + spannerOptionsBuider.setProjectId(spec.getProjectId()); + } + return spannerOptionsBuider.build(); + } + /** * Writes a batch of mutations to Cloud Spanner. *