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/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/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/README.md b/README.md index 024b44f11d..a7a16a6039 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 @@ -18,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}) @@ -162,6 +161,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 +319,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 @@ -335,9 +363,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. diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml new file mode 100644 index 0000000000..cc74734ca5 --- /dev/null +++ b/google-cloud-bigtable-bom/pom.xml @@ -0,0 +1,116 @@ + + + 4.0.0 + com.google.cloud + google-cloud-bigtable-bom + 1.7.0 + 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.7.0 + + + com.google.cloud + google-cloud-bigtable-emulator + 0.116.0 + + + com.google.api.grpc + grpc-google-cloud-bigtable-admin-v2 + 1.7.0 + + + com.google.api.grpc + grpc-google-cloud-bigtable-v2 + 1.7.0 + + + com.google.api.grpc + proto-google-cloud-bigtable-admin-v2 + 1.7.0 + + + com.google.api.grpc + proto-google-cloud-bigtable-v2 + 1.7.0 + + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + true + + + + + \ No newline at end of file diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml index 00ba8c98be..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.0 + 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.0 + 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 8d3ae2850a..23c66909d0 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,20 +2,25 @@ 4.0.0 google-cloud-bigtable - 1.6.0 + 1.7.0 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. com.google.cloud google-cloud-bigtable-parent - 1.6.0 + 1.7.0 google-cloud-bigtable + + + false + ${skipTests} + + io.grpc + grpc-stub + runtime + io.grpc grpc-api @@ -162,11 +177,6 @@ truth test - - io.grpc - grpc-stub - test - io.grpc grpc-testing @@ -206,9 +216,11 @@ 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 + ${project.build.directory}/failsafe-reports/emulator-it @@ -232,11 +244,13 @@ - prod + cloud - 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 + ${project.build.directory}/failsafe-reports/prod-it @@ -260,17 +274,25 @@ - prod + cloud true + + + + testdirectpath-bigtable.sandbox.googleapis.com:443 + test-bigtableadmin.sandbox.googleapis.com:443 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 + ${project.build.directory}/failsafe-reports/directpath-it @@ -313,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 @@ -369,6 +366,8 @@ + + ${skipUnitTests} + 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.0 + 1.7.0 diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index 4de12ea8d2..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 - 0.82.0 + 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.0 + 1.7.0 diff --git a/pom.xml b/pom.xml index a35bf6d68c..2378b96b63 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 1.6.0 + 1.7.0 Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -154,11 +154,12 @@ 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 - 1.24.1 + + 1.25.0 28.1-android 0.24.0 3.10.0 @@ -194,27 +195,27 @@ com.google.cloud google-cloud-bigtable-emulator - 0.115.0 + 0.116.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 0.82.0 + 1.7.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 0.82.0 + 1.7.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 0.82.0 + 1.7.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 0.82.0 + 1.7.0 @@ -380,6 +381,7 @@ grpc-google-cloud-bigtable-admin-v2 google-cloud-bigtable google-cloud-bigtable-emulator + google-cloud-bigtable-bom diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index be1244d80f..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 - 0.82.0 + 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.0 + 1.7.0 diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index f86dd1be57..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 - 0.82.0 + 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.0 + 1.7.0 diff --git a/google-cloud-bigtable/scripts/setup-test-table.sh b/scripts/setup-test-table.sh similarity index 74% rename from google-cloud-bigtable/scripts/setup-test-table.sh rename to scripts/setup-test-table.sh index 6321c1154c..c8bb1e2a62 100755 --- a/google-cloud-bigtable/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 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" } }, { diff --git a/versions.txt b/versions.txt index 91d60a313b..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.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.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