From b0bca8f57fbe7af5d08025c94a90ff703571f563 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2019 13:33:29 -0400 Subject: [PATCH 01/17] chore: release 1.6.1-SNAPSHOT (#43) * updated versions.txt [ci skip] * updated google-cloud-bigtable-emulator/pom.xml [ci skip] * updated google-cloud-bigtable/pom.xml [ci skip] * updated grpc-google-cloud-bigtable-admin-v2/pom.xml [ci skip] * updated grpc-google-cloud-bigtable-v2/pom.xml [ci skip] * updated pom.xml [ci skip] * updated proto-google-cloud-bigtable-admin-v2/pom.xml [ci skip] * updated proto-google-cloud-bigtable-v2/pom.xml [ci skip] --- google-cloud-bigtable-emulator/pom.xml | 4 ++-- google-cloud-bigtable/pom.xml | 4 ++-- grpc-google-cloud-bigtable-admin-v2/pom.xml | 4 ++-- grpc-google-cloud-bigtable-v2/pom.xml | 4 ++-- pom.xml | 12 ++++++------ proto-google-cloud-bigtable-admin-v2/pom.xml | 4 ++-- proto-google-cloud-bigtable-v2/pom.xml | 4 ++-- versions.txt | 12 ++++++------ 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml index 00ba8c98be..7b3f227061 100644 --- a/google-cloud-bigtable-emulator/pom.xml +++ b/google-cloud-bigtable-emulator/pom.xml @@ -5,7 +5,7 @@ 4.0.0 google-cloud-bigtable-emulator - 0.115.0 + 0.115.1-SNAPSHOT Google Cloud Java - Bigtable Emulator https://github.com/googleapis/java-bigtable @@ -14,7 +14,7 @@ com.google.cloud google-cloud-bigtable-parent - 1.6.0 + 1.6.1-SNAPSHOT scm:git:git@github.com:googleapis/java-bigtable.git diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 8d3ae2850a..f3d3a965dc 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigtable - 1.6.0 + 1.6.1-SNAPSHOT jar Google Cloud Bigtable https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigtable @@ -12,7 +12,7 @@ com.google.cloud google-cloud-bigtable-parent - 1.6.0 + 1.6.1-SNAPSHOT google-cloud-bigtable diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index 8076d16f6f..3775a57ebf 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 0.82.0 + 0.82.1-SNAPSHOT grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 1.6.0 + 1.6.1-SNAPSHOT diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index 4de12ea8d2..ef69b1aa1f 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 0.82.0 + 0.82.1-SNAPSHOT grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 1.6.0 + 1.6.1-SNAPSHOT diff --git a/pom.xml b/pom.xml index a35bf6d68c..90945ca8f7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 1.6.0 + 1.6.1-SNAPSHOT Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -194,27 +194,27 @@ com.google.cloud google-cloud-bigtable-emulator - 0.115.0 + 0.115.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 0.82.0 + 0.82.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 0.82.0 + 0.82.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 0.82.0 + 0.82.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-v2 - 0.82.0 + 0.82.1-SNAPSHOT diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index be1244d80f..7957a819c1 100644 --- a/proto-google-cloud-bigtable-admin-v2/pom.xml +++ b/proto-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 0.82.0 + 0.82.1-SNAPSHOT proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 1.6.0 + 1.6.1-SNAPSHOT diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index f86dd1be57..ca58ae1218 100644 --- a/proto-google-cloud-bigtable-v2/pom.xml +++ b/proto-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 0.82.0 + 0.82.1-SNAPSHOT proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 1.6.0 + 1.6.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 91d60a313b..9205d4f5e1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,9 +1,9 @@ # Format: # module:released-version:current-version -google-cloud-bigtable:1.6.0:1.6.0 -grpc-google-cloud-bigtable-admin-v2:0.82.0:0.82.0 -grpc-google-cloud-bigtable-v2:0.82.0:0.82.0 -proto-google-cloud-bigtable-admin-v2:0.82.0:0.82.0 -proto-google-cloud-bigtable-v2:0.82.0:0.82.0 -google-cloud-bigtable-emulator:0.115.0:0.115.0 +google-cloud-bigtable:1.6.0:1.6.1-SNAPSHOT +grpc-google-cloud-bigtable-admin-v2:0.82.0:0.82.1-SNAPSHOT +grpc-google-cloud-bigtable-v2:0.82.0:0.82.1-SNAPSHOT +proto-google-cloud-bigtable-admin-v2:0.82.0:0.82.1-SNAPSHOT +proto-google-cloud-bigtable-v2:0.82.0:0.82.1-SNAPSHOT +google-cloud-bigtable-emulator:0.115.0:0.115.1-SNAPSHOT From 4ca7e2fac3c7b317a530dd9d2c3db9214b2b9d12 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 28 Oct 2019 06:10:21 -0700 Subject: [PATCH 02/17] [CHANGE ME] Re-generated to pick up changes in the API or client library generator. (#45) --- .kokoro/release/drop.cfg | 3 --- .kokoro/release/promote.cfg | 4 ---- synth.metadata | 10 +++++----- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/.kokoro/release/drop.cfg b/.kokoro/release/drop.cfg index 220c949ad1..0eeb645725 100644 --- a/.kokoro/release/drop.cfg +++ b/.kokoro/release/drop.cfg @@ -4,6 +4,3 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/java-bigtable/.kokoro/release/drop.sh" } - -# Download staging properties file. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java/releases/java-bigtable" \ No newline at end of file diff --git a/.kokoro/release/promote.cfg b/.kokoro/release/promote.cfg index 60c283ca29..0e93aade6b 100644 --- a/.kokoro/release/promote.cfg +++ b/.kokoro/release/promote.cfg @@ -4,7 +4,3 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/java-bigtable/.kokoro/release/promote.sh" } - -# Download staging properties file. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java/releases/java-bigtable" - diff --git a/synth.metadata b/synth.metadata index 2071b47d87..3b7fe802cc 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,19 +1,19 @@ { - "updateTime": "2019-10-23T07:53:18.358413Z", + "updateTime": "2019-10-26T07:53:02.643440Z", "sources": [ { "generator": { "name": "artman", - "version": "0.40.2", - "dockerImage": "googleapis/artman@sha256:3b8f7d9b4c206843ce08053474f5c64ae4d388ff7d995e68b59fb65edf73eeb9" + "version": "0.40.3", + "dockerImage": "googleapis/artman@sha256:c805f50525f5f557886c94ab76f56eaa09cb1da58c3ee95111fd34259376621a" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "0d0dc5172f16c9815a5eda6e99408fb96282f608", - "internalRef": "276178557" + "sha": "d27a44798506d28e8e6d874bd128da43f45f74c4", + "internalRef": "276716410" } }, { From a16cb8864c0c8be26d34e71dbf261dbfc5e09bac Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Mon, 28 Oct 2019 15:38:12 -0400 Subject: [PATCH 03/17] fix: handle recovery failures during stream reframing failure (#46) * fix: handle recovery failures during stream reframing failure This was discovered while debugging another issue. While deflaking ReadRowRetryTest, this issue came up preventing me from seeing the underlying issue. ReframingResponseObserver#deliverUnsafe() should never fail. However if does, it will try to cancel the upstream stream and notify the downstream observer. However canceling the upstream can throw an exception and prevent the downstram observer from being notified of any error. This fix will catch cancellation errors and add them as suppressed exceptions to the original failure * add test * format --- .../reframing/ReframingResponseObserver.java | 9 ++- .../ReframingResponseObserverTest.java | 57 +++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserver.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserver.java index 849c56b193..c46eb55ff9 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserver.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserver.java @@ -244,7 +244,14 @@ private void deliver() { // purposefully leaving the lock non-zero and notifying the outerResponseObserver of the // error. Care must be taken to avoid calling close twice in case the first invocation threw // an error. - innerController.cancel(); + try { + innerController.cancel(); + } catch (Throwable cancelError) { + t.addSuppressed( + new IllegalStateException( + "Failed to cancel upstream while recovering from an unexpected error", + cancelError)); + } if (!finished) { outerResponseObserver.onError(t); } diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserverTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserverTest.java index d6c1287d01..426c27f5a3 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserverTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserverTest.java @@ -15,6 +15,7 @@ */ package com.google.cloud.bigtable.gaxx.reframing; +import com.google.api.gax.rpc.StreamController; import com.google.cloud.bigtable.gaxx.testing.FakeStreamingApi.ServerStreamingStashCallable; import com.google.cloud.bigtable.gaxx.testing.FakeStreamingApi.ServerStreamingStashCallable.StreamControllerStash; import com.google.cloud.bigtable.gaxx.testing.MockStreamingApi.MockResponseObserver; @@ -41,6 +42,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; +import org.mockito.Mockito; @RunWith(JUnit4.class) public class ReframingResponseObserverTest { @@ -374,6 +376,61 @@ public String pop() { Truth.assertThat(lastCall.getNumDelivered()).isEqualTo(2); } + /** + * Test the scenario where the reframer throws an exception on incoming data and the upstream + * throws an exception during cleanup when cancel is called. + */ + @Test + public void testFailedRecoveryHandling() { + MockResponseObserver outerObserver = new MockResponseObserver<>(true); + final RuntimeException fakeReframerError = new RuntimeException("fake reframer error"); + + Reframer brokenReframer = + new Reframer() { + @Override + public void push(String ignored) { + throw fakeReframerError; + } + + @Override + public boolean hasFullFrame() { + return false; + } + + @Override + public boolean hasPartialFrame() { + return false; + } + + @Override + public String pop() { + throw new IllegalStateException("should not be called"); + } + }; + ReframingResponseObserver middleware = + new ReframingResponseObserver<>(outerObserver, brokenReframer); + + // Configure the mock inner controller to fail cancellation. + StreamController mockInnerController = Mockito.mock(StreamController.class); + RuntimeException fakeCancelError = new RuntimeException("fake cancel error"); + Mockito.doThrow(fakeCancelError).when(mockInnerController).cancel(); + + // Jumpstart a call & feed it data + middleware.onStartImpl(mockInnerController); + middleware.onResponseImpl("1"); + + // Make sure that the outer observer was notified with the reframer, which contains a suppressed + // cancellation error. + Throwable finalError = outerObserver.getFinalError(); + Truth.assertThat(finalError).isSameInstanceAs(fakeReframerError); + Truth.assertThat(ImmutableList.of(finalError.getSuppressed())).hasSize(1); + Truth.assertThat(finalError.getSuppressed()[0]).isInstanceOf(IllegalStateException.class); + Truth.assertThat(finalError.getSuppressed()[0]) + .hasMessageThat() + .isEqualTo("Failed to cancel upstream while recovering from an unexpected error"); + Truth.assertThat(finalError.getSuppressed()[0].getCause()).isSameInstanceAs(fakeCancelError); + } + /** * A simple implementation of a {@link Reframer}. The input string is split by dash, and the * output is concatenated by dashes. The test can verify M:N behavior by adjusting the From 18576f55c34dbdc4c0ac79639dbc1dbf1ce7affe Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Mon, 28 Oct 2019 15:52:51 -0400 Subject: [PATCH 04/17] fix: fix maven test configs to make sure admin tests don't clobber data tests (#47) * fix: fix maven test configs to make sure admin tests don't clobber data tests * Update include patterns --- google-cloud-bigtable/pom.xml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index f3d3a965dc..5bd659ea7d 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -206,8 +206,9 @@ emulator - com.google.cloud.bigtable.data.v2.it.** - com.google.cloud.bigtable.admin.v2.it.** + + com.google.cloud.bigtable.**.it.*IT + ${project.build.directory}/failsafe-reports/failsafe-summary-emulator-it.xml @@ -234,8 +235,9 @@ prod - com.google.cloud.bigtable.data.v2.it.** - com.google.cloud.bigtable.admin.v2.it.** + + com.google.cloud.bigtable.**.it.*IT + ${project.build.directory}/failsafe-reports/failsafe-summary-prod-it.xml @@ -268,8 +270,10 @@ bigtable - - com.google.cloud.bigtable.data.v2.it.** + + + com.google.cloud.bigtable.data.v2.it.*IT + ${project.build.directory}/failsafe-reports/failsafe-summary-directpath-it.xml From 3a500af5952632cfd266af45048bcf84e209257a Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Mon, 28 Oct 2019 18:35:38 -0400 Subject: [PATCH 05/17] chore: Temporarily move DirectPath tests back to the test endpoint. (#44) * Temporarily update DirectPath tests to use test env to unblock internal testing until the prod endpoint goes live * add missing port * format * Rename ProdEnv -> CloudEnv to avoid confusion * fix: handle recovery failures during stream reframing failure This was discovered while debugging another issue. While deflaking ReadRowRetryTest, this issue came up preventing me from seeing the underlying issue. ReframingResponseObserver#deliverUnsafe() should never fail. However if does, it will try to cancel the upstream stream and notify the downstream observer. However canceling the upstream can throw an exception and prevent the downstram observer from being notified of any error. This fix will catch cancellation errors and add them as suppressed exceptions to the original failure * fix: fix maven test configs to make sure admin tests don't clobber data tests --- google-cloud-bigtable/pom.xml | 9 ++- .../env/{ProdEnv.java => CloudEnv.java} | 56 +++++++++++++++---- .../test_helpers/env/TestEnvRule.java | 8 +-- 3 files changed, 56 insertions(+), 17 deletions(-) rename google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/{ProdEnv.java => CloudEnv.java} (59%) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 5bd659ea7d..c6bb61db2b 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -233,7 +233,7 @@ - prod + cloud com.google.cloud.bigtable.**.it.*IT @@ -262,9 +262,14 @@ - prod + cloud true + + + + testdirectpath-bigtable.sandbox.googleapis.com:443 + test-bigtableadmin.sandbox.googleapis.com:443 diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/ProdEnv.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java similarity index 59% rename from google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/ProdEnv.java rename to google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java index 1a610e7c39..b393fdef9a 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/ProdEnv.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java @@ -16,10 +16,14 @@ package com.google.cloud.bigtable.test_helpers.env; import com.google.cloud.bigtable.admin.v2.BigtableInstanceAdminClient; +import com.google.cloud.bigtable.admin.v2.BigtableInstanceAdminSettings; import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient; +import com.google.cloud.bigtable.admin.v2.BigtableTableAdminSettings; import com.google.cloud.bigtable.data.v2.BigtableDataClient; import com.google.cloud.bigtable.data.v2.BigtableDataSettings; +import com.google.common.base.MoreObjects; import java.io.IOException; +import javax.annotation.Nullable; /** * Test environment that uses an existing bigtable table. The table must have a pre-existing family @@ -31,7 +35,10 @@ *
  • {@code bigtable.table} * */ -class ProdEnv extends AbstractTestEnv { +class CloudEnv extends AbstractTestEnv { + private static final String DATA_ENDPOINT_PROPERTY_NAME = "bigtable.data-endpoint"; + private static final String ADMIN_ENDPOINT_PROPERTY_NAME = "bigtable.admin-endpoint"; + private static final String PROJECT_PROPERTY_NAME = "bigtable.project"; private static final String INSTANCE_PROPERTY_NAME = "bigtable.instance"; private static final String TABLE_PROPERTY_NAME = "bigtable.table"; @@ -40,37 +47,60 @@ class ProdEnv extends AbstractTestEnv { private final String instanceId; private final String tableId; - private final BigtableDataSettings dataSettings; + private final BigtableDataSettings.Builder dataSettings; + private final BigtableTableAdminSettings.Builder tableAdminSettings; + private final BigtableInstanceAdminSettings.Builder instanceAdminSettings; private BigtableDataClient dataClient; private BigtableTableAdminClient tableAdminClient; private BigtableInstanceAdminClient instanceAdminClient; - static ProdEnv fromSystemProperties() { - return new ProdEnv( + static CloudEnv fromSystemProperties() { + return new CloudEnv( + getOptionalProperty(DATA_ENDPOINT_PROPERTY_NAME, "bigtable.googleapis.com:443"), + getOptionalProperty(ADMIN_ENDPOINT_PROPERTY_NAME, "bigtableadmin.googleapis.com:443"), getRequiredProperty(PROJECT_PROPERTY_NAME), getRequiredProperty(INSTANCE_PROPERTY_NAME), getRequiredProperty(TABLE_PROPERTY_NAME)); } - private ProdEnv(String projectId, String instanceId, String tableId) { + private CloudEnv( + @Nullable String dataEndpoint, + @Nullable String adminEndpoint, + String projectId, + String instanceId, + String tableId) { this.projectId = projectId; this.instanceId = instanceId; this.tableId = tableId; this.dataSettings = - BigtableDataSettings.newBuilder().setProjectId(projectId).setInstanceId(instanceId).build(); + BigtableDataSettings.newBuilder().setProjectId(projectId).setInstanceId(instanceId); + if (dataEndpoint != null) { + dataSettings.stubSettings().setEndpoint(dataEndpoint); + } + + this.tableAdminSettings = + BigtableTableAdminSettings.newBuilder().setProjectId(projectId).setInstanceId(instanceId); + if (adminEndpoint != null) { + this.tableAdminSettings.stubSettings().setEndpoint(adminEndpoint); + } + + this.instanceAdminSettings = BigtableInstanceAdminSettings.newBuilder().setProjectId(projectId); + if (adminEndpoint != null) { + this.instanceAdminSettings.stubSettings().setEndpoint(adminEndpoint); + } } @Override void start() throws IOException { - dataClient = BigtableDataClient.create(dataSettings); - tableAdminClient = BigtableTableAdminClient.create(projectId, instanceId); - instanceAdminClient = BigtableInstanceAdminClient.create(projectId); + dataClient = BigtableDataClient.create(dataSettings.build()); + tableAdminClient = BigtableTableAdminClient.create(tableAdminSettings.build()); + instanceAdminClient = BigtableInstanceAdminClient.create(instanceAdminSettings.build()); } @Override - void stop() throws Exception { + void stop() { dataClient.close(); tableAdminClient.close(); instanceAdminClient.close(); @@ -93,7 +123,7 @@ public BigtableInstanceAdminClient getInstanceAdminClient() { @Override public BigtableDataSettings getDataClientSettings() { - return dataSettings; + return dataSettings.build(); } @Override @@ -111,6 +141,10 @@ public String getTableId() { return tableId; } + private static String getOptionalProperty(String prop, String defaultValue) { + return MoreObjects.firstNonNull(System.getProperty(prop), defaultValue); + } + private static String getRequiredProperty(String prop) { String value = System.getProperty(prop); if (value == null || value.isEmpty()) { diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/TestEnvRule.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/TestEnvRule.java index 293f8b47e7..1905f14a16 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/TestEnvRule.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/TestEnvRule.java @@ -30,9 +30,9 @@ *
      *
    • {@code emulator}: uses the cbtemulator component that can be installed by gcloud *
    • {@code prod}: uses a pre-existing production table. The target table is defined using - * system properties listed in {@link ProdEnv} and application default credentials + * system properties listed in {@link CloudEnv} and application default credentials *
    • {@code direct_path}: uses a pre-existing table in the direct path test environment. The - * target table is defined using system properties listed in {@link ProdEnv} and application + * target table is defined using system properties listed in {@link CloudEnv} and application * default credentials *
    * @@ -60,8 +60,8 @@ protected void before() throws Throwable { case "emulator": testEnv = EmulatorEnv.createBundled(); break; - case "prod": - testEnv = ProdEnv.fromSystemProperties(); + case "cloud": + testEnv = CloudEnv.fromSystemProperties(); break; default: throw new IllegalArgumentException( From f2d7c834d34e7d69ed8071ee93cbd842936eabb7 Mon Sep 17 00:00:00 2001 From: Rahul Kesharwani <42969463+rahulKQL@users.noreply.github.com> Date: Tue, 29 Oct 2019 09:46:57 +0530 Subject: [PATCH 06/17] Added note about timestamp granularity in MutationApi interface. (#39) * Added note about timestamp granularity in MutationApi interface. * Reworded the JavaDoc note for timestamp format --- .../bigtable/data/v2/models/MutationApi.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/MutationApi.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/MutationApi.java index 8967a573ff..20c7ab2715 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/MutationApi.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/MutationApi.java @@ -35,6 +35,10 @@ public interface MutationApi> { * Adds a mutation which sets the value of the specified cell. * *

    This is a convenience override that converts Strings to ByteStrings. + * + *

    Note: The timestamp values are in microseconds but must match the granularity of the + * table(defaults to `MILLIS`). Therefore, the given value must be a multiple of 1000 (millisecond + * granularity). For example: `1571902339435000`. */ T setCell( @Nonnull String familyName, @Nonnull String qualifier, long timestamp, @Nonnull String value); @@ -46,7 +50,13 @@ T setCell( */ T setCell(@Nonnull String familyName, @Nonnull ByteString qualifier, @Nonnull ByteString value); - /** Adds a mutation which sets the value of the specified cell. */ + /** + * Adds a mutation which sets the value of the specified cell. + * + *

    Note: The timestamp values are in microseconds but must match the granularity of the + * table(defaults to `MILLIS`). Therefore, the given value must be a multiple of 1000 (millisecond + * granularity). For example: `1571902339435000`. + */ T setCell( @Nonnull String familyName, @Nonnull ByteString qualifier, @@ -65,6 +75,10 @@ T setCell( * Adds a mutation which sets the value of the specified cell. * *

    This is a convenience override that converts Strings to ByteStrings. + * + *

    Note: The timestamp values are in microseconds but must match the granularity of the + * table(defaults to `MILLIS`). Therefore, the given value must be a multiple of 1000 (millisecond + * granularity). For example: `1571902339435000`. */ T setCell(@Nonnull String familyName, @Nonnull String qualifier, long timestamp, long value); @@ -75,7 +89,13 @@ T setCell( */ T setCell(@Nonnull String familyName, @Nonnull ByteString qualifier, long value); - /** Adds a mutation which sets the value of the specified cell. */ + /** + * Adds a mutation which sets the value of the specified cell. + * + *

    Note: The timestamp values are in microseconds but must match the granularity of the + * table(defaults to `MILLIS`). Therefore, the given value must be a multiple of 1000 (millisecond + * granularity). For example: `1571902339435000`. + */ T setCell(@Nonnull String familyName, @Nonnull ByteString qualifier, long timestamp, long value); /** Adds a mutation which deletes cells from the specified column. */ From f4dd552ea00044babe1273e322b8a330f093b2b0 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Tue, 29 Oct 2019 11:58:53 -0400 Subject: [PATCH 07/17] feat: add bom (#50) --- google-cloud-bigtable-bom/pom.xml | 116 ++++++++++++++++++++++++++++++ pom.xml | 1 + 2 files changed, 117 insertions(+) create mode 100644 google-cloud-bigtable-bom/pom.xml diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml new file mode 100644 index 0000000000..dd5590d3c5 --- /dev/null +++ b/google-cloud-bigtable-bom/pom.xml @@ -0,0 +1,116 @@ + + + 4.0.0 + com.google.cloud + google-cloud-bigtable-bom + 1.6.1-SNAPSHOT + pom + + com.google.cloud + google-cloud-shared-config + 0.2.1 + + + Google Cloud Bigtable BOM + https://github.com/googleapis/java-bigtable + + BOM for Google Cloud Bigtable + + + + Google LLC + + + + + chingor13 + Jeff Ching + chingor@google.com + Google LLC + + Developer + + + + igorberstein + Igor Bernstein + igorbernstein@google.com + Google LLC + + Developer + + + + + + scm:git:https://github.com/googleapis/java-bigtable.git + scm:git:git@github.com:googleapis/java-bigtable.git + https://github.com/googleapis/java-bigtable + + + + + sonatype-nexus-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-staging + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + + + com.google.cloud + google-cloud-bigtable + 1.6.1-SNAPSHOT + + + com.google.cloud + google-cloud-bigtable-emulator + 0.115.1-SNAPSHOT + + + com.google.api.grpc + grpc-google-cloud-bigtable-admin-v2 + 0.82.1-SNAPSHOT + + + com.google.api.grpc + grpc-google-cloud-bigtable-v2 + 0.82.1-SNAPSHOT + + + com.google.api.grpc + proto-google-cloud-bigtable-admin-v2 + 0.82.1-SNAPSHOT + + + com.google.api.grpc + proto-google-cloud-bigtable-v2 + 0.82.1-SNAPSHOT + + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + true + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 90945ca8f7..e8e18bba0d 100644 --- a/pom.xml +++ b/pom.xml @@ -380,6 +380,7 @@ grpc-google-cloud-bigtable-admin-v2 google-cloud-bigtable google-cloud-bigtable-emulator + google-cloud-bigtable-bom From dbfa73a1a336d0afb03e7755d17786216199a851 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Tue, 29 Oct 2019 13:21:40 -0400 Subject: [PATCH 08/17] fix: align version numbers for proto and grpc versions (#52) --- google-cloud-bigtable-bom/pom.xml | 8 ++++---- grpc-google-cloud-bigtable-admin-v2/pom.xml | 2 +- grpc-google-cloud-bigtable-v2/pom.xml | 2 +- pom.xml | 8 ++++---- proto-google-cloud-bigtable-admin-v2/pom.xml | 2 +- proto-google-cloud-bigtable-v2/pom.xml | 2 +- versions.txt | 8 ++++---- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml index dd5590d3c5..3086d4340f 100644 --- a/google-cloud-bigtable-bom/pom.xml +++ b/google-cloud-bigtable-bom/pom.xml @@ -82,22 +82,22 @@ com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index 3775a57ebf..56abc82434 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index ef69b1aa1f..e20d559256 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 diff --git a/pom.xml b/pom.xml index e8e18bba0d..c1f2f82161 100644 --- a/pom.xml +++ b/pom.xml @@ -199,22 +199,22 @@ com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index 7957a819c1..9b0126dc62 100644 --- a/proto-google-cloud-bigtable-admin-v2/pom.xml +++ b/proto-google-cloud-bigtable-admin-v2/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index ca58ae1218..ee7eff0ea6 100644 --- a/proto-google-cloud-bigtable-v2/pom.xml +++ b/proto-google-cloud-bigtable-v2/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 0.82.1-SNAPSHOT + 1.6.1-SNAPSHOT proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 diff --git a/versions.txt b/versions.txt index 9205d4f5e1..ed26d32703 100644 --- a/versions.txt +++ b/versions.txt @@ -2,8 +2,8 @@ # module:released-version:current-version google-cloud-bigtable:1.6.0:1.6.1-SNAPSHOT -grpc-google-cloud-bigtable-admin-v2:0.82.0:0.82.1-SNAPSHOT -grpc-google-cloud-bigtable-v2:0.82.0:0.82.1-SNAPSHOT -proto-google-cloud-bigtable-admin-v2:0.82.0:0.82.1-SNAPSHOT -proto-google-cloud-bigtable-v2:0.82.0:0.82.1-SNAPSHOT +grpc-google-cloud-bigtable-admin-v2:1.6.0:1.6.1-SNAPSHOT +grpc-google-cloud-bigtable-v2:1.6.0:1.6.1-SNAPSHOT +proto-google-cloud-bigtable-admin-v2:1.6.0:1.6.1-SNAPSHOT +proto-google-cloud-bigtable-v2:1.6.0:1.6.1-SNAPSHOT google-cloud-bigtable-emulator:0.115.0:0.115.1-SNAPSHOT From f355230e6591af686c44aca6e96f3442b0c4c80b Mon Sep 17 00:00:00 2001 From: Justin Uang Date: Tue, 29 Oct 2019 15:17:02 -0400 Subject: [PATCH 09/17] Removing outdated message about being 0.y.z (#54) --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 024b44f11d..5ef66d1363 100644 --- a/README.md +++ b/README.md @@ -335,9 +335,6 @@ Java 7 or above is required for using this client. This library follows [Semantic Versioning](http://semver.org/). -It is currently in major version zero (`0.y.z`), which means that anything may -change at any time and the public API should not be considered stable. - ## Contributing Contributions to this library are always welcome and highly encouraged. From e5a7b0f77cec9f0b419b5483ee460e8d2e6db0b1 Mon Sep 17 00:00:00 2001 From: Justin Uang Date: Wed, 30 Oct 2019 16:47:06 -0400 Subject: [PATCH 10/17] Add section about gRPC version conflicts to README (#53) * Add section about gRPC version conflicts to README * Fix --- README.md | 29 +++++++++++++++++++++++++++++ pom.xml | 1 + 2 files changed, 30 insertions(+) diff --git a/README.md b/README.md index 5ef66d1363..e46a339a3b 100644 --- a/README.md +++ b/README.md @@ -162,6 +162,8 @@ try { } ``` +TIP: If you are experiencing version conflicts with gRPC, see [Version Conflicts](#version-conflicts). + ## OpenCensus Tracing Cloud Bigtable client supports [OpenCensus Tracing](https://opencensus.io/tracing/), @@ -318,6 +320,33 @@ StackdriverStatsExporter.createAndRegister( BigtableDataSettings.enableOpenCensusStats(); ``` +## Version Conflicts + +google-cloud-bigtable depends on gRPC directly which may conflict with the versions brought +in by other libraries, for example Apache Beam. This happens because internal dependencies +between gRPC libraries are pinned to an exact version of grpc-core +(see [here](https://github.com/grpc/grpc-java/commit/90db93b990305aa5a8428cf391b55498c7993b6e)). +If both google-cloud-bigtable and the other library bring in two gRPC libraries that depend +on the different versions of grpc-core, then dependency resolution will fail. +The easiest way to fix this is to depend on the gRPC bom, which will force all the gRPC +transitive libraries to use the same version. + +Add the following to your project's pom.xml. + +``` + + + + io.grpc + grpc-bom + 1.24.1 + pom + import + + + +``` + ## Troubleshooting To get help, follow the instructions in the [shared Troubleshooting diff --git a/pom.xml b/pom.xml index c1f2f82161..f23f2bcbc5 100644 --- a/pom.xml +++ b/pom.xml @@ -158,6 +158,7 @@ 1.8.1 1.17.0 1.91.3 + 1.24.1 28.1-android 0.24.0 From 846a44fbf9ebd5691a431e79a09a049aea5fd4f0 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Fri, 1 Nov 2019 10:33:10 -0400 Subject: [PATCH 11/17] docs: cleanup links to java-bigtable and javadoc (#56) --- README.md | 3 +-- google-cloud-bigtable/pom.xml | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e46a339a3b..e8c8cabb8c 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,7 @@ Java idiomatic client for [Cloud Bigtable][cloud-bigtable]. [![Codacy Badge](https://api.codacy.com/project/badge/grade/9da006ad7c3a4fe1abd142e77c003917)](https://www.codacy.com/app/mziccard/google-cloud-java) - [Product Documentation][bigtable-product-docs] -- [Client Library Documentation - Data API](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/data/v2/package-summary.html) -- [Client Library Documentation - Admin API](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/package-summary.html) +- [Client Library Documentation](https://googleapis.dev/java/google-cloud-bigtable/latest/index.html) ## Quickstart diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index c6bb61db2b..34e481790a 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -5,7 +5,7 @@ 1.6.1-SNAPSHOT jar Google Cloud Bigtable - https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigtable + https://github.com/googleapis/java-bigtable Java idiomatic client for Google Cloud Bigtable. From 1d1c4deb34a85836da2aed7b07359ff923b09835 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Fri, 1 Nov 2019 13:44:16 -0400 Subject: [PATCH 12/17] fix: use proper scope for DirectPath transitive dependencies (#59) --- google-cloud-bigtable/pom.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 34e481790a..d819afb8e0 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -83,6 +83,16 @@ grpc-alts runtime + + + io.grpc + grpc-stub + runtime + io.grpc grpc-api @@ -162,11 +172,6 @@ truth test - - io.grpc - grpc-stub - test - io.grpc grpc-testing From 589c35d0757bccff3ea0620d9b9296adad16422b Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Mon, 4 Nov 2019 10:40:31 -0500 Subject: [PATCH 13/17] chore: update developer docs for testing (#60) --- CONTRIBUTING.md | 37 ++++++++++++++++++- google-cloud-bigtable/pom.xml | 7 ++++ .../scripts => scripts}/setup-test-table.sh | 0 3 files changed, 43 insertions(+), 1 deletion(-) rename {google-cloud-bigtable/scripts => scripts}/setup-test-table.sh (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ebbb59e531..48b0fa29b0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,4 +25,39 @@ information on using pull requests. ## Community Guidelines This project follows -[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). \ No newline at end of file +[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). + + +## Running Tests + +Bigtable integration tests can either be run against an emulator or a real Bigtable instance. +The target environment can be selected by setting a maven profile. By default it is set to +`bigtable-emulator-it` and other options are `bigtable-prod-it` and `bigtable-directpath-it`. + +To use the `bigtable-prod-it` and `bigtable-directpath-it` environments: + +1. Set up the target table using scripts/setup-test-table.sh +2. Download the JSON service account credentials file from the Google Developer's Console. +3. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the credentials file +4. Enable the profile and the system properties `bigtable.project`, `bigtable.instance` + and `bigtable.table` to created earlier. Example: + ```bash + mvn verify \ + -P bigtable-prod-it \ + -Dbigtable.project=my-project + -Dbigtable.instance=my-instance + -Dbigtable.table=my-table + ``` + +While developing, it might be helpful to separate running unit tests from integration tests. + +```bash +# To skip integration tests: +mvn install -DskipITs + +# To skip unit tests +mvn install -DskipUnitTests + +# To skip all tests +mvn install -DskipTests +``` \ No newline at end of file diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index d819afb8e0..0587b49650 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -16,6 +16,11 @@ google-cloud-bigtable + + + false + ${skipTests} + ${skipUnitTests} - 1.24.1 + 1.25.0 28.1-android 0.24.0 3.10.0 From 5aa87697a5e8860993a14f4ac42d675c66b3d0ff Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 6 Nov 2019 16:06:15 -0500 Subject: [PATCH 15/17] fix: fix regression in batch#close silently ignoring entry failures by upgrading to gax to 1.50.0 (#67) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 297b2364ba..c37c3a7587 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ https://googleapis.dev/java/google-api-grpc/latest 1.7 - 1.49.1 + 1.50.0 1.8.1 1.17.0 1.91.3 From 638615ae09ec2d311e82d89ea7a78137911f4eb4 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Thu, 7 Nov 2019 10:17:12 -0500 Subject: [PATCH 16/17] fix: Prevent integration tests from different profiles from trampling each other (#69) --- google-cloud-bigtable/pom.xml | 28 +++------------------------- scripts/setup-test-table.sh | 10 ++-------- 2 files changed, 5 insertions(+), 33 deletions(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 0587b49650..503f346b5c 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -220,6 +220,7 @@ com.google.cloud.bigtable.**.it.*IT ${project.build.directory}/failsafe-reports/failsafe-summary-emulator-it.xml + ${project.build.directory}/failsafe-reports/emulator-it @@ -249,6 +250,7 @@ com.google.cloud.bigtable.**.it.*IT ${project.build.directory}/failsafe-reports/failsafe-summary-prod-it.xml + ${project.build.directory}/failsafe-reports/prod-it @@ -290,6 +292,7 @@ com.google.cloud.bigtable.data.v2.it.*IT ${project.build.directory}/failsafe-reports/failsafe-summary-directpath-it.xml + ${project.build.directory}/failsafe-reports/directpath-it @@ -332,31 +335,6 @@ - - - maven-clean-plugin - 2.5 - - - clean-old-reports - - clean - - pre-integration-test - - true - - - ${project.build.directory}/failsafe-reports - - - - - - - org.apache.maven.plugins maven-failsafe-plugin diff --git a/scripts/setup-test-table.sh b/scripts/setup-test-table.sh index 6321c1154c..c8bb1e2a62 100755 --- a/scripts/setup-test-table.sh +++ b/scripts/setup-test-table.sh @@ -36,13 +36,7 @@ for ADMIN_HOST in "${ADMIN_HOSTS[@]}"; do fi # Ensure that the table exists - if ! call_cbt -instance ${INSTANCE_ID} ls | grep -q "^${TABLE_ID}\$"; then - call_cbt createtable ${TABLE_ID} - fi - - # Ensure that the family exists - if ! call_cbt ls "${TABLE_ID}" | grep -q "^$FAMILY\b"; then - call_cbt createfamily "${TABLE_ID}" "${FAMILY}" - call_cbt setgcpolicy "${TABLE_ID}" "${FAMILY}" maxversions=1 maxage=1h + if ! call_cbt -instance "$INSTANCE_ID" ls | grep -q "^${TABLE_ID}\$"; then + call_cbt createtable "$TABLE_ID" "families=$FAMILY:maxversions=1||maxage=1h" fi done From 512ba6fb6e9c7303a27fff43f92917fb5eb0d48a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2019 10:46:38 -0500 Subject: [PATCH 17/17] chore: release 1.7.0 (#51) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigtable-emulator/pom.xml [ci skip] * updated google-cloud-bigtable-bom/pom.xml [ci skip] * updated grpc-google-cloud-bigtable-admin-v2/pom.xml [ci skip] * updated grpc-google-cloud-bigtable-v2/pom.xml [ci skip] * updated proto-google-cloud-bigtable-admin-v2/pom.xml [ci skip] * updated proto-google-cloud-bigtable-v2/pom.xml [ci skip] * updated google-cloud-bigtable/pom.xml [ci skip] * updated pom.xml [ci skip] --- CHANGELOG.md | 22 ++++++++++++++++++++ README.md | 6 +++--- google-cloud-bigtable-bom/pom.xml | 14 ++++++------- google-cloud-bigtable-emulator/pom.xml | 4 ++-- google-cloud-bigtable/pom.xml | 4 ++-- grpc-google-cloud-bigtable-admin-v2/pom.xml | 4 ++-- grpc-google-cloud-bigtable-v2/pom.xml | 4 ++-- pom.xml | 12 +++++------ proto-google-cloud-bigtable-admin-v2/pom.xml | 4 ++-- proto-google-cloud-bigtable-v2/pom.xml | 4 ++-- versions.txt | 12 +++++------ 11 files changed, 56 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 993db6f742..ea7ef9a811 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## [1.7.0](https://www.github.com/googleapis/java-bigtable/compare/v1.6.0...v1.7.0) (2019-11-07) + + +### Features + +* add bom ([#50](https://www.github.com/googleapis/java-bigtable/issues/50)) ([f4dd552](https://www.github.com/googleapis/java-bigtable/commit/f4dd552ea00044babe1273e322b8a330f093b2b0)) + + +### Bug Fixes + +* align version numbers for proto and grpc versions ([#52](https://www.github.com/googleapis/java-bigtable/issues/52)) ([dbfa73a](https://www.github.com/googleapis/java-bigtable/commit/dbfa73a1a336d0afb03e7755d17786216199a851)) +* fix maven test configs to make sure admin tests don't clobber data tests ([#47](https://www.github.com/googleapis/java-bigtable/issues/47)) ([18576f5](https://www.github.com/googleapis/java-bigtable/commit/18576f55c34dbdc4c0ac79639dbc1dbf1ce7affe)) +* fix regression in batch#close silently ignoring entry failures by upgrading to gax to 1.50.0 ([#67](https://www.github.com/googleapis/java-bigtable/issues/67)) ([5aa8769](https://www.github.com/googleapis/java-bigtable/commit/5aa87697a5e8860993a14f4ac42d675c66b3d0ff)) +* handle recovery failures during stream reframing failure ([#46](https://www.github.com/googleapis/java-bigtable/issues/46)) ([a16cb88](https://www.github.com/googleapis/java-bigtable/commit/a16cb8864c0c8be26d34e71dbf261dbfc5e09bac)) +* Prevent integration tests from different profiles from trampling each other ([#69](https://www.github.com/googleapis/java-bigtable/issues/69)) ([638615a](https://www.github.com/googleapis/java-bigtable/commit/638615ae09ec2d311e82d89ea7a78137911f4eb4)) +* use proper scope for DirectPath transitive dependencies ([#59](https://www.github.com/googleapis/java-bigtable/issues/59)) ([1d1c4de](https://www.github.com/googleapis/java-bigtable/commit/1d1c4deb34a85836da2aed7b07359ff923b09835)) + + +### Documentation + +* cleanup links to java-bigtable and javadoc ([#56](https://www.github.com/googleapis/java-bigtable/issues/56)) ([846a44f](https://www.github.com/googleapis/java-bigtable/commit/846a44fbf9ebd5691a431e79a09a049aea5fd4f0)) + ## [1.6.0](https://www.github.com/googleapis/java-bigtable/compare/1.5.0...v1.6.0) (2019-10-24) diff --git a/README.md b/README.md index e8c8cabb8c..a7a16a6039 100644 --- a/README.md +++ b/README.md @@ -17,16 +17,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigtable - 1.6.0 + 1.7.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigtable:1.6.0' +compile 'com.google.cloud:google-cloud-bigtable:1.7.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "1.6.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "1.7.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml index 3086d4340f..cc74734ca5 100644 --- a/google-cloud-bigtable-bom/pom.xml +++ b/google-cloud-bigtable-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigtable-bom - 1.6.1-SNAPSHOT + 1.7.0 pom com.google.cloud @@ -72,32 +72,32 @@ com.google.cloud google-cloud-bigtable - 1.6.1-SNAPSHOT + 1.7.0 com.google.cloud google-cloud-bigtable-emulator - 0.115.1-SNAPSHOT + 0.116.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 1.6.1-SNAPSHOT + 1.7.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 1.6.1-SNAPSHOT + 1.7.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 1.6.1-SNAPSHOT + 1.7.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 1.6.1-SNAPSHOT + 1.7.0 diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml index 7b3f227061..ede19ae289 100644 --- a/google-cloud-bigtable-emulator/pom.xml +++ b/google-cloud-bigtable-emulator/pom.xml @@ -5,7 +5,7 @@ 4.0.0 google-cloud-bigtable-emulator - 0.115.1-SNAPSHOT + 0.116.0 Google Cloud Java - Bigtable Emulator https://github.com/googleapis/java-bigtable @@ -14,7 +14,7 @@ com.google.cloud google-cloud-bigtable-parent - 1.6.1-SNAPSHOT + 1.7.0 scm:git:git@github.com:googleapis/java-bigtable.git diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 503f346b5c..23c66909d0 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigtable - 1.6.1-SNAPSHOT + 1.7.0 jar Google Cloud Bigtable https://github.com/googleapis/java-bigtable @@ -12,7 +12,7 @@ com.google.cloud google-cloud-bigtable-parent - 1.6.1-SNAPSHOT + 1.7.0 google-cloud-bigtable diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index 56abc82434..62a4a0d285 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 1.6.1-SNAPSHOT + 1.7.0 grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 1.6.1-SNAPSHOT + 1.7.0 diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index e20d559256..1ebb1045cf 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 1.6.1-SNAPSHOT + 1.7.0 grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 1.6.1-SNAPSHOT + 1.7.0 diff --git a/pom.xml b/pom.xml index c37c3a7587..2378b96b63 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 1.6.1-SNAPSHOT + 1.7.0 Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -195,27 +195,27 @@ com.google.cloud google-cloud-bigtable-emulator - 0.115.1-SNAPSHOT + 0.116.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 1.6.1-SNAPSHOT + 1.7.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 1.6.1-SNAPSHOT + 1.7.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 1.6.1-SNAPSHOT + 1.7.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 1.6.1-SNAPSHOT + 1.7.0 diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index 9b0126dc62..23476197cc 100644 --- a/proto-google-cloud-bigtable-admin-v2/pom.xml +++ b/proto-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 1.6.1-SNAPSHOT + 1.7.0 proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 1.6.1-SNAPSHOT + 1.7.0 diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index ee7eff0ea6..4d404e0162 100644 --- a/proto-google-cloud-bigtable-v2/pom.xml +++ b/proto-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 1.6.1-SNAPSHOT + 1.7.0 proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 1.6.1-SNAPSHOT + 1.7.0 diff --git a/versions.txt b/versions.txt index ed26d32703..9bc4b483e2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,9 +1,9 @@ # Format: # module:released-version:current-version -google-cloud-bigtable:1.6.0:1.6.1-SNAPSHOT -grpc-google-cloud-bigtable-admin-v2:1.6.0:1.6.1-SNAPSHOT -grpc-google-cloud-bigtable-v2:1.6.0:1.6.1-SNAPSHOT -proto-google-cloud-bigtable-admin-v2:1.6.0:1.6.1-SNAPSHOT -proto-google-cloud-bigtable-v2:1.6.0:1.6.1-SNAPSHOT -google-cloud-bigtable-emulator:0.115.0:0.115.1-SNAPSHOT +google-cloud-bigtable:1.7.0:1.7.0 +grpc-google-cloud-bigtable-admin-v2:1.7.0:1.7.0 +grpc-google-cloud-bigtable-v2:1.7.0:1.7.0 +proto-google-cloud-bigtable-admin-v2:1.7.0:1.7.0 +proto-google-cloud-bigtable-v2:1.7.0:1.7.0 +google-cloud-bigtable-emulator:0.116.0:0.116.0