From f288fbe5d5131224677cedb68672fc4099b72d53 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 5 Dec 2022 18:28:13 +0000 Subject: [PATCH 01/21] chore(main): release 2.9.1-SNAPSHOT (#1051) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- google-cloud-core-bom/pom.xml | 8 ++++---- google-cloud-core-grpc/pom.xml | 4 ++-- google-cloud-core-http/pom.xml | 4 ++-- google-cloud-core/pom.xml | 4 ++-- pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/google-cloud-core-bom/pom.xml b/google-cloud-core-bom/pom.xml index 8ebe76e7f9..a38324cd52 100644 --- a/google-cloud-core-bom/pom.xml +++ b/google-cloud-core-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-bom - 2.9.0 + 2.9.1-SNAPSHOT pom com.google.cloud @@ -63,17 +63,17 @@ com.google.cloud google-cloud-core - 2.9.0 + 2.9.1-SNAPSHOT com.google.cloud google-cloud-core-grpc - 2.9.0 + 2.9.1-SNAPSHOT com.google.cloud google-cloud-core-http - 2.9.0 + 2.9.1-SNAPSHOT diff --git a/google-cloud-core-grpc/pom.xml b/google-cloud-core-grpc/pom.xml index 9ccf063051..77e2cd7abf 100644 --- a/google-cloud-core-grpc/pom.xml +++ b/google-cloud-core-grpc/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-grpc - 2.9.0 + 2.9.1-SNAPSHOT jar Google Cloud Core gRPC https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 2.9.0 + 2.9.1-SNAPSHOT google-cloud-core-grpc diff --git a/google-cloud-core-http/pom.xml b/google-cloud-core-http/pom.xml index e889527679..818afbab25 100644 --- a/google-cloud-core-http/pom.xml +++ b/google-cloud-core-http/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-http - 2.9.0 + 2.9.1-SNAPSHOT jar Google Cloud Core HTTP https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 2.9.0 + 2.9.1-SNAPSHOT google-cloud-core-http diff --git a/google-cloud-core/pom.xml b/google-cloud-core/pom.xml index af552f9f76..12f5a3bd70 100644 --- a/google-cloud-core/pom.xml +++ b/google-cloud-core/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core - 2.9.0 + 2.9.1-SNAPSHOT jar Google Cloud Core https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 2.9.0 + 2.9.1-SNAPSHOT google-cloud-core diff --git a/pom.xml b/pom.xml index fc165b0ace..82f9392760 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-core-parent pom - 2.9.0 + 2.9.1-SNAPSHOT Google Cloud Core Parent https://github.com/googleapis/java-core diff --git a/versions.txt b/versions.txt index 8efc8816bf..03e7d734c5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-core:2.9.0:2.9.0 +google-cloud-core:2.9.0:2.9.1-SNAPSHOT From 8b574f66c6e77b31ec8d544319a116f5c19804b9 Mon Sep 17 00:00:00 2001 From: BenWhitehead Date: Thu, 15 Dec 2022 15:09:12 -0500 Subject: [PATCH 02/21] docs: update javadocs for ReadChannel to be more clear about the behavior (#1050) --- .../java/com/google/cloud/ReadChannel.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/google-cloud-core/src/main/java/com/google/cloud/ReadChannel.java b/google-cloud-core/src/main/java/com/google/cloud/ReadChannel.java index 781326fa7a..effc33ee8e 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/ReadChannel.java +++ b/google-cloud-core/src/main/java/com/google/cloud/ReadChannel.java @@ -37,6 +37,7 @@ public interface ReadChannel extends ReadableByteChannel, Closeable, Restorable< @Override void close(); + /** Set the offset to read from. */ void seek(long position) throws IOException; /** @@ -62,6 +63,23 @@ public interface ReadChannel extends ReadableByteChannel, Closeable, Restorable< *

If used in conjunction with {@link #seek(long)} the total number of returned bytes from this * channel will be reduced by the number of bytes specified to seek. * + *

The value provided as {@code limit} will define a left-closed, + * right-open interval along with either {@code 0} or any value provided to {@link + * #seek(long)}, i.e. {@code [}{@link #seek(long)}{@code , }{@link #limit(long)}{@code )}. + * + *

An example to help illustrate the relationship

+ * + * Imagine some data {@code [A, B, C, D, E, F, G, H, I, J]}, 10 bytes total. + * + *
    + *
  1. {@code limit(5)} would produce {@code [A, B, C, D, E]} + *
  2. {@code seek(8)} would produce {@code [I, J]} + *
  3. {@code seek(2)} {@code limit(5)} would produce {@code [C, D, E]} + *
  4. {@code seek(3)} {@code limit(3)} would produce {@code []} + *
+ * *

NOTE:Implementers are not required to return a new instance from this method, however * they are allowed to. Users of this method should always use the instance returned from this * method. From 352600b21dd3392715d47f50805f384fc2ca6c9c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 21:30:28 +0000 Subject: [PATCH 03/21] build(deps): bump certifi from 2022.9.24 to 2022.12.7 in /synthtool/gcp/templates/java_library/.kokoro (#1732) (#1057) build(deps): bump certifi Bumps [certifi](https://togithub.com/certifi/python-certifi) from 2022.9.24 to 2022.12.7. - [Release notes](https://togithub.com/certifi/python-certifi/releases) - [Commits](https://togithub.com/certifi/python-certifi/compare/2022.09.24...2022.12.07) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Ching Source-Link: https://togithub.com/googleapis/synthtool/commit/ae0d43e5f17972981fe501ecf5a5d20055128bea Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:9de537d592b60e5eac73b374a28263969bae91ecdb29b445e894576fbf54851c --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 2 +- .kokoro/requirements.txt | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 4ca0036da3..288e394897 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:27b1b1884dce60460d7521b23c2a73376cba90c0ef3d9f0d32e4bdb786959cfd + digest: sha256:9de537d592b60e5eac73b374a28263969bae91ecdb29b445e894576fbf54851c diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index 924f94ae6f..a5010f77d4 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -17,7 +17,7 @@ pycparser==2.21 pyperclip==1.8.2 python-dateutil==2.8.2 requests==2.27.1 -certifi==2022.9.24 +certifi==2022.12.7 importlib-metadata==4.8.3 zipp==3.6.0 google_api_core==2.8.2 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 71fcafc703..15c404aa5a 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -16,9 +16,9 @@ cachetools==4.2.4 \ # via # -r requirements.in # google-auth -certifi==2022.9.24 \ - --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ - --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 +certifi==2022.12.7 \ + --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ + --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 # via # -r requirements.in # requests From 7e12b5d137db97d95320416cd80e467bb300c499 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 20 Dec 2022 22:32:22 +0100 Subject: [PATCH 04/21] deps: update dependency org.threeten:threetenbp to v1.6.5 (#1052) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.threeten:threetenbp](https://www.threeten.org/threetenbp) ([source](https://togithub.com/ThreeTen/threetenbp)) | `1.6.4` -> `1.6.5` | [![age](https://badges.renovateapi.com/packages/maven/org.threeten:threetenbp/1.6.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.threeten:threetenbp/1.6.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.threeten:threetenbp/1.6.5/compatibility-slim/1.6.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.threeten:threetenbp/1.6.5/confidence-slim/1.6.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes

ThreeTen/threetenbp ### [`v1.6.5`](https://togithub.com/ThreeTen/threetenbp/releases/tag/v1.6.5) [Compare Source](https://togithub.com/ThreeTen/threetenbp/compare/v1.6.4...v1.6.5) See the [change notes](https://www.threeten.org/threetenbp/changes-report.html) for more information.
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-core). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 82f9392760..1f29019d9f 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ 1.1.3 5.0.1 3.0.2 - 1.6.4 + 1.6.5 3.3 2.16 2.10 From 43ce49083ebdfada11732ff82aa407c69311f4c9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 20 Dec 2022 22:34:18 +0100 Subject: [PATCH 05/21] deps: update dependency com.google.api:api-common to v2.3.1 (#1053) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api:api-common](https://togithub.com/googleapis/api-common-java) | `2.2.2` -> `2.3.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api:api-common/2.3.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api:api-common/2.3.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api:api-common/2.3.1/compatibility-slim/2.2.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api:api-common/2.3.1/confidence-slim/2.2.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/api-common-java ### [`v2.3.1`](https://togithub.com/googleapis/api-common-java/blob/HEAD/CHANGELOG.md#​231-httpsgithubcomgoogleapisapi-common-javacomparev230v231-2022-12-06) [Compare Source](https://togithub.com/googleapis/api-common-java/compare/v2.2.2...v2.3.1) ##### Bug Fixes - Build with JDK11 and target JDK8 ([1862611](https://togithub.com/googleapis/api-common-java/commit/1862611d8b5cff69288380fe567e6ce033148c55))
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-core). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1f29019d9f..0c7d55ef53 100644 --- a/pom.xml +++ b/pom.xml @@ -152,7 +152,7 @@ github google-cloud-core-parent 2.20.1 - 2.2.2 + 2.3.1 2.11.0 1.6.22 1.13.0 From 3fc149e28a8724b100717c0ddfb138338401fea9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 20 Dec 2022 22:34:23 +0100 Subject: [PATCH 06/21] deps: update dependency com.google.protobuf:protobuf-bom to v3.21.12 (#1054) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.protobuf:protobuf-bom](https://developers.google.com/protocol-buffers/) ([source](https://togithub.com/protocolbuffers/protobuf)) | `3.21.10` -> `3.21.12` | [![age](https://badges.renovateapi.com/packages/maven/com.google.protobuf:protobuf-bom/3.21.12/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.protobuf:protobuf-bom/3.21.12/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.protobuf:protobuf-bom/3.21.12/compatibility-slim/3.21.10)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.protobuf:protobuf-bom/3.21.12/confidence-slim/3.21.10)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
protocolbuffers/protobuf ### [`v3.21.12`](https://togithub.com/protocolbuffers/protobuf/compare/v3.21.11...v3.21.12) [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v3.21.11...v3.21.12) ### [`v3.21.11`](https://togithub.com/protocolbuffers/protobuf/compare/v3.21.10...v3.21.11) [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v3.21.10...v3.21.11)
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-core). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0c7d55ef53..fa45da858f 100644 --- a/pom.xml +++ b/pom.xml @@ -159,7 +159,7 @@ 2.1.1 1.42.3 1.51.0 - 3.21.10 + 3.21.12 0.31.1 1.3.2 31.1-jre From 328628da55cea6d27c4fe4ed2aaa14bf2bc59a58 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 20 Dec 2022 22:36:33 +0100 Subject: [PATCH 07/21] deps: update dependency com.google.auth:google-auth-library-bom to v1.14.0 (#1056) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.auth:google-auth-library-bom](https://togithub.com/googleapis/google-auth-library-java) | `1.13.0` -> `1.14.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.auth:google-auth-library-bom/1.14.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.auth:google-auth-library-bom/1.14.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.auth:google-auth-library-bom/1.14.0/compatibility-slim/1.13.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.auth:google-auth-library-bom/1.14.0/confidence-slim/1.13.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/google-auth-library-java ### [`v1.14.0`](https://togithub.com/googleapis/google-auth-library-java/blob/HEAD/CHANGELOG.md#​1140-httpsgithubcomgoogleapisgoogle-auth-library-javacomparev1130v1140-2022-12-06) [Compare Source](https://togithub.com/googleapis/google-auth-library-java/compare/v1.13.0...v1.14.0) ##### Features - Add GDCH support ([#​1087](https://togithub.com/googleapis/google-auth-library-java/issues/1087)) ([cfafb2d](https://togithub.com/googleapis/google-auth-library-java/commit/cfafb2d4c8d6ab3179e709ff09fc09e6dbc11a70)) - Adding functional tests for Compute Engine ([#​1105](https://togithub.com/googleapis/google-auth-library-java/issues/1105)) ([6f32ac3](https://togithub.com/googleapis/google-auth-library-java/commit/6f32ac3d4db91ff05fd7134ad6c788a16ffe44f4)) - Introduce Environment Variable for Quota Project Id ([#​1082](https://togithub.com/googleapis/google-auth-library-java/issues/1082)) ([040acef](https://togithub.com/googleapis/google-auth-library-java/commit/040acefec507f419f6e4ec4eab9645a6e3888a15)) - Next release from main branch is 1.13.0 ([#​1077](https://togithub.com/googleapis/google-auth-library-java/issues/1077)) ([d56eee0](https://togithub.com/googleapis/google-auth-library-java/commit/d56eee07911ba65a685ccba585e71061037ea756)) ##### Bug Fixes - AwsCredentials should not call metadata server if security creds and region are retrievable through environment vars ([#​1100](https://togithub.com/googleapis/google-auth-library-java/issues/1100)) ([1ff5772](https://togithub.com/googleapis/google-auth-library-java/commit/1ff57720609fdf27f28b9c543c1ef63b57892593)) - Not loosing the access token when calling UserCredentials#ToBuil… ([#​993](https://togithub.com/googleapis/google-auth-library-java/issues/993)) ([84afdb8](https://togithub.com/googleapis/google-auth-library-java/commit/84afdb8f8d41e781dc93f04626411e10b35689de))
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-core). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fa45da858f..f89d8cee2f 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ 2.3.1 2.11.0 1.6.22 - 1.13.0 + 1.14.0 2.1.1 1.42.3 1.51.0 From d8ca14cdb10d5af41396b40702a4abd7c9b5b15c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 20 Dec 2022 22:42:17 +0100 Subject: [PATCH 08/21] deps: update dependency io.grpc:grpc-bom to v1.51.1 (#1058) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [io.grpc:grpc-bom](https://togithub.com/grpc/grpc-java) | `1.51.0` -> `1.51.1` | [![age](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.51.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.51.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.51.1/compatibility-slim/1.51.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.51.1/confidence-slim/1.51.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
grpc/grpc-java ### [`v1.51.1`](https://togithub.com/grpc/grpc-java/releases/tag/v1.51.1) [Compare Source](https://togithub.com/grpc/grpc-java/compare/v1.51.0...v1.51.1) ##### Bug Fixes - xds: Fix ConcurrentModificationException in PriorityLoadBalancer. ([#​9744](https://togithub.com/grpc/grpc-java/issues/9744))
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-core). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f89d8cee2f..67f5d3478b 100644 --- a/pom.xml +++ b/pom.xml @@ -158,7 +158,7 @@ 1.14.0 2.1.1 1.42.3 - 1.51.0 + 1.51.1 3.21.12 0.31.1 1.3.2 From a2e5c4eb35824ee019b0d0b8f984144f07d76c0a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Dec 2022 17:58:19 +0100 Subject: [PATCH 09/21] deps: update dependency com.google.api.grpc:proto-google-iam-v1 to v1.6.23 (#1060) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-iam-v1](https://togithub.com/googleapis/java-iam/proto-google-iam-v1) ([source](https://togithub.com/googleapis/java-iam)) | `1.6.22` -> `1.6.23` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-iam-v1/1.6.23/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-iam-v1/1.6.23/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-iam-v1/1.6.23/compatibility-slim/1.6.22)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-iam-v1/1.6.23/confidence-slim/1.6.22)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/java-iam ### [`v1.6.23`](https://togithub.com/googleapis/java-iam/blob/HEAD/CHANGELOG.md#​1623-httpsgithubcomgoogleapisjava-iamcomparev1622v1623-2022-12-20) [Compare Source](https://togithub.com/googleapis/java-iam/compare/v1.6.22...v1.6.23) ##### Dependencies - Update dependency com.google.api:api-common to v2.3.1 ([#​567](https://togithub.com/googleapis/java-iam/issues/567)) ([17e62e8](https://togithub.com/googleapis/java-iam/commit/17e62e80f0ea8c2d4edfe6bb16ef5ee7acbc22f3)) - Update dependency com.google.auth:google-auth-library-oauth2-http to v1.14.0 ([#​571](https://togithub.com/googleapis/java-iam/issues/571)) ([9c48311](https://togithub.com/googleapis/java-iam/commit/9c48311fbac25f9c9545f3404a42cdadf8ebb243)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.0 ([#​565](https://togithub.com/googleapis/java-iam/issues/565)) ([32be2fb](https://togithub.com/googleapis/java-iam/commit/32be2fb0cfafa3681489c18e367cf12f22c567d3)) - Update dependency com.google.cloud:google-iam-policy to v1.6.22 ([#​560](https://togithub.com/googleapis/java-iam/issues/560)) ([de39d89](https://togithub.com/googleapis/java-iam/commit/de39d89c08c9e45bc977ea393570a8d01cf48af2)) - Update dependency com.google.protobuf:protobuf-bom to v3.21.12 ([#​563](https://togithub.com/googleapis/java-iam/issues/563)) ([607e260](https://togithub.com/googleapis/java-iam/commit/607e2601b71ff1fb51406e6c97dd79208296f404)) - Update dependency com.google.protobuf:protobuf-java to v3.21.12 ([#​564](https://togithub.com/googleapis/java-iam/issues/564)) ([4b2b26b](https://togithub.com/googleapis/java-iam/commit/4b2b26bd29d88ccb602a71225d6e2decb49b9649)) - Update dependency io.grpc:grpc-protobuf to v1.51.1 ([#​573](https://togithub.com/googleapis/java-iam/issues/573)) ([2143ec8](https://togithub.com/googleapis/java-iam/commit/2143ec8a90dbcdb128dffea9777fa9d183c3068e)) - Update dependency io.grpc:grpc-stub to v1.51.1 ([#​574](https://togithub.com/googleapis/java-iam/issues/574)) ([488496a](https://togithub.com/googleapis/java-iam/commit/488496aa09c9d976bf0c450fb8584f07e7c74c03))
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-core). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 67f5d3478b..62ed57bbb7 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ 2.20.1 2.3.1 2.11.0 - 1.6.22 + 1.6.23 1.14.0 2.1.1 1.42.3 From 4c0095daa0a17564c972434e4824c03b2204e3e0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 3 Jan 2023 15:48:18 +0100 Subject: [PATCH 10/21] deps: update dependency org.easymock:easymock to v5.1.0 (#1062) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.easymock:easymock](http://easymock.org) ([source](https://togithub.com/easymock/easymock)) | `5.0.1` -> `5.1.0` | [![age](https://badges.renovateapi.com/packages/maven/org.easymock:easymock/5.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.easymock:easymock/5.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.easymock:easymock/5.1.0/compatibility-slim/5.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.easymock:easymock/5.1.0/confidence-slim/5.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-core). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 62ed57bbb7..1d67f226cb 100644 --- a/pom.xml +++ b/pom.xml @@ -165,7 +165,7 @@ 31.1-jre 4.13.2 1.1.3 - 5.0.1 + 5.1.0 3.0.2 1.6.5 3.3 From e7159c28eb4882395cc351d3dbd29db74a75c271 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 3 Jan 2023 15:48:23 +0100 Subject: [PATCH 11/21] deps: update dependency com.google.errorprone:error_prone_annotations to v2.17.0 (#1061) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://togithub.com/google/error-prone)) | `2.16` -> `2.17.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.errorprone:error_prone_annotations/2.17.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.errorprone:error_prone_annotations/2.17.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.errorprone:error_prone_annotations/2.17.0/compatibility-slim/2.16)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.errorprone:error_prone_annotations/2.17.0/confidence-slim/2.16)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
google/error-prone ### [`v2.17.0`](https://togithub.com/google/error-prone/releases/tag/v2.17.0): Error Prone 2.17.0 [Compare Source](https://togithub.com/google/error-prone/compare/v2.16...v2.17.0) New Checkers: - [`AvoidObjectArrays`](https://errorprone.info/bugpattern/AvoidObjectArrays) - [`Finalize`](https://errorprone.info/bugpattern/Finalize) - [`IgnoredPureGetter`](https://errorprone.info/bugpattern/IgnoredPureGetter) - [`ImpossibleNullComparison`](https://errorprone.info/bugpattern/ProtoFieldNullComparison) - [`MathAbsoluteNegative`](https://errorprone.info/bugpattern/MathAbsoluteNegative) - [`NewFileSystem`](https://errorprone.info/bugpattern/NewFileSystem) - [`StatementSwitchToExpressionSwitch`](https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch) - [`UnqualifiedYield`](https://errorprone.info/bugpattern/UnqualifiedYield) Fixed issues: [#​2321](https://togithub.com/google/error-prone/issues/2321), [#​3144](https://togithub.com/google/error-prone/issues/3144), [#​3297](https://togithub.com/google/error-prone/issues/3297), [#​3428](https://togithub.com/google/error-prone/issues/3428), [#​3437](https://togithub.com/google/error-prone/issues/3437), [#​3462](https://togithub.com/google/error-prone/issues/3462), [#​3482](https://togithub.com/google/error-prone/issues/3482), [#​3494](https://togithub.com/google/error-prone/issues/3494) **Full Changelog**: https://togithub.com/google/error-prone/compare/v2.16...v2.17.0
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-core). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1d67f226cb..0afe7aa045 100644 --- a/pom.xml +++ b/pom.xml @@ -169,7 +169,7 @@ 3.0.2 1.6.5 3.3 - 2.16 + 2.17.0 2.10
From 12384628ab07b7edb04181c79ed07e742277e4c4 Mon Sep 17 00:00:00 2001 From: BenWhitehead Date: Tue, 3 Jan 2023 17:00:08 -0500 Subject: [PATCH 12/21] fix: make title and description of Condition Nullable (#1063) According to https://cloud.google.com/iam/docs/conditions-overview#syntax_overview both title and description are optional. Currently, AutoValue treats these fields as non-null which goes against the definition from the API. This change may be considered breaking by some criteria, however this class is annotated @BetaApi. --- .../main/java/com/google/cloud/Condition.java | 7 +++- .../java/com/google/cloud/ConditionTest.java | 40 +++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 google-cloud-core/src/test/java/com/google/cloud/ConditionTest.java diff --git a/google-cloud-core/src/main/java/com/google/cloud/Condition.java b/google-cloud-core/src/main/java/com/google/cloud/Condition.java index 3854883796..c3c4c83fb9 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/Condition.java +++ b/google-cloud-core/src/main/java/com/google/cloud/Condition.java @@ -18,6 +18,7 @@ import com.google.api.core.BetaApi; import com.google.auto.value.AutoValue; +import javax.annotation.Nullable; /** * Class for Identity and Access Management (IAM) policies. IAM policies are used to specify access @@ -32,9 +33,11 @@ @AutoValue public abstract class Condition { /** Get IAM Policy Binding Condition Title */ + @Nullable public abstract String getTitle(); /** Get IAM Policy Binding Condition Description */ + @Nullable public abstract String getDescription(); /** Get IAM Policy Binding Condition Expression */ @@ -51,10 +54,10 @@ public static Builder newBuilder() { @AutoValue.Builder public abstract static class Builder { /** Set IAM Policy Binding Condition Title */ - public abstract Builder setTitle(String title); + public abstract Builder setTitle(@Nullable String title); /** Set IAM Policy Binding Condition Description */ - public abstract Builder setDescription(String description); + public abstract Builder setDescription(@Nullable String description); /** Set IAM Policy Binding Condition Expression */ public abstract Builder setExpression(String expression); diff --git a/google-cloud-core/src/test/java/com/google/cloud/ConditionTest.java b/google-cloud-core/src/test/java/com/google/cloud/ConditionTest.java new file mode 100644 index 0000000000..67e0e6c2b5 --- /dev/null +++ b/google-cloud-core/src/test/java/com/google/cloud/ConditionTest.java @@ -0,0 +1,40 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud; + +import static com.google.common.truth.Truth.assertThat; + +import org.junit.Test; + +public final class ConditionTest { + + @Test + public void title_nullable() { + Condition condition = + Condition.newBuilder().setTitle(null).setDescription("desc").setExpression("expr").build(); + + assertThat(condition.getTitle()).isNull(); + } + + @Test + public void description_nullable() { + Condition condition = + Condition.newBuilder().setTitle("title").setDescription(null).setExpression("expr").build(); + + assertThat(condition.getDescription()).isNull(); + } +} From b4cc73c486c271e1eb42a18c3433de2917820194 Mon Sep 17 00:00:00 2001 From: Diego Alonso Marquez Palacios Date: Fri, 6 Jan 2023 12:02:04 -0500 Subject: [PATCH 13/21] chore: copy functionality from `io.grpc.internal.SharedResourceHolder` (#1065) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: copy functionality from io.grpc.internal.SharedResourceHolder Included related classes and test file. Tests were adapted to use an easymock mock * fix: remove grpc-core from deps * fix: add used undeclared dependency jsr305 * fix: add copy explanation comments, remove `@ThreadSafe` and related dependency * Update google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/LogExceptionRunnable.java Co-authored-by: Mike Eltsufin * Update google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/SharedResourceHolder.java Co-authored-by: Mike Eltsufin * πŸ¦‰ Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * πŸ¦‰ Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * πŸ¦‰ Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Mike Eltsufin Co-authored-by: Owl Bot --- google-cloud-core-grpc/pom.xml | 5 - .../cloud/grpc/GrpcTransportOptions.java | 6 +- .../cloud/grpc/LogExceptionRunnable.java | 58 ++++ .../cloud/grpc/SharedResourceHolder.java | 184 +++++++++++ .../cloud/grpc/SharedResourceHolderTest.java | 292 ++++++++++++++++++ 5 files changed, 536 insertions(+), 9 deletions(-) create mode 100644 google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/LogExceptionRunnable.java create mode 100644 google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/SharedResourceHolder.java create mode 100644 google-cloud-core-grpc/src/test/java/com/google/cloud/grpc/SharedResourceHolderTest.java diff --git a/google-cloud-core-grpc/pom.xml b/google-cloud-core-grpc/pom.xml index 77e2cd7abf..b926b0d425 100644 --- a/google-cloud-core-grpc/pom.xml +++ b/google-cloud-core-grpc/pom.xml @@ -47,15 +47,10 @@ io.grpc grpc-api - - io.grpc - grpc-core - com.google.http-client google-http-client - junit junit diff --git a/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/GrpcTransportOptions.java b/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/GrpcTransportOptions.java index 841cc8218b..4db83253a3 100644 --- a/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/GrpcTransportOptions.java +++ b/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/GrpcTransportOptions.java @@ -32,8 +32,6 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.TransportOptions; import com.google.common.util.concurrent.ThreadFactoryBuilder; -import io.grpc.internal.SharedResourceHolder; -import io.grpc.internal.SharedResourceHolder.Resource; import java.io.IOException; import java.io.ObjectInputStream; import java.util.Objects; @@ -51,8 +49,8 @@ public class GrpcTransportOptions implements TransportOptions { private transient ExecutorFactory executorFactory; /** Shared thread pool executor. */ - private static final Resource EXECUTOR = - new Resource() { + private static final SharedResourceHolder.Resource EXECUTOR = + new SharedResourceHolder.Resource() { @Override public ScheduledExecutorService create() { ScheduledThreadPoolExecutor service = diff --git a/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/LogExceptionRunnable.java b/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/LogExceptionRunnable.java new file mode 100644 index 0000000000..40fd6884c1 --- /dev/null +++ b/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/LogExceptionRunnable.java @@ -0,0 +1,58 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.grpc; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.common.base.Throwables; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * This class was copied from grpc-core to prevent dependence on an unstable API that may be subject + * to changes + * (https://github.com/grpc/grpc-java/blob/d07ecbe037d2705a1c9f4b6345581f860e505b56/core/src/main/java/io/grpc/internal/LogExceptionRunnable.java) + * + *

A simple wrapper for a {@link Runnable} that logs any exception thrown by it, before + * re-throwing it. + */ +final class LogExceptionRunnable implements Runnable { + + private static final Logger log = Logger.getLogger(LogExceptionRunnable.class.getName()); + + private final Runnable task; + + public LogExceptionRunnable(Runnable task) { + this.task = checkNotNull(task, "task"); + } + + @Override + public void run() { + try { + task.run(); + } catch (Throwable t) { + log.log(Level.SEVERE, "Exception while executing runnable " + task, t); + Throwables.throwIfUnchecked(t); + throw new AssertionError(t); + } + } + + @Override + public String toString() { + return "LogExceptionRunnable(" + task + ")"; + } +} diff --git a/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/SharedResourceHolder.java b/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/SharedResourceHolder.java new file mode 100644 index 0000000000..c8fc6a886b --- /dev/null +++ b/google-cloud-core-grpc/src/main/java/com/google/cloud/grpc/SharedResourceHolder.java @@ -0,0 +1,184 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.grpc; + +import com.google.common.base.Preconditions; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import java.util.IdentityHashMap; +import java.util.concurrent.*; + +/** + * This class was copied from grpc-core to prevent dependence on an unstable API that may be subject + * to changes + * (https://github.com/grpc/grpc-java/blob/d07ecbe037d2705a1c9f4b6345581f860e505b56/core/src/main/java/io/grpc/internal/SharedResourceHolder.java) + * + *

A holder for shared resource singletons. + * + *

Components like client channels and servers need certain resources, e.g. a thread pool, to + * run. If the user has not provided such resources, these components will use a default one, which + * is shared as a static resource. This class holds these default resources and manages their + * life-cycles. + * + *

A resource is identified by the reference of a {@link Resource} object, which is typically a + * singleton, provided to the get() and release() methods. Each Resource object (not its class) maps + * to an object cached in the holder. + * + *

Resources are ref-counted and shut down after a delay when the ref-count reaches zero. + */ +final class SharedResourceHolder { + static final long DESTROY_DELAY_SECONDS = 1; + + // The sole holder instance. + private static final SharedResourceHolder holder = + new SharedResourceHolder( + new ScheduledExecutorFactory() { + @Override + public ScheduledExecutorService createScheduledExecutor() { + return Executors.newSingleThreadScheduledExecutor( + getThreadFactory("grpc-shared-destroyer-%d", true)); + } + }); + + private final IdentityHashMap, Instance> instances = new IdentityHashMap<>(); + + private final ScheduledExecutorFactory destroyerFactory; + + private ScheduledExecutorService destroyer; + + // Visible to tests that would need to create instances of the holder. + SharedResourceHolder(ScheduledExecutorFactory destroyerFactory) { + this.destroyerFactory = destroyerFactory; + } + + private static ThreadFactory getThreadFactory(String nameFormat, boolean daemon) { + return new ThreadFactoryBuilder().setDaemon(daemon).setNameFormat(nameFormat).build(); + } + + /** + * Try to get an existing instance of the given resource. If an instance does not exist, create a + * new one with the given factory. + * + * @param resource the singleton object that identifies the requested static resource + */ + public static T get(Resource resource) { + return holder.getInternal(resource); + } + + /** + * Releases an instance of the given resource. + * + *

The instance must have been obtained from {@link #get(Resource)}. Otherwise will throw + * IllegalArgumentException. + * + *

Caller must not release a reference more than once. It's advisory that you clear the + * reference to the instance with the null returned by this method. + * + * @param resource the singleton Resource object that identifies the released static resource + * @param instance the released static resource + * @return a null which the caller can use to clear the reference to that instance. + */ + public static T release(final Resource resource, final T instance) { + return holder.releaseInternal(resource, instance); + } + + /** + * Visible to unit tests. + * + * @see #get(Resource) + */ + @SuppressWarnings("unchecked") + synchronized T getInternal(Resource resource) { + Instance instance = instances.get(resource); + if (instance == null) { + instance = new Instance(resource.create()); + instances.put(resource, instance); + } + if (instance.destroyTask != null) { + instance.destroyTask.cancel(false); + instance.destroyTask = null; + } + instance.refcount++; + return (T) instance.payload; + } + + /** Visible to unit tests. */ + synchronized T releaseInternal(final Resource resource, final T instance) { + final Instance cached = instances.get(resource); + if (cached == null) { + throw new IllegalArgumentException("No cached instance found for " + resource); + } + Preconditions.checkArgument(instance == cached.payload, "Releasing the wrong instance"); + Preconditions.checkState(cached.refcount > 0, "Refcount has already reached zero"); + cached.refcount--; + if (cached.refcount == 0) { + Preconditions.checkState(cached.destroyTask == null, "Destroy task already scheduled"); + // Schedule a delayed task to destroy the resource. + if (destroyer == null) { + destroyer = destroyerFactory.createScheduledExecutor(); + } + cached.destroyTask = + destroyer.schedule( + new LogExceptionRunnable( + new Runnable() { + @Override + public void run() { + synchronized (SharedResourceHolder.this) { + // Refcount may have gone up since the task was scheduled. Re-check it. + if (cached.refcount == 0) { + try { + resource.close(instance); + } finally { + instances.remove(resource); + if (instances.isEmpty()) { + destroyer.shutdown(); + destroyer = null; + } + } + } + } + } + }), + DESTROY_DELAY_SECONDS, + TimeUnit.SECONDS); + } + // Always returning null + return null; + } + + /** Defines a resource, and the way to create and destroy instances of it. */ + public interface Resource { + /** Create a new instance of the resource. */ + T create(); + + /** Destroy the given instance. */ + void close(T instance); + } + + interface ScheduledExecutorFactory { + ScheduledExecutorService createScheduledExecutor(); + } + + private static class Instance { + final Object payload; + int refcount; + ScheduledFuture destroyTask; + + Instance(Object payload) { + this.payload = payload; + } + } +} diff --git a/google-cloud-core-grpc/src/test/java/com/google/cloud/grpc/SharedResourceHolderTest.java b/google-cloud-core-grpc/src/test/java/com/google/cloud/grpc/SharedResourceHolderTest.java new file mode 100644 index 0000000000..ba70a0de55 --- /dev/null +++ b/google-cloud-core-grpc/src/test/java/com/google/cloud/grpc/SharedResourceHolderTest.java @@ -0,0 +1,292 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.grpc; + +import static org.easymock.EasyMock.*; +import static org.junit.Assert.*; + +import java.util.LinkedList; +import java.util.concurrent.Delayed; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import org.easymock.EasyMock; +import org.easymock.IAnswer; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** + * This class was copied from grpc-core to prevent dependence on an unstable API that may be subject + * to changes + * (https://github.com/grpc/grpc-java/blob/d07ecbe037d2705a1c9f4b6345581f860e505b56/core/src/test/java/io/grpc/internal/SharedResourceHolderTest.java) + * + *

Unit tests for {@link SharedResourceHolder}. + */ +@RunWith(JUnit4.class) +public class SharedResourceHolderTest { + + private final LinkedList> scheduledDestroyTasks = new LinkedList<>(); + + private SharedResourceHolder holder; + + private static class ResourceInstance { + volatile boolean closed; + } + + private static class ResourceFactory implements SharedResourceHolder.Resource { + @Override + public ResourceInstance create() { + return new ResourceInstance(); + } + + @Override + public void close(ResourceInstance instance) { + instance.closed = true; + } + } + + // Defines two kinds of resources + private static final SharedResourceHolder.Resource SHARED_FOO = + new ResourceFactory(); + private static final SharedResourceHolder.Resource SHARED_BAR = + new ResourceFactory(); + + @Before + public void setUp() { + holder = new SharedResourceHolder(new MockExecutorFactory()); + } + + @Test + public void destroyResourceWhenRefCountReachesZero() { + ResourceInstance foo1 = holder.getInternal(SHARED_FOO); + ResourceInstance sharedFoo = foo1; + ResourceInstance foo2 = holder.getInternal(SHARED_FOO); + assertSame(sharedFoo, foo2); + + ResourceInstance bar1 = holder.getInternal(SHARED_BAR); + ResourceInstance sharedBar = bar1; + + foo2 = holder.releaseInternal(SHARED_FOO, foo2); + // foo refcount not reached 0, thus shared foo is not closed + assertTrue(scheduledDestroyTasks.isEmpty()); + assertFalse(sharedFoo.closed); + assertNull(foo2); + + foo1 = holder.releaseInternal(SHARED_FOO, foo1); + assertNull(foo1); + + // foo refcount has reached 0, a destroying task is scheduled + assertEquals(1, scheduledDestroyTasks.size()); + MockScheduledFuture scheduledDestroyTask = scheduledDestroyTasks.poll(); + assertEquals( + SharedResourceHolder.DESTROY_DELAY_SECONDS, + scheduledDestroyTask.getDelay(TimeUnit.SECONDS)); + + // Simluate that the destroyer executes the foo destroying task + scheduledDestroyTask.runTask(); + assertTrue(sharedFoo.closed); + + // After the destroying, obtaining a foo will get a different instance + ResourceInstance foo3 = holder.getInternal(SHARED_FOO); + assertNotSame(sharedFoo, foo3); + + holder.releaseInternal(SHARED_BAR, bar1); + + // bar refcount has reached 0, a destroying task is scheduled + assertEquals(1, scheduledDestroyTasks.size()); + scheduledDestroyTask = scheduledDestroyTasks.poll(); + assertEquals( + SharedResourceHolder.DESTROY_DELAY_SECONDS, + scheduledDestroyTask.getDelay(TimeUnit.SECONDS)); + + // Simulate that the destroyer executes the bar destroying task + scheduledDestroyTask.runTask(); + assertTrue(sharedBar.closed); + } + + @Test + public void cancelDestroyTask() { + ResourceInstance foo1 = holder.getInternal(SHARED_FOO); + ResourceInstance sharedFoo = foo1; + holder.releaseInternal(SHARED_FOO, foo1); + // A destroying task for foo is scheduled + MockScheduledFuture scheduledDestroyTask = scheduledDestroyTasks.poll(); + assertFalse(scheduledDestroyTask.cancelled); + + // obtaining a foo before the destroying task is executed will cancel the destroy + ResourceInstance foo2 = holder.getInternal(SHARED_FOO); + assertTrue(scheduledDestroyTask.cancelled); + assertTrue(scheduledDestroyTasks.isEmpty()); + assertFalse(sharedFoo.closed); + + // And it will be the same foo instance + assertSame(sharedFoo, foo2); + + // Release it and the destroying task is scheduled again + holder.releaseInternal(SHARED_FOO, foo2); + scheduledDestroyTask = scheduledDestroyTasks.poll(); + assertNotNull(scheduledDestroyTask); + assertFalse(scheduledDestroyTask.cancelled); + scheduledDestroyTask.runTask(); + assertTrue(sharedFoo.closed); + } + + @Test + public void releaseWrongInstance() { + ResourceInstance uncached = new ResourceInstance(); + try { + holder.releaseInternal(SHARED_FOO, uncached); + fail("Should throw IllegalArgumentException"); + } catch (IllegalArgumentException e) { + // expected + } + ResourceInstance cached = holder.getInternal(SHARED_FOO); + try { + holder.releaseInternal(SHARED_FOO, uncached); + fail("Should throw IllegalArgumentException"); + } catch (IllegalArgumentException e) { + // expected + } + holder.releaseInternal(SHARED_FOO, cached); + } + + @Test + public void overreleaseInstance() { + ResourceInstance foo1 = holder.getInternal(SHARED_FOO); + holder.releaseInternal(SHARED_FOO, foo1); + try { + holder.releaseInternal(SHARED_FOO, foo1); + fail("Should throw IllegalStateException"); + } catch (IllegalStateException e) { + // expected + } + } + + @Test + public void handleInstanceCloseError() { + class ExceptionOnCloseResource implements SharedResourceHolder.Resource { + @Override + public ResourceInstance create() { + return new ResourceInstance(); + } + + @Override + public void close(ResourceInstance instance) { + throw new RuntimeException(); + } + } + + SharedResourceHolder.Resource resource = new ExceptionOnCloseResource(); + ResourceInstance instance = holder.getInternal(resource); + holder.releaseInternal(resource, instance); + MockScheduledFuture scheduledDestroyTask = scheduledDestroyTasks.poll(); + try { + scheduledDestroyTask.runTask(); + fail("Should throw RuntimeException"); + } catch (RuntimeException e) { + // expected + } + + // Future resource fetches should not get the partially-closed one. + assertNotSame(instance, holder.getInternal(resource)); + } + + private class MockExecutorFactory implements SharedResourceHolder.ScheduledExecutorFactory { + @Override + public ScheduledExecutorService createScheduledExecutor() { + ScheduledExecutorService mockExecutor = createNiceMock(ScheduledExecutorService.class); + expect(mockExecutor.schedule(anyObject(Runnable.class), anyLong(), anyObject(TimeUnit.class))) + .andAnswer( + new IAnswer() { + @Override + public ScheduledFuture answer() throws Throwable { + Object[] args = EasyMock.getCurrentArguments(); + Runnable command = (Runnable) args[0]; + long delay = (Long) args[1]; + TimeUnit unit = (TimeUnit) args[2]; + MockScheduledFuture future = + new MockScheduledFuture<>(command, delay, unit); + scheduledDestroyTasks.add(future); + return future; + } + }) + .anyTimes(); + replay(mockExecutor); + return mockExecutor; + } + } + + protected static class MockScheduledFuture implements java.util.concurrent.ScheduledFuture { + private boolean cancelled; + private boolean finished; + final Runnable command; + final long delay; + final TimeUnit unit; + + MockScheduledFuture(Runnable command, long delay, TimeUnit unit) { + this.command = command; + this.delay = delay; + this.unit = unit; + } + + void runTask() { + command.run(); + finished = true; + } + + @Override + public boolean cancel(boolean interrupt) { + if (cancelled || finished) { + return false; + } + cancelled = true; + return true; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public long getDelay(TimeUnit targetUnit) { + return targetUnit.convert(this.delay, this.unit); + } + + @Override + public int compareTo(Delayed o) { + throw new UnsupportedOperationException(); + } + + @Override + public boolean isDone() { + return cancelled || finished; + } + + @Override + public V get() { + throw new UnsupportedOperationException(); + } + + @Override + public V get(long timeout, TimeUnit unit) { + throw new UnsupportedOperationException(); + } + } +} From 083bc071f4529cd2a827cd4586e5c02690f4ffcd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 9 Jan 2023 16:17:00 +0000 Subject: [PATCH 14/21] deps: update dependency com.google.api:api-common to v2.4.0 (#1069) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0afe7aa045..c7b2e1ff67 100644 --- a/pom.xml +++ b/pom.xml @@ -152,7 +152,7 @@ github google-cloud-core-parent 2.20.1 - 2.3.1 + 2.4.0 2.11.0 1.6.23 1.14.0 From 6bf1c2414978340cb997acb18e98815e20028718 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 9 Jan 2023 16:25:35 +0000 Subject: [PATCH 15/21] deps: update dependency com.google.api-client:google-api-client-bom to v2.1.2 (#1064) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c7b2e1ff67..35e6fc0e31 100644 --- a/pom.xml +++ b/pom.xml @@ -156,7 +156,7 @@ 2.11.0 1.6.23 1.14.0 - 2.1.1 + 2.1.2 1.42.3 1.51.1 3.21.12 From a4b941e8daed4650bd019a7c03602cd617bdcad2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 9 Jan 2023 16:26:27 +0000 Subject: [PATCH 16/21] deps: update dependency com.google.code.gson:gson to v2.10.1 (#1066) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 35e6fc0e31..0b553e7936 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,7 @@ 1.6.5 3.3 2.17.0 - 2.10 + 2.10.1 From bfab3adbcefea538d50d567297eb491650ad19ba Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 9 Jan 2023 16:27:12 +0000 Subject: [PATCH 17/21] deps: update dependency com.google.api.grpc:proto-google-common-protos to v2.12.0 (#1067) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0b553e7936..782d66c834 100644 --- a/pom.xml +++ b/pom.xml @@ -153,7 +153,7 @@ google-cloud-core-parent 2.20.1 2.4.0 - 2.11.0 + 2.12.0 1.6.23 1.14.0 2.1.2 From 404f2220ea85253945f470a6370870cce248c11e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 9 Jan 2023 16:35:33 +0000 Subject: [PATCH 18/21] deps: update dependency com.google.api.grpc:proto-google-iam-v1 to v1.7.0 (#1068) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 782d66c834..335a33247c 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ 2.20.1 2.4.0 2.12.0 - 1.6.23 + 1.7.0 1.14.0 2.1.2 1.42.3 From e133832eb6e81089745e21d9b0188cb91af0a51b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 9 Jan 2023 17:24:06 +0000 Subject: [PATCH 19/21] deps: update dependency com.google.api:gax-bom to v2.21.0 (#1070) * deps: update dependency com.google.api:gax-bom to v2.21.0 * deps: Updating proto-google-common-protos to 2.12.0 Co-authored-by: Deepankar Dixit <90280028+ddixit14@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 335a33247c..420f21d64d 100644 --- a/pom.xml +++ b/pom.xml @@ -151,7 +151,7 @@ UTF-8 github google-cloud-core-parent - 2.20.1 + 2.21.0 2.4.0 2.12.0 1.7.0 From b85690fdcf0803502412bf5af418c17b43a718e7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 9 Jan 2023 19:11:59 +0000 Subject: [PATCH 20/21] deps: update dependency com.google.errorprone:error_prone_annotations to v2.18.0 (#1071) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 420f21d64d..071578c880 100644 --- a/pom.xml +++ b/pom.xml @@ -169,7 +169,7 @@ 3.0.2 1.6.5 3.3 - 2.17.0 + 2.18.0 2.10.1 From b9e8e13c036b00f1d13e263b1bb63a870810111f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:01:13 -0500 Subject: [PATCH 21/21] chore(main): release 2.9.1 (#1059) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ google-cloud-core-bom/pom.xml | 8 ++++---- google-cloud-core-grpc/pom.xml | 4 ++-- google-cloud-core-http/pom.xml | 4 ++-- google-cloud-core/pom.xml | 4 ++-- pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 43 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a85f144d9..72cdd9fa2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## [2.9.1](https://github.com/googleapis/java-core/compare/v2.9.0...v2.9.1) (2023-01-09) + + +### Bug Fixes + +* Make title and description of Condition Nullable ([#1063](https://github.com/googleapis/java-core/issues/1063)) ([1238462](https://github.com/googleapis/java-core/commit/12384628ab07b7edb04181c79ed07e742277e4c4)) + + +### Documentation + +* Update javadocs for ReadChannel to be more clear about the behavior ([#1050](https://github.com/googleapis/java-core/issues/1050)) ([8b574f6](https://github.com/googleapis/java-core/commit/8b574f66c6e77b31ec8d544319a116f5c19804b9)) + + +### Dependencies + +* Update dependency com.google.api-client:google-api-client-bom to v2.1.2 ([#1064](https://github.com/googleapis/java-core/issues/1064)) ([6bf1c24](https://github.com/googleapis/java-core/commit/6bf1c2414978340cb997acb18e98815e20028718)) +* Update dependency com.google.api:api-common to v2.3.1 ([#1053](https://github.com/googleapis/java-core/issues/1053)) ([43ce490](https://github.com/googleapis/java-core/commit/43ce49083ebdfada11732ff82aa407c69311f4c9)) +* Update dependency com.google.api:api-common to v2.4.0 ([#1069](https://github.com/googleapis/java-core/issues/1069)) ([083bc07](https://github.com/googleapis/java-core/commit/083bc071f4529cd2a827cd4586e5c02690f4ffcd)) +* Update dependency com.google.api:gax-bom to v2.21.0 ([#1070](https://github.com/googleapis/java-core/issues/1070)) ([e133832](https://github.com/googleapis/java-core/commit/e133832eb6e81089745e21d9b0188cb91af0a51b)) +* Update dependency com.google.api.grpc:proto-google-common-protos to v2.12.0 ([#1067](https://github.com/googleapis/java-core/issues/1067)) ([bfab3ad](https://github.com/googleapis/java-core/commit/bfab3adbcefea538d50d567297eb491650ad19ba)) +* Update dependency com.google.api.grpc:proto-google-iam-v1 to v1.6.23 ([#1060](https://github.com/googleapis/java-core/issues/1060)) ([a2e5c4e](https://github.com/googleapis/java-core/commit/a2e5c4eb35824ee019b0d0b8f984144f07d76c0a)) +* Update dependency com.google.api.grpc:proto-google-iam-v1 to v1.7.0 ([#1068](https://github.com/googleapis/java-core/issues/1068)) ([404f222](https://github.com/googleapis/java-core/commit/404f2220ea85253945f470a6370870cce248c11e)) +* Update dependency com.google.auth:google-auth-library-bom to v1.14.0 ([#1056](https://github.com/googleapis/java-core/issues/1056)) ([328628d](https://github.com/googleapis/java-core/commit/328628da55cea6d27c4fe4ed2aaa14bf2bc59a58)) +* Update dependency com.google.code.gson:gson to v2.10.1 ([#1066](https://github.com/googleapis/java-core/issues/1066)) ([a4b941e](https://github.com/googleapis/java-core/commit/a4b941e8daed4650bd019a7c03602cd617bdcad2)) +* Update dependency com.google.errorprone:error_prone_annotations to v2.17.0 ([#1061](https://github.com/googleapis/java-core/issues/1061)) ([e7159c2](https://github.com/googleapis/java-core/commit/e7159c28eb4882395cc351d3dbd29db74a75c271)) +* Update dependency com.google.errorprone:error_prone_annotations to v2.18.0 ([#1071](https://github.com/googleapis/java-core/issues/1071)) ([b85690f](https://github.com/googleapis/java-core/commit/b85690fdcf0803502412bf5af418c17b43a718e7)) +* Update dependency com.google.protobuf:protobuf-bom to v3.21.12 ([#1054](https://github.com/googleapis/java-core/issues/1054)) ([3fc149e](https://github.com/googleapis/java-core/commit/3fc149e28a8724b100717c0ddfb138338401fea9)) +* Update dependency io.grpc:grpc-bom to v1.51.1 ([#1058](https://github.com/googleapis/java-core/issues/1058)) ([d8ca14c](https://github.com/googleapis/java-core/commit/d8ca14cdb10d5af41396b40702a4abd7c9b5b15c)) +* Update dependency org.easymock:easymock to v5.1.0 ([#1062](https://github.com/googleapis/java-core/issues/1062)) ([4c0095d](https://github.com/googleapis/java-core/commit/4c0095daa0a17564c972434e4824c03b2204e3e0)) +* Update dependency org.threeten:threetenbp to v1.6.5 ([#1052](https://github.com/googleapis/java-core/issues/1052)) ([7e12b5d](https://github.com/googleapis/java-core/commit/7e12b5d137db97d95320416cd80e467bb300c499)) + ## [2.9.0](https://github.com/googleapis/java-core/compare/v2.8.28...v2.9.0) (2022-12-05) diff --git a/google-cloud-core-bom/pom.xml b/google-cloud-core-bom/pom.xml index a38324cd52..a3702f906b 100644 --- a/google-cloud-core-bom/pom.xml +++ b/google-cloud-core-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-bom - 2.9.1-SNAPSHOT + 2.9.1 pom com.google.cloud @@ -63,17 +63,17 @@ com.google.cloud google-cloud-core - 2.9.1-SNAPSHOT + 2.9.1 com.google.cloud google-cloud-core-grpc - 2.9.1-SNAPSHOT + 2.9.1 com.google.cloud google-cloud-core-http - 2.9.1-SNAPSHOT + 2.9.1 diff --git a/google-cloud-core-grpc/pom.xml b/google-cloud-core-grpc/pom.xml index b926b0d425..561b669fea 100644 --- a/google-cloud-core-grpc/pom.xml +++ b/google-cloud-core-grpc/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-grpc - 2.9.1-SNAPSHOT + 2.9.1 jar Google Cloud Core gRPC https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 2.9.1-SNAPSHOT + 2.9.1 google-cloud-core-grpc diff --git a/google-cloud-core-http/pom.xml b/google-cloud-core-http/pom.xml index 818afbab25..2d6ea31631 100644 --- a/google-cloud-core-http/pom.xml +++ b/google-cloud-core-http/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-http - 2.9.1-SNAPSHOT + 2.9.1 jar Google Cloud Core HTTP https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 2.9.1-SNAPSHOT + 2.9.1 google-cloud-core-http diff --git a/google-cloud-core/pom.xml b/google-cloud-core/pom.xml index 12f5a3bd70..0798324582 100644 --- a/google-cloud-core/pom.xml +++ b/google-cloud-core/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core - 2.9.1-SNAPSHOT + 2.9.1 jar Google Cloud Core https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 2.9.1-SNAPSHOT + 2.9.1 google-cloud-core diff --git a/pom.xml b/pom.xml index 071578c880..cea71fc54b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-core-parent pom - 2.9.1-SNAPSHOT + 2.9.1 Google Cloud Core Parent https://github.com/googleapis/java-core diff --git a/versions.txt b/versions.txt index 03e7d734c5..377fa07991 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-core:2.9.0:2.9.1-SNAPSHOT +google-cloud-core:2.9.1:2.9.1