diff --git a/.github/scripts/update_generation_config.sh b/.github/scripts/update_generation_config.sh
index 93e1a47bea..2acad04855 100644
--- a/.github/scripts/update_generation_config.sh
+++ b/.github/scripts/update_generation_config.sh
@@ -1,32 +1,12 @@
#!/bin/bash
-set -ex
+set -e
# This script should be run at the root of the repository.
-# This script is used to update googleapis_commitish, gapic_generator_version,
-# and libraries_bom_version in generation configuration at the time of running
-# and create a pull request.
+# This script is used to update googleapis commit to latest in generation
+# configuration at the time of running and create a pull request.
# The following commands need to be installed before running the script:
# 1. git
# 2. gh
-# 3. jq
-
-# Utility functions
-# Get the latest released version of a Maven artifact.
-function get_latest_released_version() {
- local group_id=$1
- local artifact_id=$2
- latest=$(curl -s "https://search.maven.org/solrsearch/select?q=g:${group_id}+AND+a:${artifact_id}&core=gav&rows=500&wt=json" | jq -r '.response.docs[] | select(.v | test("^[0-9]+(\\.[0-9]+)*$")) | .v' | sort -V | tail -n 1)
- echo "${latest}"
-}
-
-# Update a key to a new value in the generation config.
-function update_config() {
- local key_word=$1
- local new_value=$2
- local file=$3
- echo "Update ${key_word} to ${new_value} in ${file}"
- sed -i -e "s/^${key_word}.*$/${key_word}: ${new_value}/" "${file}"
-}
# The parameters of this script is:
# 1. base_branch, the base branch of the result pull request.
@@ -72,50 +52,62 @@ if [ -z "${generation_config}" ]; then
fi
current_branch="generate-libraries-${base_branch}"
-title="chore: Update generation configuration at $(date)"
+title="chore: update googleapis commit at $(date)"
-# try to find a open pull request associated with the branch
+git checkout "${base_branch}"
+# Try to find a open pull request associated with the branch
pr_num=$(gh pr list -s open -H "${current_branch}" -q . --json number | jq ".[] | .number")
-# create a branch if there's no open pull request associated with the
+# Create a branch if there's no open pull request associated with the
# branch; otherwise checkout the pull request.
if [ -z "${pr_num}" ]; then
git checkout -b "${current_branch}"
+ # Push the current branch to remote so that we can
+ # compare the commits later.
+ git push -u origin "${current_branch}"
else
gh pr checkout "${pr_num}"
fi
+# Only allow fast-forward merging; exit with non-zero result if there's merging
+# conflict.
+git merge -m "chore: merge ${base_branch} into ${current_branch}" "${base_branch}"
+
mkdir tmp-googleapis
-# use partial clone because only commit history is needed.
+# Use partial clone because only commit history is needed.
git clone --filter=blob:none https://github.com/googleapis/googleapis.git tmp-googleapis
pushd tmp-googleapis
git pull
latest_commit=$(git rev-parse HEAD)
popd
rm -rf tmp-googleapis
-update_config "googleapis_commitish" "${latest_commit}" "${generation_config}"
-
-# update gapic-generator-java version to the latest
-latest_version=$(get_latest_released_version "com.google.api" "gapic-generator-java")
-update_config "gapic_generator_version" "${latest_version}" "${generation_config}"
-
-# update libraries-bom version to the latest
-latest_version=$(get_latest_released_version "com.google.cloud" "libraries-bom")
-update_config "libraries_bom_version" "${latest_version}" "${generation_config}"
+sed -i -e "s/^googleapis_commitish.*$/googleapis_commitish: ${latest_commit}/" "${generation_config}"
git add "${generation_config}"
changed_files=$(git diff --cached --name-only)
if [[ "${changed_files}" == "" ]]; then
- echo "The latest generation config is not changed."
+ echo "The latest googleapis commit is not changed."
echo "Skip committing to the pull request."
+else
+ git commit -m "${title}"
+fi
+
+# There are potentially at most two commits: merge commit and change commit.
+# We want to exit the script if no commit happens (otherwise this will be an
+# infinite loop).
+# `git cherry` is a way to find whether the local branch has commits that are
+# not in the remote branch.
+# If we find any such commit, push them to remote branch.
+unpushed_commit=$(git cherry -v "origin/${current_branch}" | wc -l)
+if [[ "${unpushed_commit}" -eq 0 ]]; then
+ echo "No unpushed commits, exit"
exit 0
fi
-git commit -m "${title}"
+
if [ -z "${pr_num}" ]; then
git remote add remote_repo https://cloud-java-bot:"${GH_TOKEN}@github.com/${repo}.git"
- git fetch -q --unshallow remote_repo
+ git fetch -q remote_repo
git push -f remote_repo "${current_branch}"
gh pr create --title "${title}" --head "${current_branch}" --body "${title}" --base "${base_branch}"
else
git push
- gh pr edit "${pr_num}" --title "${title}" --body "${title}"
fi
diff --git a/.github/workflows/hermetic_library_generation.yaml b/.github/workflows/hermetic_library_generation.yaml
index 35aa3b151d..604b674bad 100644
--- a/.github/workflows/hermetic_library_generation.yaml
+++ b/.github/workflows/hermetic_library_generation.yaml
@@ -37,7 +37,7 @@ jobs:
with:
fetch-depth: 0
token: ${{ secrets.CLOUD_JAVA_BOT_TOKEN }}
- - uses: googleapis/sdk-platform-java/.github/scripts@v2.50.0
+ - uses: googleapis/sdk-platform-java/.github/scripts@v2.51.0
if: env.SHOULD_RUN == 'true'
with:
base_ref: ${{ github.base_ref }}
diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml
index dde9dfaa0b..74fa1adf9f 100644
--- a/.github/workflows/unmanaged_dependency_check.yaml
+++ b/.github/workflows/unmanaged_dependency_check.yaml
@@ -14,6 +14,6 @@ jobs:
shell: bash
run: .kokoro/build.sh
- name: Unmanaged dependency check
- uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.40.0
+ uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.41.0
with:
bom-path: google-cloud-bigtable-bom/pom.xml
diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg
index f8f242fab9..f0caedc501 100644
--- a/.kokoro/presubmit/graalvm-native-17.cfg
+++ b/.kokoro/presubmit/graalvm-native-17.cfg
@@ -3,7 +3,7 @@
# Configure the docker image for kokoro-trampoline.
env_vars: {
key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.40.0"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.0"
}
env_vars: {
diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg
index 29c96a6d30..203d5d7be0 100644
--- a/.kokoro/presubmit/graalvm-native.cfg
+++ b/.kokoro/presubmit/graalvm-native.cfg
@@ -3,7 +3,7 @@
# Configure the docker image for kokoro-trampoline.
env_vars: {
key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.40.0"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.0"
}
env_vars: {
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d0e5f1d678..b33749704f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,23 @@
# Changelog
+## [2.51.0](https://github.com/googleapis/java-bigtable/compare/v2.50.0...v2.51.0) (2024-12-17)
+
+
+### Features
+
+* Introduce `java.time` ([#2415](https://github.com/googleapis/java-bigtable/issues/2415)) ([bb96c3e](https://github.com/googleapis/java-bigtable/commit/bb96c3e395793ba324cf658bb4c985d4315cf781))
+
+
+### Bug Fixes
+
+* **deps:** Update the Java code generator (gapic-generator-java) to 2.51.0 ([a5444a5](https://github.com/googleapis/java-bigtable/commit/a5444a545ec61a1520716dfafb6f62b7e39df1c7))
+* Move resource detection to the first export to avoid slow start ([#2450](https://github.com/googleapis/java-bigtable/issues/2450)) ([cec010a](https://github.com/googleapis/java-bigtable/commit/cec010aa64f2b190f8e742915be41baae2ad2083))
+
+
+### Dependencies
+
+* Update sdk-platform-java dependencies ([#2448](https://github.com/googleapis/java-bigtable/issues/2448)) ([825e717](https://github.com/googleapis/java-bigtable/commit/825e717e9d8ae3853d7509d0849b58f2c47c9803))
+
## [2.50.0](https://github.com/googleapis/java-bigtable/compare/v2.49.0...v2.50.0) (2024-12-06)
diff --git a/README.md b/README.md
index c1b80b33e8..3a534671a2 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,7 @@ If you are using Maven without the BOM, add this to your dependencies:
com.google.cloud
google-cloud-bigtable
- 2.48.0
+ 2.50.0
```
@@ -49,20 +49,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.50.0')
+implementation platform('com.google.cloud:libraries-bom:26.51.0')
implementation 'com.google.cloud:google-cloud-bigtable'
```
If you are using Gradle without BOM, add this to your dependencies:
```Groovy
-implementation 'com.google.cloud:google-cloud-bigtable:2.50.0'
+implementation 'com.google.cloud:google-cloud-bigtable:2.51.0'
```
If you are using SBT, add this to your dependencies:
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "2.50.0"
+libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "2.51.0"
```
## Authentication
@@ -543,7 +543,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-bigtable/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-bigtable.svg
-[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigtable/2.50.0
+[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigtable/2.51.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
diff --git a/generation_config.yaml b/generation_config.yaml
index c885f1fb10..d150ade6ee 100644
--- a/generation_config.yaml
+++ b/generation_config.yaml
@@ -1,6 +1,6 @@
-gapic_generator_version: 2.50.0
-googleapis_commitish: 349841abac6c3e580ccce6e3d6fcc182ed2512c2
-libraries_bom_version: 26.50.0
+gapic_generator_version: 2.51.0
+googleapis_commitish: f4eff5440fd07389f820d22d2a55690c6390dc6d
+libraries_bom_version: 26.51.0
template_excludes:
- .gitignore
- .kokoro/presubmit/integration.cfg
diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml
index dc263e647b..a12f9b41fb 100644
--- a/google-cloud-bigtable-bom/pom.xml
+++ b/google-cloud-bigtable-bom/pom.xml
@@ -3,12 +3,12 @@
4.0.0
com.google.cloud
google-cloud-bigtable-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
com.google.cloud
sdk-platform-java-config
- 3.40.0
+ 3.41.0
@@ -63,37 +63,37 @@
com.google.cloud
google-cloud-bigtable
- 2.50.0
+ 2.51.1-SNAPSHOT
com.google.cloud
google-cloud-bigtable-emulator
- 0.187.0
+ 0.188.1-SNAPSHOT
com.google.cloud
google-cloud-bigtable-emulator-core
- 0.187.0
+ 0.188.1-SNAPSHOT
com.google.api.grpc
grpc-google-cloud-bigtable-admin-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
com.google.api.grpc
grpc-google-cloud-bigtable-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
com.google.api.grpc
proto-google-cloud-bigtable-admin-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
com.google.api.grpc
proto-google-cloud-bigtable-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
diff --git a/google-cloud-bigtable-deps-bom/pom.xml b/google-cloud-bigtable-deps-bom/pom.xml
index 72d7540fb5..73c92a4592 100644
--- a/google-cloud-bigtable-deps-bom/pom.xml
+++ b/google-cloud-bigtable-deps-bom/pom.xml
@@ -7,13 +7,13 @@
com.google.cloud
sdk-platform-java-config
- 3.40.0
+ 3.41.0
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
@@ -67,7 +67,7 @@
com.google.cloud
gapic-libraries-bom
- 1.48.0
+ 1.49.0
pom
import
diff --git a/google-cloud-bigtable-emulator-core/pom.xml b/google-cloud-bigtable-emulator-core/pom.xml
index d8208a28c9..97258a1ffe 100644
--- a/google-cloud-bigtable-emulator-core/pom.xml
+++ b/google-cloud-bigtable-emulator-core/pom.xml
@@ -7,11 +7,11 @@
google-cloud-bigtable-parent
com.google.cloud
- 2.50.0
+ 2.51.1-SNAPSHOT
google-cloud-bigtable-emulator-core
- 0.187.0
+ 0.188.1-SNAPSHOT
A Java wrapper for the Cloud Bigtable emulator.
diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml
index 55a61f951c..24dc354918 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.187.0
+ 0.188.1-SNAPSHOT
Google Cloud Java - Bigtable Emulator
https://github.com/googleapis/java-bigtable
@@ -14,7 +14,7 @@
com.google.cloud
google-cloud-bigtable-parent
- 2.50.0
+ 2.51.1-SNAPSHOT
scm:git:git@github.com:googleapis/java-bigtable.git
@@ -81,14 +81,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
@@ -99,7 +99,7 @@
com.google.cloud
google-cloud-bigtable-emulator-core
- 0.187.0
+ 0.188.1-SNAPSHOT
diff --git a/google-cloud-bigtable/clirr-ignored-differences.xml b/google-cloud-bigtable/clirr-ignored-differences.xml
index a3dc564c44..4052e1b4a7 100644
--- a/google-cloud-bigtable/clirr-ignored-differences.xml
+++ b/google-cloud-bigtable/clirr-ignored-differences.xml
@@ -275,4 +275,37 @@
com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider
*
+
+
+ 7006
+ com/google/cloud/bigtable/data/v2/internal/*
+ *getTimestamp(*)
+ java.time.Instant
+
+
+
+ 7006
+ com/google/cloud/bigtable/data/v2/models/sql/StructReader
+ *getTimestamp(*)
+ java.time.Instant
+
+
+
+ 7005
+ com/google/cloud/bigtable/data/v2/models/sql/Statement$Builder
+ *setTimestampParam(java.lang.String, org.threeten.bp.Instant)
+ *setTimestampParam(java.lang.String, java.time.Instant)
+
+
+
+ 7013
+ com/google/cloud/bigtable/data/v2/models/ChangeStreamMutation
+ *get*Time()
+
+
+
+ 7013
+ com/google/cloud/bigtable/data/v2/models/Heartbeat
+ *getEstimatedLowWatermarkTime()
+
diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml
index 28ba7bf052..53e4d55df4 100644
--- a/google-cloud-bigtable/pom.xml
+++ b/google-cloud-bigtable/pom.xml
@@ -2,7 +2,7 @@
4.0.0
google-cloud-bigtable
- 2.50.0
+ 2.51.1-SNAPSHOT
jar
Google Cloud Bigtable
https://github.com/googleapis/java-bigtable
@@ -12,11 +12,11 @@
com.google.cloud
google-cloud-bigtable-parent
- 2.50.0
+ 2.51.1-SNAPSHOT
- 2.50.0
+ 2.51.1-SNAPSHOT
google-cloud-bigtable
@@ -52,14 +52,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java
index d839ac63fa..4cc5cc780d 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java
@@ -20,6 +20,6 @@
@InternalApi("For internal use only")
public final class Version {
// {x-version-update-start:google-cloud-bigtable:current}
- public static String VERSION = "2.50.0";
+ public static String VERSION = "2.51.1-SNAPSHOT";
// {x-version-update-end}
}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/common/Type.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/common/Type.java
index df5c6dcd95..cd6a0a5407 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/common/Type.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/common/Type.java
@@ -23,8 +23,8 @@
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import java.util.List;
-import org.threeten.bp.Instant;
/**
* Shared type implementations. Right now this is only used by SqlType but this will become a shared
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataSettings.java
index 25ff2ff30d..ad1e70ba6a 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataSettings.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataSettings.java
@@ -39,7 +39,6 @@
import java.util.logging.Logger;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.threeten.bp.Duration;
/**
* Settings class to configure an instance of {@link BigtableDataClient}.
@@ -134,9 +133,11 @@ public static Builder newBuilderForEmulator(String hostname, int port) {
.setMaxInboundMessageSize(256 * 1024 * 1024)
.setChannelPoolSettings(ChannelPoolSettings.staticallySized(1))
.setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
- .setKeepAliveTime(Duration.ofSeconds(61)) // sends ping in this interval
- .setKeepAliveTimeout(
- Duration.ofSeconds(10)) // wait this long before considering the connection dead
+ .setKeepAliveTimeDuration(
+ java.time.Duration.ofSeconds(61)) // sends ping in this interval
+ .setKeepAliveTimeoutDuration(
+ java.time.Duration.ofSeconds(
+ 10)) // wait this long before considering the connection dead
.build());
LOGGER.info("Connecting to the Bigtable emulator at " + hostname + ":" + port);
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/AbstractProtoStructReader.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/AbstractProtoStructReader.java
index dff4d4e0b2..2a74fccd22 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/AbstractProtoStructReader.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/AbstractProtoStructReader.java
@@ -25,12 +25,12 @@
import com.google.common.base.Preconditions;
import com.google.protobuf.ByteString;
import com.google.protobuf.Timestamp;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.threeten.bp.Instant;
@InternalApi
public abstract class AbstractProtoStructReader implements StructReader {
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/ResultSetImpl.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/ResultSetImpl.java
index 1d2bd37f2d..53044c3b37 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/ResultSetImpl.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/ResultSetImpl.java
@@ -28,10 +28,10 @@
import com.google.cloud.bigtable.data.v2.stub.sql.SqlServerStream;
import com.google.common.base.Preconditions;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.threeten.bp.Instant;
/**
* The primary implementation of a ResultSet.
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamMutation.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamMutation.java
index 23fb47bd82..838a7ec62f 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamMutation.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamMutation.java
@@ -15,7 +15,10 @@
*/
package com.google.cloud.bigtable.data.v2.models;
+import static com.google.api.gax.util.TimeConversionUtils.toThreetenInstant;
+
import com.google.api.core.InternalApi;
+import com.google.api.core.ObsoleteApi;
import com.google.auto.value.AutoValue;
import com.google.cloud.bigtable.data.v2.models.Range.TimestampRange;
import com.google.cloud.bigtable.data.v2.stub.changestream.ChangeStreamRecordMerger;
@@ -23,7 +26,6 @@
import com.google.protobuf.ByteString;
import java.io.Serializable;
import javax.annotation.Nonnull;
-import org.threeten.bp.Instant;
/**
* A ChangeStreamMutation represents a list of mods(represented by List<{@link Entry}>) targeted at
@@ -73,13 +75,13 @@ public enum MutationType {
static Builder createUserMutation(
@Nonnull ByteString rowKey,
@Nonnull String sourceClusterId,
- Instant commitTimestamp,
+ java.time.Instant commitTimestamp,
int tieBreaker) {
return builder()
.setRowKey(rowKey)
.setType(MutationType.USER)
.setSourceClusterId(sourceClusterId)
- .setCommitTimestamp(commitTimestamp)
+ .setCommitTime(commitTimestamp)
.setTieBreaker(tieBreaker);
}
@@ -89,12 +91,12 @@ static Builder createUserMutation(
* mutation.
*/
static Builder createGcMutation(
- @Nonnull ByteString rowKey, Instant commitTimestamp, int tieBreaker) {
+ @Nonnull ByteString rowKey, java.time.Instant commitTimestamp, int tieBreaker) {
return builder()
.setRowKey(rowKey)
.setType(MutationType.GARBAGE_COLLECTION)
.setSourceClusterId("")
- .setCommitTimestamp(commitTimestamp)
+ .setCommitTime(commitTimestamp)
.setTieBreaker(tieBreaker);
}
@@ -110,8 +112,14 @@ static Builder createGcMutation(
@Nonnull
public abstract String getSourceClusterId();
+ /** This method is obsolete. Use {@link #getCommitTime()} instead. */
+ @ObsoleteApi("Use getCommitTime() instead")
+ public org.threeten.bp.Instant getCommitTimestamp() {
+ return toThreetenInstant(getCommitTime());
+ }
+
/** Get the commit timestamp of the current mutation. */
- public abstract Instant getCommitTimestamp();
+ public abstract java.time.Instant getCommitTime();
/**
* Get the tie breaker of the current mutation. This is used to resolve conflicts when multiple
@@ -123,8 +131,14 @@ static Builder createGcMutation(
@Nonnull
public abstract String getToken();
+ /** This method is obsolete. Use {@link #getEstimatedLowWatermarkTime()} instead. */
+ @ObsoleteApi("Use getEstimatedLowWatermarkTime() instead")
+ public org.threeten.bp.Instant getEstimatedLowWatermark() {
+ return toThreetenInstant(getEstimatedLowWatermarkTime());
+ }
+
/** Get the low watermark of the current mutation. */
- public abstract Instant getEstimatedLowWatermark();
+ public abstract java.time.Instant getEstimatedLowWatermarkTime();
/** Get the list of mods of the current mutation. */
@Nonnull
@@ -145,7 +159,7 @@ abstract static class Builder {
abstract Builder setSourceClusterId(@Nonnull String sourceClusterId);
- abstract Builder setCommitTimestamp(Instant commitTimestamp);
+ abstract Builder setCommitTime(java.time.Instant commitTimestamp);
abstract Builder setTieBreaker(int tieBreaker);
@@ -153,7 +167,7 @@ abstract static class Builder {
abstract Builder setToken(@Nonnull String token);
- abstract Builder setEstimatedLowWatermark(Instant estimatedLowWatermark);
+ abstract Builder setEstimatedLowWatermarkTime(java.time.Instant estimatedLowWatermark);
Builder setCell(
@Nonnull String familyName,
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecordAdapter.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecordAdapter.java
index 40a71b1d3c..9b892b14ea 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecordAdapter.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecordAdapter.java
@@ -19,8 +19,8 @@
import com.google.bigtable.v2.ReadChangeStreamResponse;
import com.google.cloud.bigtable.data.v2.models.Range.TimestampRange;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import javax.annotation.Nonnull;
-import org.threeten.bp.Instant;
/**
* An extension point that allows end users to plug in a custom implementation of logical change
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/DefaultChangeStreamRecordAdapter.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/DefaultChangeStreamRecordAdapter.java
index d40ad7621c..54bf05cd7d 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/DefaultChangeStreamRecordAdapter.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/DefaultChangeStreamRecordAdapter.java
@@ -20,9 +20,9 @@
import com.google.cloud.bigtable.data.v2.models.Range.TimestampRange;
import com.google.common.base.Preconditions;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.threeten.bp.Instant;
/**
* Default implementation of a {@link ChangeStreamRecordAdapter} that uses {@link
@@ -112,8 +112,7 @@ public void startUserMutation(
/** {@inheritDoc} */
@Override
- public void startGcMutation(
- @Nonnull ByteString rowKey, Instant commitTimestamp, int tieBreaker) {
+ public void startGcMutation(ByteString rowKey, Instant commitTimestamp, int tieBreaker) {
this.changeStreamMutationBuilder =
ChangeStreamMutation.createGcMutation(rowKey, commitTimestamp, tieBreaker);
}
@@ -176,9 +175,9 @@ public void finishCell() {
/** {@inheritDoc} */
@Override
public ChangeStreamRecord finishChangeStreamMutation(
- @Nonnull String token, Instant estimatedLowWatermark) {
+ String token, Instant estimatedLowWatermark) {
this.changeStreamMutationBuilder.setToken(token);
- this.changeStreamMutationBuilder.setEstimatedLowWatermark(estimatedLowWatermark);
+ this.changeStreamMutationBuilder.setEstimatedLowWatermarkTime(estimatedLowWatermark);
return this.changeStreamMutationBuilder.build();
}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/Heartbeat.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/Heartbeat.java
index 8e3d865790..ae5507ae75 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/Heartbeat.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/Heartbeat.java
@@ -15,12 +15,14 @@
*/
package com.google.cloud.bigtable.data.v2.models;
+import static com.google.api.gax.util.TimeConversionUtils.toThreetenInstant;
+
import com.google.api.core.InternalApi;
+import com.google.api.core.ObsoleteApi;
import com.google.auto.value.AutoValue;
import com.google.bigtable.v2.ReadChangeStreamResponse;
import java.io.Serializable;
import javax.annotation.Nonnull;
-import org.threeten.bp.Instant;
/** A simple wrapper for {@link ReadChangeStreamResponse.Heartbeat}. */
@InternalApi("Intended for use by the BigtableIO in apache/beam only.")
@@ -29,7 +31,8 @@ public abstract class Heartbeat implements ChangeStreamRecord, Serializable {
private static final long serialVersionUID = 7316215828353608504L;
private static Heartbeat create(
- ChangeStreamContinuationToken changeStreamContinuationToken, Instant estimatedLowWatermark) {
+ ChangeStreamContinuationToken changeStreamContinuationToken,
+ java.time.Instant estimatedLowWatermark) {
return new AutoValue_Heartbeat(changeStreamContinuationToken, estimatedLowWatermark);
}
@@ -37,7 +40,7 @@ private static Heartbeat create(
static Heartbeat fromProto(@Nonnull ReadChangeStreamResponse.Heartbeat heartbeat) {
return create(
ChangeStreamContinuationToken.fromProto(heartbeat.getContinuationToken()),
- Instant.ofEpochSecond(
+ java.time.Instant.ofEpochSecond(
heartbeat.getEstimatedLowWatermark().getSeconds(),
heartbeat.getEstimatedLowWatermark().getNanos()));
}
@@ -45,6 +48,12 @@ static Heartbeat fromProto(@Nonnull ReadChangeStreamResponse.Heartbeat heartbeat
@InternalApi("Intended for use by the BigtableIO in apache/beam only.")
public abstract ChangeStreamContinuationToken getChangeStreamContinuationToken();
+ /** This method is obsolete. Use {@link #getEstimatedLowWatermarkTime()} instead. */
+ @ObsoleteApi("Use getEstimatedLowWatermarkTime() instead")
+ public org.threeten.bp.Instant getEstimatedLowWatermark() {
+ return toThreetenInstant(getEstimatedLowWatermarkTime());
+ }
+
@InternalApi("Intended for use by the BigtableIO in apache/beam only.")
- public abstract Instant getEstimatedLowWatermark();
+ public abstract java.time.Instant getEstimatedLowWatermarkTime();
}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ReadChangeStreamQuery.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ReadChangeStreamQuery.java
index a6dfb7666d..2c9cf54354 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ReadChangeStreamQuery.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/ReadChangeStreamQuery.java
@@ -15,7 +15,11 @@
*/
package com.google.cloud.bigtable.data.v2.models;
+import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration;
+import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeInstant;
+
import com.google.api.core.InternalApi;
+import com.google.api.core.ObsoleteApi;
import com.google.bigtable.v2.ReadChangeStreamRequest;
import com.google.bigtable.v2.RowRange;
import com.google.bigtable.v2.StreamContinuationTokens;
@@ -36,7 +40,6 @@
import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.threeten.bp.Instant;
/** A simple wrapper to construct a query for the ReadChangeStream RPC. */
@InternalApi("Intended for use by the BigtableIO in apache/beam only.")
@@ -143,8 +146,14 @@ public ReadChangeStreamQuery streamPartition(ByteStringRange range) {
return streamPartition(rangeBuilder.build());
}
+ /** This method is obsolete. Use {@link #startTime(java.time.Instant)} instead. */
+ @ObsoleteApi("Use startTime(java.time.Instant) instead")
+ public ReadChangeStreamQuery startTime(org.threeten.bp.Instant value) {
+ return startTime(toJavaTimeInstant(value));
+ }
+
/** Sets the startTime to read the change stream. */
- public ReadChangeStreamQuery startTime(Instant value) {
+ public ReadChangeStreamQuery startTime(java.time.Instant value) {
Preconditions.checkState(
!builder.hasContinuationTokens(),
"startTime and continuationTokens can't be specified together");
@@ -156,8 +165,14 @@ public ReadChangeStreamQuery startTime(Instant value) {
return this;
}
+ /** This method is obsolete. Use {@link #endTime(java.time.Instant)} instead. */
+ @ObsoleteApi("Use endTime(java.time.Instant) instead")
+ public ReadChangeStreamQuery endTime(org.threeten.bp.Instant value) {
+ return endTime(toJavaTimeInstant(value));
+ }
+
/** Sets the endTime to read the change stream. */
- public ReadChangeStreamQuery endTime(Instant value) {
+ public ReadChangeStreamQuery endTime(java.time.Instant value) {
builder.setEndTime(
Timestamp.newBuilder()
.setSeconds(value.getEpochSecond())
@@ -181,8 +196,14 @@ public ReadChangeStreamQuery continuationTokens(
return this;
}
- /** Sets the heartbeat duration for the change stream. */
+ /** This method is obsolete. Use {@link #heartbeatDuration(java.time.Duration)} instead. */
+ @ObsoleteApi("Use heartbeatDuration(java.time.Duration) instead")
public ReadChangeStreamQuery heartbeatDuration(org.threeten.bp.Duration duration) {
+ return heartbeatDuration(toJavaTimeDuration(duration));
+ }
+
+ /** Sets the heartbeat duration for the change stream. */
+ public ReadChangeStreamQuery heartbeatDuration(java.time.Duration duration) {
builder.setHeartbeatDuration(
Duration.newBuilder()
.setSeconds(duration.getSeconds())
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/SqlType.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/SqlType.java
index 50146f292a..d4d3261dcf 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/SqlType.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/SqlType.java
@@ -23,8 +23,8 @@
import com.google.cloud.bigtable.common.Type.StructWithSchema;
import com.google.protobuf.ByteString;
import java.io.Serializable;
+import java.time.Instant;
import java.util.List;
-import org.threeten.bp.Instant;
/**
* Represents a data type in a SQL query.
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/Statement.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/Statement.java
index 58c16e2c5c..c1831219a6 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/Statement.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/Statement.java
@@ -27,11 +27,11 @@
import com.google.common.collect.ImmutableMap;
import com.google.protobuf.ByteString;
import com.google.protobuf.Timestamp;
+import java.time.Instant;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
-import org.threeten.bp.Instant;
/**
* A SQL statement that can be executed by calling {@link
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/StructReader.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/StructReader.java
index 8f450bbd92..f127b6b54c 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/StructReader.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/models/sql/StructReader.java
@@ -18,9 +18,9 @@
import com.google.api.core.BetaApi;
import com.google.cloud.Date;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import java.util.List;
import java.util.Map;
-import org.threeten.bp.Instant;
/**
* An interface for reading the columns of a {@code Struct} or {@code
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/RateLimitingServerStreamingCallable.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/RateLimitingServerStreamingCallable.java
index 62f8b5abf6..c3b0f94ec7 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/RateLimitingServerStreamingCallable.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/RateLimitingServerStreamingCallable.java
@@ -30,13 +30,13 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Stopwatch;
import com.google.common.util.concurrent.RateLimiter;
+import java.time.Duration;
+import java.time.Instant;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Logger;
import javax.annotation.Nonnull;
-import org.threeten.bp.Duration;
-import org.threeten.bp.Instant;
class RateLimitingServerStreamingCallable
extends ServerStreamingCallable {
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/changestream/ChangeStreamStateMachine.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/changestream/ChangeStreamStateMachine.java
index b41acc4ac3..27cb6f1478 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/changestream/ChangeStreamStateMachine.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/changestream/ChangeStreamStateMachine.java
@@ -22,7 +22,6 @@
import com.google.cloud.bigtable.data.v2.models.Range.TimestampRange;
import com.google.cloud.bigtable.data.v2.models.Value;
import com.google.common.base.Preconditions;
-import org.threeten.bp.Instant;
/**
* A state machine to produce change stream records from a stream of {@link
@@ -334,7 +333,7 @@ State handleDataChange(ReadChangeStreamResponse.DataChange dataChange) {
"AWAITING_NEW_STREAM_RECORD: GC mutation shouldn't have source cluster id.");
builder.startGcMutation(
dataChange.getRowKey(),
- Instant.ofEpochSecond(
+ java.time.Instant.ofEpochSecond(
dataChange.getCommitTimestamp().getSeconds(),
dataChange.getCommitTimestamp().getNanos()),
dataChange.getTiebreaker());
@@ -345,7 +344,7 @@ State handleDataChange(ReadChangeStreamResponse.DataChange dataChange) {
builder.startUserMutation(
dataChange.getRowKey(),
dataChange.getSourceClusterId(),
- Instant.ofEpochSecond(
+ java.time.Instant.ofEpochSecond(
dataChange.getCommitTimestamp().getSeconds(),
dataChange.getCommitTimestamp().getNanos()),
dataChange.getTiebreaker());
@@ -578,7 +577,7 @@ private State checkAndFinishMutationIfNeeded(ReadChangeStreamResponse.DataChange
completeChangeStreamRecord =
builder.finishChangeStreamMutation(
dataChange.getToken(),
- Instant.ofEpochSecond(
+ java.time.Instant.ofEpochSecond(
dataChange.getEstimatedLowWatermark().getSeconds(),
dataChange.getEstimatedLowWatermark().getNanos()));
return AWAITING_STREAM_RECORD_CONSUME;
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java
index ff5bcd81c1..a829c3f719 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java
@@ -40,6 +40,8 @@
import com.google.cloud.monitoring.v3.MetricServiceClient;
import com.google.cloud.monitoring.v3.MetricServiceSettings;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Supplier;
+import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
@@ -65,7 +67,6 @@
import java.util.logging.Logger;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
-import org.threeten.bp.Duration;
/**
* Bigtable Cloud Monitoring OpenTelemetry Exporter.
@@ -97,8 +98,9 @@ public final class BigtableCloudMonitoringExporter implements MetricExporter {
private final String taskId;
- // The resource the client application is running on
- private final MonitoredResource applicationResource;
+ // Application resource is initialized on the first export, which runs on a background thread
+ // to avoid slowness when starting the client.
+ private final Supplier applicationResource;
private final AtomicBoolean isShutdown = new AtomicBoolean(false);
@@ -144,33 +146,20 @@ public static BigtableCloudMonitoringExporter create(
settingsBuilder.setEndpoint(endpoint);
}
- org.threeten.bp.Duration timeout = Duration.ofMinutes(1);
+ java.time.Duration timeout = java.time.Duration.ofMinutes(1);
// TODO: createServiceTimeSeries needs special handling if the request failed. Leaving
// it as not retried for now.
- settingsBuilder.createServiceTimeSeriesSettings().setSimpleTimeoutNoRetries(timeout);
-
- // Detect the resource that the client application is running on. For example,
- // this could be a GCE instance or a GKE pod. Currently, we only support GCE instance and
- // GKE pod. This method will return null for everything else.
- MonitoredResource applicationResource = null;
- try {
- applicationResource = BigtableExporterUtils.detectResource();
- } catch (Exception e) {
- logger.log(
- Level.WARNING,
- "Failed to detect resource, will skip exporting application level metrics ",
- e);
- }
+ settingsBuilder.createServiceTimeSeriesSettings().setSimpleTimeoutNoRetriesDuration(timeout);
return new BigtableCloudMonitoringExporter(
MetricServiceClient.create(settingsBuilder.build()),
- applicationResource,
+ Suppliers.memoize(BigtableExporterUtils::detectResourceSafe),
BigtableExporterUtils.getDefaultTaskValue());
}
@VisibleForTesting
BigtableCloudMonitoringExporter(
- MetricServiceClient client, @Nullable MonitoredResource applicationResource, String taskId) {
+ MetricServiceClient client, Supplier applicationResource, String taskId) {
this.client = client;
this.taskId = taskId;
this.applicationResource = applicationResource;
@@ -258,7 +247,7 @@ public void onSuccess(List emptyList) {
/** Export metrics associated with the resource the Application is running on. */
private CompletableResultCode exportApplicationResourceMetrics(
Collection collection) {
- if (applicationResource == null) {
+ if (applicationResource.get() == null) {
return CompletableResultCode.ofSuccess();
}
@@ -277,7 +266,7 @@ private CompletableResultCode exportApplicationResourceMetrics(
try {
timeSeries =
BigtableExporterUtils.convertToApplicationResourceTimeSeries(
- metricData, taskId, applicationResource);
+ metricData, taskId, applicationResource.get());
} catch (Throwable e) {
logger.log(
Level.WARNING,
@@ -292,7 +281,8 @@ private CompletableResultCode exportApplicationResourceMetrics(
CompletableResultCode exportCode = new CompletableResultCode();
try {
ProjectName projectName =
- ProjectName.of(applicationResource.getLabelsOrThrow(APPLICATION_RESOURCE_PROJECT_ID));
+ ProjectName.of(
+ applicationResource.get().getLabelsOrThrow(APPLICATION_RESOURCE_PROJECT_ID));
gceOrGkeFuture = exportTimeSeries(projectName, timeSeries);
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableExporterUtils.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableExporterUtils.java
index 821c2295e0..95df887f0d 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableExporterUtils.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableExporterUtils.java
@@ -156,7 +156,20 @@ static List convertToApplicationResourceTimeSeries(
}
@Nullable
- static MonitoredResource detectResource() {
+ static MonitoredResource detectResourceSafe() {
+ try {
+ return detectResource();
+ } catch (Exception e) {
+ logger.log(
+ Level.WARNING,
+ "Failed to detect resource, will skip exporting application level metrics ",
+ e);
+ return null;
+ }
+ }
+
+ @Nullable
+ private static MonitoredResource detectResource() {
GCPPlatformDetector detector = GCPPlatformDetector.DEFAULT_INSTANCE;
DetectedPlatform detectedPlatform = detector.detectPlatform();
MonitoredResource monitoredResource = null;
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracer.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracer.java
index 4683ff9c8e..92aa26c50c 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracer.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracer.java
@@ -16,6 +16,7 @@
package com.google.cloud.bigtable.data.v2.stub.metrics;
import static com.google.api.gax.tracing.ApiTracerFactory.OperationType;
+import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration;
import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.CLIENT_NAME_KEY;
import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.CLUSTER_ID_KEY;
import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.METHOD_KEY;
@@ -24,6 +25,7 @@
import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.TABLE_ID_KEY;
import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.ZONE_ID_KEY;
+import com.google.api.core.ObsoleteApi;
import com.google.api.gax.retrying.ServerStreamingAttemptException;
import com.google.api.gax.tracing.SpanName;
import com.google.cloud.bigtable.Version;
@@ -33,6 +35,7 @@
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.metrics.DoubleHistogram;
import io.opentelemetry.api.metrics.LongCounter;
+import java.time.Duration;
import java.util.concurrent.CancellationException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -40,7 +43,6 @@
import java.util.concurrent.atomic.AtomicLong;
import java.util.logging.Logger;
import javax.annotation.Nullable;
-import org.threeten.bp.Duration;
/**
* A {@link BigtableTracer} that records built-in metrics and publish under the
@@ -200,8 +202,18 @@ public void attemptCancelled() {
recordAttemptCompletion(new CancellationException());
}
+ /**
+ * This method is obsolete. Use {@link #attemptFailedDuration(Throwable, java.time.Duration)}
+ * instead.
+ */
+ @ObsoleteApi("Use attemptFailedDuration(Throwable, java.time.Duration) instead")
@Override
- public void attemptFailed(Throwable error, Duration delay) {
+ public void attemptFailed(Throwable error, org.threeten.bp.Duration delay) {
+ attemptFailedDuration(error, toJavaTimeDuration(delay));
+ }
+
+ @Override
+ public void attemptFailedDuration(Throwable error, Duration delay) {
recordAttemptCompletion(error);
}
@@ -291,7 +303,7 @@ public void setLocations(String zone, String cluster) {
@Override
public void batchRequestThrottled(long throttledTimeNanos) {
- totalClientBlockingTime.addAndGet(Duration.ofNanos(throttledTimeNanos).toMillis());
+ totalClientBlockingTime.addAndGet(java.time.Duration.ofNanos(throttledTimeNanos).toMillis());
}
@Override
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/CompositeTracer.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/CompositeTracer.java
index 7882c82d93..cb846f19b7 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/CompositeTracer.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/CompositeTracer.java
@@ -15,12 +15,14 @@
*/
package com.google.cloud.bigtable.data.v2.stub.metrics;
+import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration;
+
+import com.google.api.core.ObsoleteApi;
import com.google.api.gax.tracing.ApiTracer;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
-import org.threeten.bp.Duration;
/**
* Combines multiple {@link ApiTracer}s and {@link BigtableTracer}s into a single {@link ApiTracer}.
@@ -124,9 +126,20 @@ public void attemptCancelled() {
}
}
- public void attemptFailed(Throwable error, Duration delay) {
+ /**
+ * This method is obsolete. Use {@link #attemptFailedDuration(Throwable, java.time.Duration)}
+ * instead.
+ */
+ @ObsoleteApi("Use attemptFailedDuration(Throwable, java.time.Duration) instead")
+ @Override
+ public void attemptFailed(Throwable error, org.threeten.bp.Duration delay) {
+ attemptFailedDuration(error, toJavaTimeDuration(delay));
+ }
+
+ @Override
+ public void attemptFailedDuration(Throwable error, java.time.Duration delay) {
for (ApiTracer child : children) {
- child.attemptFailed(error, delay);
+ child.attemptFailedDuration(error, delay);
}
}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracer.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracer.java
index a2c5bdac1f..f1c6893447 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracer.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracer.java
@@ -15,6 +15,9 @@
*/
package com.google.cloud.bigtable.data.v2.stub.metrics;
+import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration;
+
+import com.google.api.core.ObsoleteApi;
import com.google.api.gax.retrying.ServerStreamingAttemptException;
import com.google.api.gax.tracing.ApiTracerFactory.OperationType;
import com.google.api.gax.tracing.SpanName;
@@ -32,7 +35,6 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.Nullable;
-import org.threeten.bp.Duration;
class MetricsTracer extends BigtableTracer {
@@ -152,8 +154,18 @@ public void attemptCancelled() {
recordAttemptCompletion(new CancellationException());
}
+ /**
+ * This method is obsolete. Use {@link #attemptFailedDuration(Throwable, java.time.Duration)}
+ * instead.
+ */
+ @ObsoleteApi("Use attemptFailedDuration(Throwable, java.time.Duration) instead")
+ @Override
+ public void attemptFailed(Throwable error, org.threeten.bp.Duration delay) {
+ attemptFailedDuration(error, toJavaTimeDuration(delay));
+ }
+
@Override
- public void attemptFailed(Throwable throwable, Duration duration) {
+ public void attemptFailedDuration(Throwable throwable, java.time.Duration duration) {
recordAttemptCompletion(throwable);
}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/TracedBatcherUnaryCallable.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/TracedBatcherUnaryCallable.java
index ce73d75dc1..44ba688d55 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/TracedBatcherUnaryCallable.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/TracedBatcherUnaryCallable.java
@@ -21,7 +21,6 @@
import com.google.api.gax.rpc.ApiCallContext;
import com.google.api.gax.rpc.UnaryCallable;
import com.google.api.gax.tracing.ApiTracer;
-import org.threeten.bp.Duration;
/**
* This callable will extract total throttled time from {@link ApiCallContext} and add it to {@link
@@ -44,7 +43,8 @@ public ApiFuture futureCall(RequestT request, ApiCallContext context)
if (tracer instanceof BigtableTracer) {
((BigtableTracer) tracer)
.batchRequestThrottled(
- Duration.ofMillis(context.getOption(Batcher.THROTTLED_TIME_KEY)).toNanos());
+ java.time.Duration.ofMillis(context.getOption(Batcher.THROTTLED_TIME_KEY))
+ .toNanos());
}
}
return innerCallable.futureCall(request, context);
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/retrying/AttemptCallable.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/retrying/AttemptCallable.java
index 3599e1e4df..6d5c75ea99 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/retrying/AttemptCallable.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/retrying/AttemptCallable.java
@@ -24,7 +24,6 @@
import com.google.api.gax.rpc.UnaryCallable;
import com.google.common.base.Preconditions;
import java.util.concurrent.Callable;
-import org.threeten.bp.Duration;
// TODO: remove this once ApiResultRetryAlgorithm is added to gax.
/**
@@ -59,9 +58,9 @@ public ResponseT call() {
try {
// Set the RPC timeout if the caller did not provide their own.
- Duration rpcTimeout = externalFuture.getAttemptSettings().getRpcTimeout();
+ java.time.Duration rpcTimeout = externalFuture.getAttemptSettings().getRpcTimeoutDuration();
if (!rpcTimeout.isZero() && callContext.getTimeout() == null) {
- callContext = callContext.withTimeout(rpcTimeout);
+ callContext = callContext.withTimeoutDuration(rpcTimeout);
}
externalFuture.setAttemptFuture(new NonCancellableFuture());
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/retrying/RetryInfoRetryAlgorithm.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/retrying/RetryInfoRetryAlgorithm.java
index 085b48bbb5..98e549cee1 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/retrying/RetryInfoRetryAlgorithm.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/retrying/RetryInfoRetryAlgorithm.java
@@ -22,8 +22,7 @@
import com.google.api.gax.rpc.ApiException;
import com.google.protobuf.util.Durations;
import com.google.rpc.RetryInfo;
-import org.checkerframework.checker.nullness.qual.Nullable;
-import org.threeten.bp.Duration;
+import javax.annotation.Nullable;
// TODO move this algorithm to gax
/**
@@ -36,11 +35,11 @@ public class RetryInfoRetryAlgorithm extends BasicResultRetryAlgorith
@Override
public TimedAttemptSettings createNextAttempt(
Throwable prevThrowable, ResponseT prevResponse, TimedAttemptSettings prevSettings) {
- Duration retryDelay = extractRetryDelay(prevThrowable);
+ java.time.Duration retryDelay = extractRetryDelay(prevThrowable);
if (retryDelay != null) {
return prevSettings
.toBuilder()
- .setRandomizedRetryDelay(retryDelay)
+ .setRandomizedRetryDelayDuration(retryDelay)
.setAttemptCount(prevSettings.getAttemptCount() + 1)
.setOverallAttemptCount(prevSettings.getAttemptCount() + 1)
.build();
@@ -81,8 +80,7 @@ public boolean shouldRetry(
&& ((ApiException) previousThrowable).isRetryable();
}
- @Nullable
- static Duration extractRetryDelay(@Nullable Throwable throwable) {
+ static java.time.Duration extractRetryDelay(@Nullable Throwable throwable) {
if (throwable == null) {
return null;
}
@@ -97,6 +95,6 @@ static Duration extractRetryDelay(@Nullable Throwable throwable) {
return null;
}
RetryInfo retryInfo = exception.getErrorDetails().getRetryInfo();
- return Duration.ofMillis(Durations.toMillis(retryInfo.getRetryDelay()));
+ return java.time.Duration.ofMillis(Durations.toMillis(retryInfo.getRetryDelay()));
}
}
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientTests.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientTests.java
index 0ba472f783..15713b17f1 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientTests.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientTests.java
@@ -368,6 +368,8 @@ public void testUpdateTable() {
assertThat(actualResult.getId()).isEqualTo(TABLE_ID);
assertThat(actualResult.getChangeStreamRetention())
.isEqualTo(org.threeten.bp.Duration.ofHours(24));
+ assertThat(actualResult.getChangeStreamRetention().toMillis())
+ .isEqualTo(actualResult.getChangeStreamRetention().toMillis());
}
@Test
@@ -1015,6 +1017,7 @@ public void testCopyBackup() {
String srcTableId = "src-table";
String srcClusterId = "src-cluster";
String srcBackupId = "src-backup";
+
Instant expireTime = Instant.now().plus(org.threeten.bp.Duration.ofDays(15));
long sizeBytes = 123456789;
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettingsTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettingsTest.java
index 506f73700b..735083bfee 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettingsTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettingsTest.java
@@ -31,7 +31,6 @@
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.mockito.Mockito;
-import org.threeten.bp.Duration;
@RunWith(JUnit4.class)
public class BigtableTableAdminSettingsTest {
@@ -165,7 +164,9 @@ public void testToString() throws IOException {
stubSettings
.getBackupSettings()
.setRetrySettings(
- RetrySettings.newBuilder().setTotalTimeout(Duration.ofMinutes(812)).build());
+ RetrySettings.newBuilder()
+ .setTotalTimeout(org.threeten.bp.Duration.ofMinutes(812))
+ .build());
BigtableTableAdminSettings settings = builder.build();
checkToString(settings);
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/AbstractProtoStructReaderTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/AbstractProtoStructReaderTest.java
index 95955bab94..8770880983 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/AbstractProtoStructReaderTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/AbstractProtoStructReaderTest.java
@@ -57,6 +57,7 @@
import com.google.cloud.bigtable.data.v2.models.sql.Struct;
import com.google.cloud.bigtable.data.v2.stub.sql.SqlProtoFactory;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -71,7 +72,6 @@
import org.junit.runners.JUnit4;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
-import org.threeten.bp.Instant;
@RunWith(Enclosed.class)
public class AbstractProtoStructReaderTest {
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/ProtoStructTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/ProtoStructTest.java
index 6fa71e7fff..66808bb98a 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/ProtoStructTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/ProtoStructTest.java
@@ -47,13 +47,13 @@
import com.google.cloud.Date;
import com.google.cloud.bigtable.data.v2.models.sql.SqlType;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class ProtoStructTest {
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/ResultSetImplTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/ResultSetImplTest.java
index a5b823b205..a8c5776a87 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/ResultSetImplTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/ResultSetImplTest.java
@@ -54,6 +54,7 @@
import com.google.cloud.bigtable.data.v2.stub.sql.SqlServerStreamImpl;
import com.google.cloud.bigtable.gaxx.testing.FakeStreamingApi.ServerStreamingStashCallable;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@@ -62,7 +63,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class ResultSetImplTest {
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java
index 5ec24830c7..d01ecd0575 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java
@@ -59,6 +59,8 @@
import io.opentelemetry.sdk.metrics.data.MetricData;
import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader;
import java.io.IOException;
+import java.time.Duration;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -75,8 +77,6 @@
import org.junit.rules.Timeout;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Duration;
-import org.threeten.bp.Instant;
@Ignore("Temporarily disable flaky test")
@RunWith(JUnit4.class)
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/ExecuteQueryIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/ExecuteQueryIT.java
index 620d290338..34d0952401 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/ExecuteQueryIT.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/ExecuteQueryIT.java
@@ -31,6 +31,7 @@
import com.google.cloud.bigtable.test_helpers.env.TestEnvRule;
import com.google.protobuf.ByteString;
import java.io.IOException;
+import java.time.Instant;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -41,7 +42,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class ExecuteQueryIT {
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamMutationTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamMutationTest.java
index 61c028cdb6..761bec3765 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamMutationTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamMutationTest.java
@@ -15,6 +15,7 @@
*/
package com.google.cloud.bigtable.data.v2.models;
+import static com.google.api.gax.util.TimeConversionUtils.toThreetenInstant;
import static com.google.common.truth.Truth.assertThat;
import com.google.bigtable.v2.MutateRowRequest;
@@ -29,11 +30,11 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.time.Instant;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class ChangeStreamMutationTest {
@@ -45,6 +46,10 @@ public class ChangeStreamMutationTest {
RequestContext.create(PROJECT_ID, INSTANCE_ID, APP_PROFILE_ID);
private static final Instant FAKE_COMMIT_TIMESTAMP = Instant.ofEpochSecond(0, 1000L);
private static final Instant FAKE_LOW_WATERMARK = Instant.ofEpochSecond(0, 2000L);
+ private static final org.threeten.bp.Instant FAKE_COMMIT_TIMESTAMP_THREETEN =
+ toThreetenInstant(FAKE_COMMIT_TIMESTAMP);
+ private static final org.threeten.bp.Instant FAKE_LOW_WATERMARK_THREETEN =
+ toThreetenInstant(FAKE_LOW_WATERMARK);
@Test
public void userInitiatedMutationTest() throws IOException, ClassNotFoundException {
@@ -73,17 +78,20 @@ public void userInitiatedMutationTest() throws IOException, ClassNotFoundExcepti
Value.rawTimestamp(1000),
Value.rawValue(ByteString.copyFrom(Longs.toByteArray(1234L))))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
// Test the getters.
assertThat(changeStreamMutation.getRowKey()).isEqualTo(ByteString.copyFromUtf8("key"));
assertThat(changeStreamMutation.getType()).isEqualTo(ChangeStreamMutation.MutationType.USER);
assertThat(changeStreamMutation.getSourceClusterId()).isEqualTo("fake-source-cluster-id");
- assertThat(changeStreamMutation.getCommitTimestamp()).isEqualTo(FAKE_COMMIT_TIMESTAMP);
+ assertThat(changeStreamMutation.getCommitTime()).isEqualTo(FAKE_COMMIT_TIMESTAMP);
+ assertThat(changeStreamMutation.getCommitTimestamp()).isEqualTo(FAKE_COMMIT_TIMESTAMP_THREETEN);
assertThat(changeStreamMutation.getTieBreaker()).isEqualTo(0);
assertThat(changeStreamMutation.getToken()).isEqualTo("fake-token");
- assertThat(changeStreamMutation.getEstimatedLowWatermark()).isEqualTo(FAKE_LOW_WATERMARK);
+ assertThat(changeStreamMutation.getEstimatedLowWatermarkTime()).isEqualTo(FAKE_LOW_WATERMARK);
+ assertThat(changeStreamMutation.getEstimatedLowWatermark())
+ .isEqualTo(FAKE_LOW_WATERMARK_THREETEN);
// Test serialization.
ByteArrayOutputStream bos = new ByteArrayOutputStream();
@@ -112,7 +120,7 @@ public void gcMutationTest() throws IOException, ClassNotFoundException {
ByteString.copyFromUtf8("fake-qualifier"),
Range.TimestampRange.create(1000L, 2000L))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
// Test the getters.
@@ -120,10 +128,13 @@ public void gcMutationTest() throws IOException, ClassNotFoundException {
assertThat(changeStreamMutation.getType())
.isEqualTo(ChangeStreamMutation.MutationType.GARBAGE_COLLECTION);
Assert.assertTrue(changeStreamMutation.getSourceClusterId().isEmpty());
- assertThat(changeStreamMutation.getCommitTimestamp()).isEqualTo(FAKE_COMMIT_TIMESTAMP);
+ assertThat(changeStreamMutation.getCommitTime()).isEqualTo(FAKE_COMMIT_TIMESTAMP);
+ assertThat(changeStreamMutation.getCommitTimestamp()).isEqualTo(FAKE_COMMIT_TIMESTAMP_THREETEN);
assertThat(changeStreamMutation.getTieBreaker()).isEqualTo(0);
assertThat(changeStreamMutation.getToken()).isEqualTo("fake-token");
- assertThat(changeStreamMutation.getEstimatedLowWatermark()).isEqualTo(FAKE_LOW_WATERMARK);
+ assertThat(changeStreamMutation.getEstimatedLowWatermarkTime()).isEqualTo(FAKE_LOW_WATERMARK);
+ assertThat(changeStreamMutation.getEstimatedLowWatermark())
+ .isEqualTo(FAKE_LOW_WATERMARK_THREETEN);
// Test serialization.
ByteArrayOutputStream bos = new ByteArrayOutputStream();
@@ -161,7 +172,7 @@ public void toRowMutationTest() {
Value.rawTimestamp(1000),
Value.rawValue(ByteString.copyFrom(Longs.toByteArray(1234L))))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
// Convert it to a rowMutation and construct a MutateRowRequest.
@@ -204,7 +215,7 @@ public void toRowMutationWithoutTokenShouldFailTest() {
ChangeStreamMutation.createUserMutation(
ByteString.copyFromUtf8("key"), "fake-source-cluster-id", FAKE_COMMIT_TIMESTAMP, 0)
.deleteFamily("fake-family")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK);
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK);
Assert.assertThrows(IllegalStateException.class, builder::build);
}
@@ -244,7 +255,7 @@ public void toRowMutationEntryTest() {
Value.rawTimestamp(1000),
Value.rawValue(ByteString.copyFrom(Longs.toByteArray(1234L))))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
// Convert it to a rowMutationEntry and construct a MutateRowRequest.
@@ -284,7 +295,7 @@ public void toRowMutationEntryWithoutTokenShouldFailTest() {
ChangeStreamMutation.createUserMutation(
ByteString.copyFromUtf8("key"), "fake-source-cluster-id", FAKE_COMMIT_TIMESTAMP, 0)
.deleteFamily("fake-family")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK);
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK);
Assert.assertThrows(IllegalStateException.class, builder::build);
}
@@ -309,7 +320,7 @@ public void testWithLongValue() {
1000L,
ByteString.copyFrom(Longs.toByteArray(1L)))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
RowMutation rowMutation = changeStreamMutation.toRowMutation(TABLE_ID);
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecordTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecordTest.java
index 3f09d9b443..9dd66acc73 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecordTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ChangeStreamRecordTest.java
@@ -30,6 +30,7 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.time.Instant;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
@@ -37,7 +38,6 @@
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class ChangeStreamRecordTest {
@@ -129,7 +129,7 @@ public void heartbeatTest() {
.build();
Heartbeat actualHeartbeat = Heartbeat.fromProto(heartbeatProto);
- assertThat(actualHeartbeat.getEstimatedLowWatermark())
+ assertThat(actualHeartbeat.getEstimatedLowWatermarkTime())
.isEqualTo(Instant.ofEpochSecond(lowWatermark.getSeconds(), lowWatermark.getNanos()));
assertThat(actualHeartbeat.getChangeStreamContinuationToken().getPartition())
.isEqualTo(ByteStringRange.create(rowRange.getStartKeyClosed(), rowRange.getEndKeyOpen()));
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/DefaultChangeStreamRecordAdapterTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/DefaultChangeStreamRecordAdapterTest.java
index 22270bc269..b6997ae9dd 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/DefaultChangeStreamRecordAdapterTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/DefaultChangeStreamRecordAdapterTest.java
@@ -15,6 +15,7 @@
*/
package com.google.cloud.bigtable.data.v2.models;
+import static com.google.api.gax.util.TimeConversionUtils.toThreetenInstant;
import static com.google.common.truth.Truth.assertThat;
import com.google.bigtable.v2.Mutation;
@@ -25,6 +26,7 @@
import com.google.protobuf.ByteString;
import com.google.protobuf.Timestamp;
import com.google.rpc.Status;
+import java.time.Instant;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
@@ -32,7 +34,6 @@
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class DefaultChangeStreamRecordAdapterTest {
@@ -41,6 +42,8 @@ public class DefaultChangeStreamRecordAdapterTest {
private ChangeStreamRecordBuilder changeStreamRecordBuilder;
private static final Instant FAKE_COMMIT_TIMESTAMP = Instant.ofEpochSecond(0L, 1000L);
private static final Instant FAKE_LOW_WATERMARK = Instant.ofEpochSecond(0L, 2000L);
+ private static final org.threeten.bp.Instant FAKE_LOW_WATERMARK_THREETEN =
+ toThreetenInstant(FAKE_LOW_WATERMARK);
@Rule public ExpectedException expect = ExpectedException.none();
@@ -59,7 +62,7 @@ public void isHeartbeatTest() {
ChangeStreamMutation.createGcMutation(
ByteString.copyFromUtf8("key"), FAKE_COMMIT_TIMESTAMP, 0)
.setToken("token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
Assert.assertTrue(adapter.isHeartbeat(heartbeatRecord));
Assert.assertFalse(adapter.isHeartbeat(closeStreamRecord));
@@ -73,8 +76,8 @@ public void getTokenFromHeartbeatTest() {
ReadChangeStreamResponse.Heartbeat.newBuilder()
.setEstimatedLowWatermark(
Timestamp.newBuilder()
- .setSeconds(FAKE_LOW_WATERMARK.getEpochSecond())
- .setNanos(FAKE_LOW_WATERMARK.getNano()))
+ .setSeconds(FAKE_LOW_WATERMARK_THREETEN.getEpochSecond())
+ .setNanos(FAKE_LOW_WATERMARK_THREETEN.getNano()))
.setContinuationToken(
StreamContinuationToken.newBuilder().setToken("heartbeat-token").build())
.build());
@@ -99,7 +102,7 @@ public void isChangeStreamMutationTest() {
ChangeStreamMutation.createGcMutation(
ByteString.copyFromUtf8("key"), FAKE_COMMIT_TIMESTAMP, 0)
.setToken("token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
Assert.assertFalse(adapter.isChangeStreamMutation(heartbeatRecord));
Assert.assertFalse(adapter.isChangeStreamMutation(closeStreamRecord));
@@ -112,7 +115,7 @@ public void getTokenFromChangeStreamMutationTest() {
ChangeStreamMutation.createGcMutation(
ByteString.copyFromUtf8("key"), FAKE_COMMIT_TIMESTAMP, 0)
.setToken("change-stream-mutation-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
Assert.assertEquals(
adapter.getTokenFromChangeStreamMutation(changeStreamMutationRecord),
@@ -133,8 +136,8 @@ public void heartbeatTest() {
ReadChangeStreamResponse.Heartbeat.newBuilder()
.setEstimatedLowWatermark(
Timestamp.newBuilder()
- .setSeconds(FAKE_LOW_WATERMARK.getEpochSecond())
- .setNanos(FAKE_LOW_WATERMARK.getNano())
+ .setSeconds(FAKE_LOW_WATERMARK_THREETEN.getEpochSecond())
+ .setNanos(FAKE_LOW_WATERMARK_THREETEN.getNano())
.build())
.setContinuationToken(
StreamContinuationToken.newBuilder().setToken("random-token").build())
@@ -186,7 +189,7 @@ public void singleDeleteFamilyTest() {
ByteString.copyFromUtf8("key"), "fake-source-cluster-id", FAKE_COMMIT_TIMESTAMP, 0)
.deleteFamily("fake-family")
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
// Create the ChangeStreamMutation through the ChangeStreamRecordBuilder.
@@ -225,7 +228,7 @@ public void singleDeleteCellTest() {
ByteString.copyFromUtf8("fake-qualifier"),
Range.TimestampRange.create(1000L, 2000L))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
// Create the ChangeStreamMutation through the ChangeStreamRecordBuilder.
@@ -258,7 +261,7 @@ public void singleNonChunkedCellTest() {
100L,
ByteString.copyFromUtf8("fake-value"))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
// Create the ChangeStreamMutation through the ChangeStreamRecordBuilder.
@@ -290,7 +293,7 @@ public void singleChunkedCellTest() {
100L,
ByteString.copyFromUtf8("fake-value1-value2"))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
// Create the ChangeStreamMutation through the ChangeStreamRecordBuilder.
@@ -327,7 +330,7 @@ public void multipleChunkedCellsTest() {
}
expectedChangeStreamMutationBuilder
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK);
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK);
// Create the ChangeStreamMutation through the ChangeStreamRecordBuilder.
changeStreamRecordBuilder.startUserMutation(
@@ -369,7 +372,7 @@ public void multipleDifferentModsTest() {
100L,
ByteString.copyFromUtf8("chunked-value"))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK);
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK);
// Create the ChangeStreamMutation through the ChangeStreamRecordBuilder.
changeStreamRecordBuilder.startUserMutation(
@@ -418,7 +421,7 @@ public void resetTest() {
ByteString.copyFromUtf8("key"), "fake-source-cluster-id", FAKE_COMMIT_TIMESTAMP, 0)
.deleteFamily("fake-family")
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
changeStreamRecordBuilder.startUserMutation(
ByteString.copyFromUtf8("key"), "fake-source-cluster-id", FAKE_COMMIT_TIMESTAMP, 0);
@@ -438,7 +441,7 @@ public void resetTest() {
100L,
ByteString.copyFromUtf8("fake-value1-value2"))
.setToken("fake-token")
- .setEstimatedLowWatermark(FAKE_LOW_WATERMARK)
+ .setEstimatedLowWatermarkTime(FAKE_LOW_WATERMARK)
.build();
changeStreamRecordBuilder.startUserMutation(
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ReadChangeStreamQueryTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ReadChangeStreamQueryTest.java
index 699f60a8d1..13e1bcb915 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ReadChangeStreamQueryTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/ReadChangeStreamQueryTest.java
@@ -34,6 +34,7 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.time.Instant;
import java.util.Collections;
import org.junit.Before;
import org.junit.Rule;
@@ -41,7 +42,6 @@
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class ReadChangeStreamQueryTest {
@@ -152,8 +152,7 @@ public void endTimeTest() {
@Test
public void heartbeatDurationTest() {
ReadChangeStreamQuery query =
- ReadChangeStreamQuery.create(TABLE_ID)
- .heartbeatDuration(org.threeten.bp.Duration.ofSeconds(5));
+ ReadChangeStreamQuery.create(TABLE_ID).heartbeatDuration(java.time.Duration.ofSeconds(5));
Builder expectedProto =
expectedProtoBuilder().setHeartbeatDuration(Duration.newBuilder().setSeconds(5).build());
@@ -232,7 +231,7 @@ public void serializationTest() throws IOException, ClassNotFoundException {
.streamPartition("simple-begin", "simple-end")
.continuationTokens(Collections.singletonList(token))
.endTime(FAKE_END_TIME)
- .heartbeatDuration(org.threeten.bp.Duration.ofSeconds(5));
+ .heartbeatDuration(java.time.Duration.ofSeconds(5));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
@@ -302,7 +301,7 @@ public void testEquality() {
.streamPartition("simple-begin", "simple-end")
.startTime(FAKE_START_TIME)
.endTime(FAKE_END_TIME)
- .heartbeatDuration(org.threeten.bp.Duration.ofSeconds(5));
+ .heartbeatDuration(java.time.Duration.ofSeconds(5));
// ReadChangeStreamQuery#toProto should not change the ReadChangeStreamQuery instance state
request.toProto(requestContext);
@@ -312,7 +311,7 @@ public void testEquality() {
.streamPartition("simple-begin", "simple-end")
.startTime(FAKE_START_TIME)
.endTime(FAKE_END_TIME)
- .heartbeatDuration(org.threeten.bp.Duration.ofSeconds(5)));
+ .heartbeatDuration(java.time.Duration.ofSeconds(5)));
assertThat(ReadChangeStreamQuery.create(TABLE_ID).streamPartition("begin-1", "end-1"))
.isNotEqualTo(ReadChangeStreamQuery.create(TABLE_ID).streamPartition("begin-2", "end-1"));
@@ -324,10 +323,10 @@ public void testEquality() {
ReadChangeStreamQuery.create(TABLE_ID).endTime(Instant.ofEpochSecond(1L, 1001L)));
assertThat(
ReadChangeStreamQuery.create(TABLE_ID)
- .heartbeatDuration(org.threeten.bp.Duration.ofSeconds(5)))
+ .heartbeatDuration(java.time.Duration.ofSeconds(5)))
.isNotEqualTo(
ReadChangeStreamQuery.create(TABLE_ID)
- .heartbeatDuration(org.threeten.bp.Duration.ofSeconds(6)));
+ .heartbeatDuration(java.time.Duration.ofSeconds(6)));
}
@Test
@@ -350,7 +349,7 @@ public void testClone() {
.streamPartition("begin", "end")
.continuationTokens(Collections.singletonList(token))
.endTime(FAKE_END_TIME)
- .heartbeatDuration(org.threeten.bp.Duration.ofSeconds(5));
+ .heartbeatDuration(java.time.Duration.ofSeconds(5));
ReadChangeStreamRequest request =
ReadChangeStreamRequest.newBuilder()
.setTableName(NameUtil.formatTableName(PROJECT_ID, INSTANCE_ID, TABLE_ID))
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/sql/StatementTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/sql/StatementTest.java
index cb19a7fde9..6d4765230e 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/sql/StatementTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/models/sql/StatementTest.java
@@ -41,12 +41,12 @@
import com.google.cloud.Date;
import com.google.cloud.bigtable.data.v2.internal.RequestContext;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import java.util.Arrays;
import java.util.Collections;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class StatementTest {
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/RateLimitingCallableTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/RateLimitingCallableTest.java
index f2fe77725d..652049b266 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/RateLimitingCallableTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/RateLimitingCallableTest.java
@@ -36,12 +36,12 @@
import com.google.protobuf.Duration;
import com.google.rpc.Code;
import com.google.rpc.Status;
+import java.time.Instant;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.mockito.Mockito;
-import org.threeten.bp.Instant;
@RunWith(JUnit4.class)
public class RateLimitingCallableTest {
@@ -72,7 +72,7 @@ public void testUpdateRate() throws Exception {
callableToTest.call(request, responseObserver, context);
callableToTest.setLimiterEnabled(true);
- Instant earlier = Instant.now().minus(org.threeten.bp.Duration.ofHours(1));
+ Instant earlier = Instant.now().minus(java.time.Duration.ofHours(1));
// Make sure rate will be updated.
callableToTest.getNextRateUpdateTime().set(earlier);
@@ -105,7 +105,7 @@ public void testNoRateLimitInfoDoesNotUpdateRate() throws Exception {
callableToTest.call(request, responseObserver, context);
callableToTest.setLimiterEnabled(true);
- Instant earlier = Instant.now().minus(org.threeten.bp.Duration.ofHours(1));
+ Instant earlier = Instant.now().minus(java.time.Duration.ofHours(1));
// Make sure rate will be updated.
callableToTest.getNextRateUpdateTime().set(earlier);
@@ -131,7 +131,7 @@ public void testInvalidRateLimitInfoDoesNotUpdateRate() throws Exception {
callableToTest.call(request, responseObserver, context);
callableToTest.setLimiterEnabled(true);
- Instant earlier = Instant.now().minus(org.threeten.bp.Duration.ofHours(1));
+ Instant earlier = Instant.now().minus(java.time.Duration.ofHours(1));
// make sure QPS will be updated
callableToTest.getNextRateUpdateTime().set(earlier);
@@ -166,7 +166,7 @@ public void testMissingRateLimitInfoFactorDoesNotUpdateRate() throws Exception {
callableToTest.call(request, responseObserver, context);
callableToTest.setLimiterEnabled(true);
- Instant earlier = Instant.now().minus(org.threeten.bp.Duration.ofHours(1));
+ Instant earlier = Instant.now().minus(java.time.Duration.ofHours(1));
// Make sure rate can be updated.
callableToTest.getNextRateUpdateTime().set(earlier);
@@ -199,7 +199,7 @@ public void testNoUpdateBeforeAllowedTime() throws Exception {
callableToTest.call(request, responseObserver, context);
callableToTest.setLimiterEnabled(true);
- Instant later = Instant.now().plus(org.threeten.bp.Duration.ofHours(1));
+ Instant later = Instant.now().plus(java.time.Duration.ofHours(1));
// Make sure rate will not be updated.
callableToTest.getNextRateUpdateTime().set(later);
double oldQps = callableToTest.getCurrentRate();
@@ -232,7 +232,7 @@ public void testDoesNotDisableBeforeAllowedTime() throws Exception {
callableToTest.call(request, responseObserver, context);
callableToTest.setLimiterEnabled(true);
- Instant later = Instant.now().plus(org.threeten.bp.Duration.ofHours(1));
+ Instant later = Instant.now().plus(java.time.Duration.ofHours(1));
// Make sure limiter will not be disabled.
callableToTest.getNextRateUpdateTime().set(later);
double oldQps = callableToTest.getCurrentRate();
@@ -257,7 +257,7 @@ public void testEnableWithinPeriodDoesNotUpdateRate() throws Exception {
callableToTest.call(request, responseObserver, context);
callableToTest.setRate(1.5);
- Instant later = Instant.now().plus(org.threeten.bp.Duration.ofHours(1));
+ Instant later = Instant.now().plus(java.time.Duration.ofHours(1));
// Even though the rate update time is far in the future, enable is always allowed.
callableToTest.getNextRateUpdateTime().set(later);
double oldQps = callableToTest.getCurrentRate();
@@ -289,7 +289,7 @@ public void testEnableWithinPeriodDoesNotUpdateRate() throws Exception {
public void testErrorInfoLowerQPS() throws Exception {
callableToTest.call(request, responseObserver, context);
- Instant earlier = Instant.now().minus(org.threeten.bp.Duration.ofHours(1));
+ Instant earlier = Instant.now().minus(java.time.Duration.ofHours(1));
// make sure QPS will be updated
callableToTest.getNextRateUpdateTime().set(earlier);
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/changestream/ChangeStreamRecordMergingCallableTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/changestream/ChangeStreamRecordMergingCallableTest.java
index f0939fb0cf..a5201770ee 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/changestream/ChangeStreamRecordMergingCallableTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/changestream/ChangeStreamRecordMergingCallableTest.java
@@ -85,6 +85,11 @@ public void heartbeatTest() {
Instant.ofEpochSecond(
heartbeatProto.getEstimatedLowWatermark().getSeconds(),
heartbeatProto.getEstimatedLowWatermark().getNanos()));
+ assertThat(heartbeat.getEstimatedLowWatermarkTime())
+ .isEqualTo(
+ java.time.Instant.ofEpochSecond(
+ heartbeatProto.getEstimatedLowWatermark().getSeconds(),
+ heartbeatProto.getEstimatedLowWatermark().getNanos()));
}
@Test
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporterTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporterTest.java
index 657db7d8ae..e471b19a20 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporterTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporterTest.java
@@ -37,6 +37,7 @@
import com.google.api.gax.rpc.UnaryCallable;
import com.google.cloud.monitoring.v3.MetricServiceClient;
import com.google.cloud.monitoring.v3.stub.MetricServiceStub;
+import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.monitoring.v3.CreateTimeSeriesRequest;
@@ -95,7 +96,7 @@ public void setUp() {
exporter =
new BigtableCloudMonitoringExporter(
- fakeMetricServiceClient, /* applicationResource= */ null, taskId);
+ fakeMetricServiceClient, /* applicationResource= */ Suppliers.ofInstance(null), taskId);
attributes =
Attributes.builder()
@@ -308,11 +309,12 @@ public void testTimeSeriesForMetricWithGceOrGkeResource() {
BigtableCloudMonitoringExporter exporter =
new BigtableCloudMonitoringExporter(
fakeMetricServiceClient,
- MonitoredResource.newBuilder()
- .setType("gce-instance")
- .putLabels("some-gce-key", "some-gce-value")
- .putLabels("project_id", gceProjectId)
- .build(),
+ Suppliers.ofInstance(
+ MonitoredResource.newBuilder()
+ .setType("gce-instance")
+ .putLabels("some-gce-key", "some-gce-value")
+ .putLabels("project_id", gceProjectId)
+ .build()),
taskId);
ArgumentCaptor argumentCaptor =
ArgumentCaptor.forClass(CreateTimeSeriesRequest.class);
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/CompositeTracerTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/CompositeTracerTest.java
index cb0916ad28..71a4728f9f 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/CompositeTracerTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/CompositeTracerTest.java
@@ -15,6 +15,7 @@
*/
package com.google.cloud.bigtable.data.v2.stub.metrics;
+import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
@@ -39,7 +40,6 @@
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
-import org.threeten.bp.Duration;
@RunWith(JUnit4.class)
public class CompositeTracerTest {
@@ -148,12 +148,24 @@ public void testAttemptCancelled() {
@Test
public void testAttemptFailed() {
RuntimeException error = new RuntimeException();
- Duration delay = Duration.ofMillis(10);
- compositeTracer.attemptFailed(error, delay);
- verify(child1, times(1)).attemptFailed(error, delay);
- verify(child2, times(1)).attemptFailed(error, delay);
- verify(child3, times(1)).attemptFailed(error, delay);
- verify(child4, times(1)).attemptFailed(error, delay);
+ java.time.Duration delay = java.time.Duration.ofMillis(10);
+ compositeTracer.attemptFailed(error, toThreetenDuration(delay));
+ // the implementation of CompositeTracer.attemptFailed delegates to attemptFailedDuration.
+ verify(child1, times(1)).attemptFailedDuration(error, delay);
+ verify(child2, times(1)).attemptFailedDuration(error, delay);
+ verify(child3, times(1)).attemptFailedDuration(error, delay);
+ verify(child4, times(1)).attemptFailedDuration(error, delay);
+ }
+
+ @Test
+ public void testAttemptFailedDuration() {
+ RuntimeException error = new RuntimeException();
+ java.time.Duration delay = java.time.Duration.ofMillis(10);
+ compositeTracer.attemptFailedDuration(error, delay);
+ verify(child1, times(1)).attemptFailedDuration(error, delay);
+ verify(child2, times(1)).attemptFailedDuration(error, delay);
+ verify(child3, times(1)).attemptFailedDuration(error, delay);
+ verify(child4, times(1)).attemptFailedDuration(error, delay);
}
@Test
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsAttemptCallableTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsAttemptCallableTest.java
index 6dd1ff9bd0..60ec5193e4 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsAttemptCallableTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/mutaterows/MutateRowsAttemptCallableTest.java
@@ -41,6 +41,7 @@
import com.google.common.collect.Lists;
import com.google.protobuf.ByteString;
import com.google.rpc.Status;
+import java.time.Duration;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Callable;
@@ -49,7 +50,6 @@
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.mockito.Mockito;
-import org.threeten.bp.Duration;
@RunWith(JUnit4.class)
public class MutateRowsAttemptCallableTest {
@@ -140,7 +140,7 @@ public void missingEntry() throws Exception {
@Test
public void testNoRpcTimeout() {
parentFuture.timedAttemptSettings =
- parentFuture.timedAttemptSettings.toBuilder().setRpcTimeout(Duration.ZERO).build();
+ parentFuture.timedAttemptSettings.toBuilder().setRpcTimeoutDuration(Duration.ZERO).build();
MutateRowsRequest request =
MutateRowsRequest.newBuilder().addEntries(Entry.getDefaultInstance()).build();
@@ -405,12 +405,13 @@ static class MockRetryingFuture extends AbstractApiFuture4.0.0
com.google.api.grpc
grpc-google-cloud-bigtable-admin-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
grpc-google-cloud-bigtable-admin-v2
GRPC library for grpc-google-cloud-bigtable-admin-v2
com.google.cloud
google-cloud-bigtable-parent
- 2.50.0
+ 2.51.1-SNAPSHOT
@@ -18,14 +18,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml
index 2d54278234..4f3d1dd605 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
- 2.50.0
+ 2.51.1-SNAPSHOT
grpc-google-cloud-bigtable-v2
GRPC library for grpc-google-cloud-bigtable-v2
com.google.cloud
google-cloud-bigtable-parent
- 2.50.0
+ 2.51.1-SNAPSHOT
@@ -18,14 +18,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
diff --git a/pom.xml b/pom.xml
index 882b2303a4..7e3ff74f9b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
google-cloud-bigtable-parent
pom
- 2.50.0
+ 2.51.1-SNAPSHOT
Google Cloud Bigtable Parent
https://github.com/googleapis/java-bigtable
@@ -14,7 +14,7 @@
com.google.cloud
sdk-platform-java-config
- 3.40.0
+ 3.41.0
@@ -153,27 +153,27 @@
com.google.api.grpc
proto-google-cloud-bigtable-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
com.google.api.grpc
proto-google-cloud-bigtable-admin-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
com.google.api.grpc
grpc-google-cloud-bigtable-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
com.google.api.grpc
grpc-google-cloud-bigtable-admin-v2
- 2.50.0
+ 2.51.1-SNAPSHOT
com.google.cloud
google-cloud-bigtable
- 2.50.0
+ 2.51.1-SNAPSHOT
diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml
index defb843298..f944acdb2e 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
- 2.50.0
+ 2.51.1-SNAPSHOT
proto-google-cloud-bigtable-admin-v2
PROTO library for proto-google-cloud-bigtable-admin-v2
com.google.cloud
google-cloud-bigtable-parent
- 2.50.0
+ 2.51.1-SNAPSHOT
@@ -18,14 +18,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml
index efe2dd1bcb..98eb8c689e 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
- 2.50.0
+ 2.51.1-SNAPSHOT
proto-google-cloud-bigtable-v2
PROTO library for proto-google-cloud-bigtable-v2
com.google.cloud
google-cloud-bigtable-parent
- 2.50.0
+ 2.51.1-SNAPSHOT
@@ -18,14 +18,14 @@
com.google.cloud
google-cloud-bigtable-deps-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
com.google.cloud
google-cloud-bigtable-bom
- 2.50.0
+ 2.51.1-SNAPSHOT
pom
import
diff --git a/renovate.json b/renovate.json
index 3c5874c1a2..837f09eaa2 100644
--- a/renovate.json
+++ b/renovate.json
@@ -73,11 +73,10 @@
},
{
"packagePatterns": [
- "^com.google.api:gapic-generator-java",
"^com.google.cloud:sdk-platform-java-config",
"^com.google.cloud:gapic-libraries-bom"
],
- "groupName": "sdk-platform-java dependencies"
+ "groupName": "shared dependencies"
}
],
"regexManagers": [
@@ -109,16 +108,6 @@
"matchStrings": ["uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?.+?)\\n"],
"depNameTemplate": "com.google.cloud:sdk-platform-java-config",
"datasourceTemplate": "maven"
- },
- {
- "fileMatch": [
- ".github/workflows/hermetic_library_generation.yaml"
- ],
- "matchStrings": [
- "uses: googleapis/sdk-platform-java/.github/scripts@v(?.+?)\\n"
- ],
- "depNameTemplate": "com.google.api:gapic-generator-java",
- "datasourceTemplate": "maven"
}
],
"semanticCommits": true,
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index 4d1d890cc8..a4e204df0f 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -29,7 +29,7 @@
com.google.cloud
google-cloud-bigtable
- 2.48.0
+ 2.50.0
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 621f77096e..3f21bc6e48 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
com.google.cloud
google-cloud-bigtable
- 2.50.0
+ 2.51.1-SNAPSHOT
diff --git a/test-proxy/README.md b/test-proxy/README.md
index 18778ba8c3..f87a3374ca 100644
--- a/test-proxy/README.md
+++ b/test-proxy/README.md
@@ -1,6 +1,6 @@
# CBT Java Test Proxy
-The CBT test proxy is intended for running confromance tests for Cloug Bigtable Java Client.
+The CBT test proxy is intended for running conformance tests for Cloud Bigtable Java Client.
## Set up
diff --git a/test-proxy/pom.xml b/test-proxy/pom.xml
index e2f23bba5f..ef03220a72 100644
--- a/test-proxy/pom.xml
+++ b/test-proxy/pom.xml
@@ -12,11 +12,11 @@
google-cloud-bigtable-parent
com.google.cloud
- 2.50.0
+ 2.51.1-SNAPSHOT
- 2.50.0
+ 2.51.1-SNAPSHOT
diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java
index 2dd095df10..05731cf9c5 100644
--- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java
+++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java
@@ -60,6 +60,7 @@
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.io.IOException;
+import java.time.Duration;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
@@ -70,7 +71,6 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-import org.threeten.bp.Duration;
/** Java implementation of the CBT test proxy. Used to test the Java CBT client. */
public class CbtTestProxy extends CloudBigtableV2TestProxyImplBase implements Closeable {
@@ -129,15 +129,15 @@ private static BigtableDataSettings.Builder overrideTimeoutSetting(
}
private static void updateTimeout(RetrySettings.Builder settings, Duration newTimeout) {
- Duration rpcTimeout = settings.getInitialRpcTimeout();
+ Duration rpcTimeout = settings.getInitialRpcTimeoutDuration();
// TODO: this should happen in gax
// Clamp the rpcTimeout to the overall timeout
if (rpcTimeout != null && rpcTimeout.compareTo(newTimeout) > 0) {
- settings.setInitialRpcTimeout(newTimeout).setMaxRpcTimeout(newTimeout);
+ settings.setInitialRpcTimeoutDuration(newTimeout).setMaxRpcTimeoutDuration(newTimeout);
}
- settings.setTotalTimeout(newTimeout);
+ settings.setTotalTimeoutDuration(newTimeout);
}
/** Helper method to get a client object by its id. */
diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/ResultSetSerializer.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/ResultSetSerializer.java
index c138c82a6b..7400986b6e 100644
--- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/ResultSetSerializer.java
+++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/ResultSetSerializer.java
@@ -33,9 +33,9 @@
import com.google.cloud.bigtable.data.v2.models.sql.SqlType;
import com.google.cloud.bigtable.data.v2.models.sql.StructReader;
import com.google.protobuf.ByteString;
+import java.time.Instant;
import java.util.List;
import java.util.concurrent.ExecutionException;
-import org.threeten.bp.Instant;
public class ResultSetSerializer {
public static ExecuteQueryResult toExecuteQueryResult(ResultSet resultSet)
diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/StatementDeserializer.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/StatementDeserializer.java
index ae3b50aa7f..4eb5f47e3a 100644
--- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/StatementDeserializer.java
+++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/StatementDeserializer.java
@@ -21,10 +21,10 @@
import com.google.cloud.bigtable.data.v2.models.sql.SqlType;
import com.google.cloud.bigtable.data.v2.models.sql.Statement;
import com.google.protobuf.Timestamp;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import org.threeten.bp.Instant;
public class StatementDeserializer {
diff --git a/versions.txt b/versions.txt
index f21d580d34..1ef7c312a6 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,10 +1,10 @@
# Format:
# module:released-version:current-version
-google-cloud-bigtable:2.50.0:2.50.0
-grpc-google-cloud-bigtable-admin-v2:2.50.0:2.50.0
-grpc-google-cloud-bigtable-v2:2.50.0:2.50.0
-proto-google-cloud-bigtable-admin-v2:2.50.0:2.50.0
-proto-google-cloud-bigtable-v2:2.50.0:2.50.0
-google-cloud-bigtable-emulator:0.187.0:0.187.0
-google-cloud-bigtable-emulator-core:0.187.0:0.187.0
+google-cloud-bigtable:2.51.0:2.51.1-SNAPSHOT
+grpc-google-cloud-bigtable-admin-v2:2.51.0:2.51.1-SNAPSHOT
+grpc-google-cloud-bigtable-v2:2.51.0:2.51.1-SNAPSHOT
+proto-google-cloud-bigtable-admin-v2:2.51.0:2.51.1-SNAPSHOT
+proto-google-cloud-bigtable-v2:2.51.0:2.51.1-SNAPSHOT
+google-cloud-bigtable-emulator:0.188.0:0.188.1-SNAPSHOT
+google-cloud-bigtable-emulator-core:0.188.0:0.188.1-SNAPSHOT