From 08bdac77f91da9005c944c80c09d54f12a2adc7b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 19:40:11 +0000 Subject: [PATCH 1/9] chore(main): release 2.19.1-SNAPSHOT (#1909) :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). --- gapic-google-cloud-storage-v2/pom.xml | 4 ++-- google-cloud-storage-bom/pom.xml | 10 +++++----- google-cloud-storage/pom.xml | 4 ++-- grpc-google-cloud-storage-v2/pom.xml | 4 ++-- pom.xml | 10 +++++----- proto-google-cloud-storage-v2/pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 8 ++++---- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/gapic-google-cloud-storage-v2/pom.xml b/gapic-google-cloud-storage-v2/pom.xml index fc55e6fe8e..3ac7d3f95c 100644 --- a/gapic-google-cloud-storage-v2/pom.xml +++ b/gapic-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc gapic-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT gapic-google-cloud-storage-v2 GRPC library for gapic-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.19.0 + 2.19.1-SNAPSHOT diff --git a/google-cloud-storage-bom/pom.xml b/google-cloud-storage-bom/pom.xml index 1505352df3..4938b41831 100644 --- a/google-cloud-storage-bom/pom.xml +++ b/google-cloud-storage-bom/pom.xml @@ -19,7 +19,7 @@ 4.0.0 com.google.cloud google-cloud-storage-bom - 2.19.0 + 2.19.1-SNAPSHOT pom com.google.cloud @@ -69,22 +69,22 @@ com.google.cloud google-cloud-storage - 2.19.0 + 2.19.1-SNAPSHOT com.google.api.grpc gapic-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT com.google.api.grpc grpc-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT com.google.api.grpc proto-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index 85711efe46..f31e4b0f89 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-storage - 2.19.0 + 2.19.1-SNAPSHOT jar Google Cloud Storage https://github.com/googleapis/java-storage @@ -12,7 +12,7 @@ com.google.cloud google-cloud-storage-parent - 2.19.0 + 2.19.1-SNAPSHOT google-cloud-storage diff --git a/grpc-google-cloud-storage-v2/pom.xml b/grpc-google-cloud-storage-v2/pom.xml index 8b57b3a205..0b1c0a83a8 100644 --- a/grpc-google-cloud-storage-v2/pom.xml +++ b/grpc-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT grpc-google-cloud-storage-v2 GRPC library for grpc-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.19.0 + 2.19.1-SNAPSHOT diff --git a/pom.xml b/pom.xml index 6dacccc441..668934f2d0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-storage-parent pom - 2.19.0 + 2.19.1-SNAPSHOT Storage Parent https://github.com/googleapis/java-storage @@ -70,7 +70,7 @@ com.google.cloud google-cloud-storage - 2.19.0 + 2.19.1-SNAPSHOT com.google.apis @@ -111,17 +111,17 @@ com.google.api.grpc proto-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT com.google.api.grpc grpc-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT com.google.api.grpc gapic-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT com.google.cloud diff --git a/proto-google-cloud-storage-v2/pom.xml b/proto-google-cloud-storage-v2/pom.xml index 280ea5168c..bb14d85474 100644 --- a/proto-google-cloud-storage-v2/pom.xml +++ b/proto-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-storage-v2 - 2.19.0-alpha + 2.19.1-alpha-SNAPSHOT proto-google-cloud-storage-v2 PROTO library for proto-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.19.0 + 2.19.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3c54d5f8c6..da0d51f08f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-storage - 2.19.0 + 2.19.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index e7532a00ca..c879991aaf 100644 --- a/versions.txt +++ b/versions.txt @@ -1,7 +1,7 @@ # Format: # module:released-version:current-version -google-cloud-storage:2.19.0:2.19.0 -gapic-google-cloud-storage-v2:2.19.0-alpha:2.19.0-alpha -grpc-google-cloud-storage-v2:2.19.0-alpha:2.19.0-alpha -proto-google-cloud-storage-v2:2.19.0-alpha:2.19.0-alpha +google-cloud-storage:2.19.0:2.19.1-SNAPSHOT +gapic-google-cloud-storage-v2:2.19.0-alpha:2.19.1-alpha-SNAPSHOT +grpc-google-cloud-storage-v2:2.19.0-alpha:2.19.1-alpha-SNAPSHOT +proto-google-cloud-storage-v2:2.19.0-alpha:2.19.1-alpha-SNAPSHOT From baa7d198be2b0f249777c588ce646c670785c5b2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Feb 2023 19:59:03 +0000 Subject: [PATCH 2/9] chore(deps): update dependency com.google.cloud:google-cloud-storage to v2.19.0 (#1910) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-storage to v2.19.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index df1385830e..618d86adf8 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-storage - 2.18.0 + 2.19.0 ``` @@ -56,13 +56,13 @@ implementation 'com.google.cloud:google-cloud-storage' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-storage:2.18.0' +implementation 'com.google.cloud:google-cloud-storage:2.19.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-storage" % "2.18.0" +libraryDependencies += "com.google.cloud" % "google-cloud-storage" % "2.19.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fc1445db25..17f5542eef 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud google-cloud-storage - 2.18.0 + 2.19.0 From dda8aaa80735593dcc4d759418368f3c678f1cf9 Mon Sep 17 00:00:00 2001 From: BenWhitehead Date: Tue, 21 Feb 2023 18:19:17 -0500 Subject: [PATCH 3/9] test: add new StorageNativeCanaryTest (#1872) Update native-image related config to be specific for this class. Update maven config to explicitly configure this new class as its only class for test when run under -Pnative --- google-cloud-storage/pom.xml | 10 + .../cloud/storage/it/StorageNativeCanary.java | 182 ++++++++++++++++++ .../cloud/storage/native-image.properties | 27 +-- .../google/cloud/storage/reflect-config.json | 5 - 4 files changed, 193 insertions(+), 31 deletions(-) create mode 100644 google-cloud-storage/src/test/java/com/google/cloud/storage/it/StorageNativeCanary.java diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index f31e4b0f89..8f3a52fc71 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -340,5 +340,15 @@ + + native + + + com.google.cloud.storage.it.StorageNativeCanary + + diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/StorageNativeCanary.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/StorageNativeCanary.java new file mode 100644 index 0000000000..534764d9b1 --- /dev/null +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/StorageNativeCanary.java @@ -0,0 +1,182 @@ +/* + * 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.storage.it; + +import static com.google.cloud.storage.TestUtils.assertAll; +import static com.google.common.truth.Truth.assertThat; + +import com.google.api.gax.paging.Page; +import com.google.cloud.ReadChannel; +import com.google.cloud.WriteChannel; +import com.google.cloud.storage.Blob; +import com.google.cloud.storage.BlobId; +import com.google.cloud.storage.BlobInfo; +import com.google.cloud.storage.BucketInfo; +import com.google.cloud.storage.DataGenerator; +import com.google.cloud.storage.Storage; +import com.google.cloud.storage.Storage.BlobListOption; +import com.google.cloud.storage.Storage.BlobSourceOption; +import com.google.cloud.storage.Storage.BlobWriteOption; +import com.google.cloud.storage.StorageOptions; +import com.google.common.collect.ImmutableList; +import com.google.common.io.ByteStreams; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.channels.Channels; +import java.nio.channels.WritableByteChannel; +import java.util.List; +import java.util.UUID; +import org.junit.Test; + +// Intentionally avoid StorageITRunner here. It touches lots of code at a semi-static level making +// native-test have a hard time. +public final class StorageNativeCanary { + + private static final int _256KiB = 256 * 1024; + private static final byte[] bytes = DataGenerator.base64Characters().genBytes(512 * 1024); + + @Test + public void canary_happyPath_http() throws Exception { + assertBehaviorOfPrimaryStorageActions(StorageOptions.http().build().getService()); + } + + @Test + public void canary_happyPath_grpc() throws Exception { + assertBehaviorOfPrimaryStorageActions(StorageOptions.grpc().build().getService()); + } + + /** + * When testing on Native Image, we're primarily wanting to verify the primary code paths are + * properly detected by the native image compiler. + * + *

For Storage, we have a few "primary code paths" we want to ensure are validated: + * + *

+ * + * To validate this, our happy path test is as follows: + * + * + */ + private static void assertBehaviorOfPrimaryStorageActions(Storage storage) throws Exception { + // create a temporary bucket + try (TemporaryBucket temporaryBucket = + TemporaryBucket.newBuilder() + .setStorage(storage) + .setBucketInfo(BucketInfo.of("java-storage-grpc-" + UUID.randomUUID())) + .build()) { + String bucketName = temporaryBucket.getBucket().getName(); + String obj1Name = UUID.randomUUID().toString(); + String obj2Name = UUID.randomUUID().toString(); + + // insert 2 objects + BlobInfo info1 = BlobInfo.newBuilder(bucketName, obj1Name).build(); + BlobInfo info2 = BlobInfo.newBuilder(bucketName, obj2Name).build(); + uploadUsingWriter(storage, info1); + uploadUsingWriter(storage, info2); + + // list objects + Page page = storage.list(bucketName, BlobListOption.pageSize(1)); + List blobs = ImmutableList.copyOf(page.iterateAll()); + + // read all bytes of each object + List actual = + blobs.stream() + .map(info -> readAll(storage, info)) + .collect(ImmutableList.toImmutableList()); + + List deletes = + blobs.stream() + .map(b -> storage.delete(b.getBlobId(), BlobSourceOption.generationMatch())) + .collect(ImmutableList.toImmutableList()); + + assertAll( + () -> { + List actualNames = + actual.stream() + .map(BlobWithContent::getInfo) + .map(BlobInfo::getBlobId) + .map(BlobId::getName) + .collect(ImmutableList.toImmutableList()); + + assertThat(actualNames).containsExactly(info1.getName(), info2.getName()); + }, + () -> assertThat(actual.get(0).getContent()).isEqualTo(bytes), + () -> assertThat(actual.get(1).getContent()).isEqualTo(bytes), + () -> assertThat(deletes.get(0)).isTrue(), + () -> assertThat(deletes.get(1)).isTrue()); + } + } + + private static void uploadUsingWriter(Storage storage, BlobInfo info) throws IOException { + try (WriteChannel writeChannel = storage.writer(info, BlobWriteOption.doesNotExist())) { + // set our size to the smallest resumable size, so we can send multiple requests + writeChannel.setChunkSize(_256KiB); + ByteStreams.copy(Channels.newChannel(new ByteArrayInputStream(bytes)), writeChannel); + } + } + + private static BlobWithContent readAll(Storage storage, BlobInfo info) { + try (ReadChannel readChannel = + storage.reader(info.getBlobId(), BlobSourceOption.generationMatch()); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + WritableByteChannel writeChannel = Channels.newChannel(outputStream)) { + // only buffer up to half the object + readChannel.setChunkSize(_256KiB); + ByteStreams.copy(readChannel, writeChannel); + return new BlobWithContent(info, outputStream.toByteArray()); + } catch (IOException e) { + throw new RuntimeIOException(e); + } + } + + private static final class BlobWithContent { + private final BlobInfo info; + private final byte[] content; + + private BlobWithContent(BlobInfo info, byte[] content) { + this.info = info; + this.content = content; + } + + public BlobInfo getInfo() { + return info; + } + + public byte[] getContent() { + return content; + } + } + + private static final class RuntimeIOException extends RuntimeException { + private RuntimeIOException(IOException cause) { + super(cause); + } + } +} diff --git a/google-cloud-storage/src/test/resources/META-INF/native-image/com/google/cloud/storage/native-image.properties b/google-cloud-storage/src/test/resources/META-INF/native-image/com/google/cloud/storage/native-image.properties index 0bb3e83ecc..dd22e6513f 100644 --- a/google-cloud-storage/src/test/resources/META-INF/native-image/com/google/cloud/storage/native-image.properties +++ b/google-cloud-storage/src/test/resources/META-INF/native-image/com/google/cloud/storage/native-image.properties @@ -5,29 +5,4 @@ # build time. Initializing these classes explicitly at build time results in a # successful build. Args = \ - --initialize-at-build-time=com.google.cloud.conformance.storage.v1,\ - com.google.protobuf,\ - com.google.auth.oauth2,\ - com.google.cloud.storage.conformance.retry,\ - com.google.common.base.Charsets,\ - com.google.gson.stream.JsonReader,\ - com.google.api.client.util,\ - com.google.api.client.http.javanet.NetHttpTransport,\ - com.google.api.client.http.HttpTransport,\ - com.google.api.client.json.JsonParser$1,\ - com.google.api.client.json.gson.GsonParser$1,\ - com.google.common.io.BaseEncoding,\ - com.google.common.math.IntMath$1,\ - com.google.common.collect.Platform,\ - com.google.gson.Gson,\ - com.google.common.truth,\ - com.google.common.collect,\ - com.google.gson.internal.reflect,\ - com.google.gson.internal.bind,\ - com.google.gson.internal,\ - com.google.gson.internal.sql.SqlTypesSupport,\ - com.google.gson.FieldNamingPolicy$3,\ - com.google.gson.LongSerializationPolicy$2,\ - net.jqwik - - + --initialize-at-build-time=net.jqwik diff --git a/google-cloud-storage/src/test/resources/META-INF/native-image/com/google/cloud/storage/reflect-config.json b/google-cloud-storage/src/test/resources/META-INF/native-image/com/google/cloud/storage/reflect-config.json index 06d0837d78..3076bc85fe 100644 --- a/google-cloud-storage/src/test/resources/META-INF/native-image/com/google/cloud/storage/reflect-config.json +++ b/google-cloud-storage/src/test/resources/META-INF/native-image/com/google/cloud/storage/reflect-config.json @@ -14,9 +14,4 @@ "allDeclaredFields":true, "allDeclaredMethods":true, "methods":[{"name":"","parameterTypes":[] }]} -, -{ - "name":"com.google.cloud.storage.conformance.retry.TestBench$RetryTestResource", - "allDeclaredFields":true, - "methods":[{"name":"","parameterTypes":[] }]} ] From dd7122234b0ffc01a426cadce981ef6ba27e031a Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 22 Feb 2023 11:11:33 -0500 Subject: [PATCH 4/9] build(deps): update releasetool version for release scripts (#1768) (#1911) This should fix release script reporting back to the release PRs Source-Link: https://github.com/googleapis/synthtool/commit/4c15ec0960687db8e6da43535fa1ee0e92fbb817 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:e62f3ea524b11c1cd6ff7f80362736d86c0056631346b5b106a421686fce2726 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 2 +- .kokoro/requirements.txt | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 090264303f..a5361a30a3 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:5ee35ee919254a3d1e7d4f8abbf1b8c8869ade317ceb2e4df709af1b4b3e9ca1 + digest: sha256:e62f3ea524b11c1cd6ff7f80362736d86c0056631346b5b106a421686fce2726 diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index b19a8dbfdd..2092cc741d 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -1,5 +1,5 @@ gcp-docuploader -gcp-releasetool +gcp-releasetool>=1.10.5 # required for compatibility with cryptography>=39.x wheel setuptools typing-extensions diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index cfadd22ce9..c80f0a87cc 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.9 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # pip-compile --allow-unsafe --generate-hashes requirements.in @@ -126,9 +126,9 @@ gcp-docuploader==0.6.4 \ --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in -gcp-releasetool==1.9.1 \ - --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ - --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b +gcp-releasetool==1.10.5 \ + --hash=sha256:174b7b102d704b254f2a26a3eda2c684fd3543320ec239baf771542a2e58e109 \ + --hash=sha256:e29d29927fe2ca493105a82958c6873bb2b90d503acac56be2c229e74de0eec9 # via -r requirements.in google-api-core==2.8.2 \ --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ @@ -374,6 +374,10 @@ secretstorage==3.3.3 \ --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 # via keyring +setuptools==67.3.2 \ + --hash=sha256:95f00380ef2ffa41d9bba85d95b27689d923c93dfbafed4aecd7cf988a25e012 \ + --hash=sha256:bb6d8e508de562768f2027902929f8523932fcd1fb784e6d573d2cafac995a48 + # via -r requirements.in six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 From 69eaaf0321d61a3b0c5faede445390e80e949821 Mon Sep 17 00:00:00 2001 From: BenWhitehead Date: Mon, 27 Feb 2023 19:21:44 -0500 Subject: [PATCH 5/9] chore: ignore Update related gRPC tests which are failing due to b/270215524 (#1917) When b/270215524 is fixed and rolled out we should be able to revert this --- .../java/com/google/cloud/storage/it/ITAccessTest.java | 4 ++++ .../cloud/storage/it/ITBucketLifecycleRulesTest.java | 2 ++ .../com/google/cloud/storage/it/ITBucketLifecycleTest.java | 1 + .../java/com/google/cloud/storage/it/ITBucketTest.java | 5 +++++ .../test/java/com/google/cloud/storage/it/ITKmsTest.java | 2 ++ .../google/cloud/storage/it/ITNestedUpdateMaskTest.java | 2 ++ .../java/com/google/cloud/storage/it/ITObjectTest.java | 7 +++++++ 7 files changed, 23 insertions(+) diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITAccessTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITAccessTest.java index ab09709fcc..776aaa9dbd 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITAccessTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITAccessTest.java @@ -345,6 +345,7 @@ private void doTestUniformBucketLevelAccessAclImpact(IamConfiguration iamConfigu } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testEnableAndDisableUniformBucketLevelAccessOnExistingBucket() throws Exception { String bpoBucket = generator.randomBucketName(); BucketInfo.IamConfiguration ublaDisabledIamConfiguration = @@ -492,6 +493,7 @@ public void testUnspecifiedPublicAccessPreventionOnBucket() throws Exception { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void changingPAPDoesNotAffectUBLA() throws Exception { String bucketName = generator.randomBucketName(); try (TemporaryBucket tempB = @@ -534,6 +536,7 @@ public void changingPAPDoesNotAffectUBLA() throws Exception { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void changingUBLADoesNotAffectPAP() throws Exception { String bucketName = generator.randomBucketName(); try (TemporaryBucket tempB = @@ -615,6 +618,7 @@ public void testRetentionPolicyNoLock() throws Exception { @Test @SuppressWarnings({"unchecked", "deprecation"}) + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testEnableAndDisableBucketPolicyOnlyOnExistingBucket() throws Exception { String bpoBucket = generator.randomBucketName(); try (TemporaryBucket tempB = diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketLifecycleRulesTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketLifecycleRulesTest.java index d7f14d8282..6c0ff8f727 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketLifecycleRulesTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketLifecycleRulesTest.java @@ -47,6 +47,7 @@ public final class ITBucketLifecycleRulesTest { @Inject public Storage storage; @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void deleteRule_addingALabelToABucketWithASingleDeleteRuleOnlyModifiesTheLabels() throws Exception { LifecycleRule d1 = @@ -89,6 +90,7 @@ public void condition_ageDays_0_shouldWork() throws Exception { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void deleteRule_modifyingLifecycleRulesMatchesLastOperation() throws Exception { BucketInfo info; { diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketLifecycleTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketLifecycleTest.java index 7ffbbbf156..0248753963 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketLifecycleTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketLifecycleTest.java @@ -126,6 +126,7 @@ public void testGetBucketAbortMPULifecycle() throws Exception { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testDeleteLifecycleRules() throws Exception { String bucketName = generator.randomBucketName(); BucketInfo bucketInfo = diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketTest.java index 616aee62a3..ad12ed5484 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBucketTest.java @@ -148,6 +148,7 @@ public void testBucketCustomPlacmentConfigDualRegion() throws Exception { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testBucketLogging() throws Exception { String logsBucketName = generator.randomBucketName(); String loggingBucketName = generator.randomBucketName(); @@ -189,6 +190,7 @@ public void testBucketLogging() throws Exception { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testRemoveBucketCORS() { String bucketName = generator.randomBucketName(); List origins = ImmutableList.of(Cors.Origin.of("http://cloud.google.com")); @@ -237,6 +239,7 @@ public void testRemoveBucketCORS() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testRpoConfig() { String rpoBucket = generator.randomBucketName(); try { @@ -259,6 +262,7 @@ public void testRetentionPolicyLock() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testRetentionPolicyLockRequesterPays() { retentionPolicyLockRequesterPays(true); } @@ -386,6 +390,7 @@ public void testEnableDisableBucketDefaultEventBasedHold() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testCreateBucketWithAutoclass() { String bucketName = generator.randomBucketName(); storage.create( diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITKmsTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITKmsTest.java index f187a436bc..48f0304150 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITKmsTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITKmsTest.java @@ -69,6 +69,7 @@ public class ITKmsTest { @Inject public KmsFixture kms; @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testClearBucketDefaultKmsKeyName() { String bucketName = generator.randomBucketName(); Bucket remoteBucket = @@ -87,6 +88,7 @@ public void testClearBucketDefaultKmsKeyName() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testUpdateBucketDefaultKmsKeyName() { String bucketName = generator.randomBucketName(); Bucket remoteBucket = diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITNestedUpdateMaskTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITNestedUpdateMaskTest.java index 8e3b944d99..04a767ae6a 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITNestedUpdateMaskTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITNestedUpdateMaskTest.java @@ -113,6 +113,7 @@ public ImmutableList parameters() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testBucketLabels() throws Exception { BucketInfo bucket = newBucketInfo(param.initial); try (TemporaryBucket tempB = @@ -125,6 +126,7 @@ public void testBucketLabels() throws Exception { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testBlobMetadata() { BlobInfo blob = newBlobInfo(param.initial); Blob gen1 = storage.create(blob, BlobTargetOption.doesNotExist()); diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITObjectTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITObjectTest.java index f2afbb2db8..b210427028 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITObjectTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITObjectTest.java @@ -571,6 +571,7 @@ public void testListBlobsMultiplePages() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testUpdateBlob() { String blobName = "test-update-blob"; BlobInfo blob = BlobInfo.newBuilder(bucket, blobName).build(); @@ -584,6 +585,7 @@ public void testUpdateBlob() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testUpdateBlobReplaceMetadata() { String blobName = "test-update-blob-replace-metadata"; ImmutableMap metadata = ImmutableMap.of("k1", "a"); @@ -605,6 +607,7 @@ public void testUpdateBlobReplaceMetadata() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testUpdateBlobMergeMetadata() { String blobName = "test-update-blob-merge-metadata"; ImmutableMap metadata = ImmutableMap.of("k1", "a"); @@ -625,6 +628,7 @@ public void testUpdateBlobMergeMetadata() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testUpdateBlobUnsetMetadata() { String blobName = "test-update-blob-unset-metadata"; @@ -1260,6 +1264,7 @@ public void testEnableDisableTemporaryHold() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testAttemptObjectDeleteWithEventBasedHold() { String blobName = generator.randomObjectName(); BlobInfo blobInfo = BlobInfo.newBuilder(bucket, blobName).setEventBasedHold(true).build(); @@ -1276,6 +1281,7 @@ public void testAttemptObjectDeleteWithEventBasedHold() { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testAttemptDeletionObjectTemporaryHold() { String blobName = generator.randomObjectName(); BlobInfo blobInfo = BlobInfo.newBuilder(bucket, blobName).setTemporaryHold(true).build(); @@ -1404,6 +1410,7 @@ public void testAutoContentTypeWriter() throws IOException { } @Test + @CrossRun.Ignore(transports = Transport.GRPC) // todo(b/270215524) public void testBlobTimeStorageClassUpdated() { String blobName = generator.randomObjectName(); From 5eddf0465d17af8db8ed6d194f99e53386c69b34 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Feb 2023 14:46:01 +0000 Subject: [PATCH 6/9] chore(deps): update dependency com.google.cloud:libraries-bom to v26.9.0 (#1914) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.9.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 618d86adf8..be5103dc34 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: com.google.cloud libraries-bom - 26.8.0 + 26.9.0 pom import @@ -49,7 +49,7 @@ If you are using Maven without 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.8.0') +implementation platform('com.google.cloud:libraries-bom:26.9.0') implementation 'com.google.cloud:google-cloud-storage' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 4359633399..64da8eb736 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -29,7 +29,7 @@ com.google.cloud libraries-bom - 26.8.0 + 26.9.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index bf9fa2f67a..fbee8c67a1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -31,7 +31,7 @@ com.google.cloud libraries-bom - 26.8.0 + 26.9.0 pom import From b4cdb374f2c9808b65cb244e5333720547378ddc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Feb 2023 17:19:57 +0000 Subject: [PATCH 7/9] test(deps): update cross product test dependencies (#1913) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update cross product test dependencies * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- google-cloud-storage/pom.xml | 2 +- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index 8f3a52fc71..e56545d9b5 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -16,7 +16,7 @@ google-cloud-storage - 1.105.2 + 1.105.4 5.9.2 diff --git a/pom.xml b/pom.xml index 668934f2d0..ab909ea948 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ com.google.cloud google-cloud-pubsub - 1.123.2 + 1.123.4 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 17f5542eef..ce26e7f675 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-pubsub - 1.123.2 + 1.123.4 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 64da8eb736..7405fb48ea 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-pubsub - 1.123.2 + 1.123.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index da0d51f08f..bec5ea7938 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -52,7 +52,7 @@ com.google.cloud google-cloud-pubsub - 1.123.2 + 1.123.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index fbee8c67a1..9bfef478c8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-pubsub - 1.123.2 + 1.123.4 test From 6df546945211a767f73190773ab2754bf7842e75 Mon Sep 17 00:00:00 2001 From: BenWhitehead Date: Wed, 1 Mar 2023 13:07:50 -0500 Subject: [PATCH 8/9] feat: allow specifying a negative offset to ReadChannel (#1916) GCS Supports negative offsets in ranged reads and is documented in https://cloud.google.com/storage/docs/json_api/v1/parameters#range Update the ReadChannel returned from Storage.reader to allow providing a negative value to `seek`. NOTE: `seek` to a negative offset will be ignored by GCS if `limit` is also specified --- .../cloud/storage/BaseStorageReadChannel.java | 4 +++- .../google/cloud/storage/ByteRangeSpec.java | 4 +++- .../GapicUnbufferedReadableByteChannel.java | 1 - .../cloud/storage/StorageReadChannel.java | 1 - .../cloud/storage/ByteRangeSpecTest.java | 14 +++++++++++++ .../storage/it/ITBlobReadChannelTest.java | 21 +++++++++++++++++++ 6 files changed, 41 insertions(+), 4 deletions(-) diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/BaseStorageReadChannel.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/BaseStorageReadChannel.java index 77a010752f..60ab4990d4 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/BaseStorageReadChannel.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/BaseStorageReadChannel.java @@ -88,7 +88,9 @@ public final synchronized int read(ByteBuffer dst) throws IOException { throw new ClosedChannelException(); } long diff = byteRangeSpec.length(); - if (diff <= 0) { + // the check on beginOffset >= 0 used to be a precondition on seek(long) + // move it here to preserve existing behavior while allowing new negative offsets + if (diff <= 0 && byteRangeSpec.beginOffset() >= 0) { return -1; } try { diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/ByteRangeSpec.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/ByteRangeSpec.java index 3b501eee48..96929b30a0 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/ByteRangeSpec.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/ByteRangeSpec.java @@ -472,6 +472,8 @@ public ReadObjectRequest.Builder seekReadObjectRequest(ReadObjectRequest.Builder protected String fmtAsHttpRangeHeader() throws ArithmeticException { if (beginOffset > 0) { return String.format("bytes=%d-", beginOffset); + } else if (beginOffset < 0) { + return String.format("bytes=%d", beginOffset); } else { return null; } @@ -510,7 +512,7 @@ long length() throws ArithmeticException { @Override ByteRangeSpec withNewBeginOffset(long beginOffset) { - if (beginOffset > 0) { + if (beginOffset != 0) { return new LeftClosedByteRangeSpec(beginOffset); } else { return this; diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/GapicUnbufferedReadableByteChannel.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/GapicUnbufferedReadableByteChannel.java index feb7d45ccc..4b19c3f998 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/GapicUnbufferedReadableByteChannel.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/GapicUnbufferedReadableByteChannel.java @@ -173,7 +173,6 @@ private static final class ReadCursor { private final long limit; private ReadCursor(long beginning, long limit) { - checkArgument(0 <= beginning && beginning <= limit, "0 <= %d <= %d", beginning, limit); this.limit = limit; this.beginning = beginning; this.offset = beginning; diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageReadChannel.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageReadChannel.java index 18539da4d2..40630ad937 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageReadChannel.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageReadChannel.java @@ -41,7 +41,6 @@ default ByteRangeSpec getByteRangeSpec() { @SuppressWarnings("resource") @Override default void seek(long position) throws IOException { - checkArgument(position >= 0, "position must be >= 0"); try { setByteRangeSpec(getByteRangeSpec().withNewBeginOffset(position)); } catch (StorageException e) { diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/ByteRangeSpecTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/ByteRangeSpecTest.java index dce7190d1a..abb5a9536b 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/ByteRangeSpecTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/ByteRangeSpecTest.java @@ -45,6 +45,20 @@ public final class ByteRangeSpecTest { public static final class Behavior { + @Test + public void negativeBeginOffset() throws Exception { + ByteRangeSpec rel = ByteRangeSpec.relativeLength(-5L, null); + ByteRangeSpec exO = ByteRangeSpec.explicit(-5L, null); + ByteRangeSpec exC = ByteRangeSpec.explicitClosed(-5L, null); + threeWayEqual(exO, exC, rel); + } + + @Test + public void negativeBeginOffset_fromNull() { + ByteRangeSpec spec = ByteRangeSpec.nullRange().withNewBeginOffset(-5L); + assertThat(spec.getHttpRangeHeader()).isEqualTo("bytes=-5"); + } + @Test public void beginNonNullZero_endNonNullNonInfinity() throws Exception { ByteRangeSpec rel = ByteRangeSpec.relativeLength(0L, 52L); diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBlobReadChannelTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBlobReadChannelTest.java index ebbff00f41..bf4427096a 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBlobReadChannelTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITBlobReadChannelTest.java @@ -459,6 +459,27 @@ public void readingLastByteReturnsOneByte_seekOnly() throws IOException { } } + @Test + public void readingLastByteReturnsOneByte_seekOnly_negativeOffset() throws IOException { + int length = 10; + byte[] bytes = DataGenerator.base64Characters().genBytes(length); + + BlobInfo info1 = BlobInfo.newBuilder(bucket, generator.randomObjectName()).build(); + Blob gen1 = storage.create(info1, bytes, BlobTargetOption.doesNotExist()); + + byte[] expected1 = Arrays.copyOfRange(bytes, 9, 10); + String xxdExpected1 = xxd(expected1); + try (ReadChannel reader = storage.reader(gen1.getBlobId()); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + WritableByteChannel writer = Channels.newChannel(baos)) { + reader.seek(-1); + ByteStreams.copy(reader, writer); + byte[] bytes1 = baos.toByteArray(); + String xxd1 = xxd(bytes1); + assertThat(xxd1).isEqualTo(xxdExpected1); + } + } + @Test public void readingLastByteReturnsOneByte_seekAndLimit() throws IOException { int length = 10; From e652c8a57158d942e894ae137dfbfc64a39a8416 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 13:38:11 -0800 Subject: [PATCH 9/9] chore(main): release 2.20.0 (#1918) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ gapic-google-cloud-storage-v2/pom.xml | 4 ++-- google-cloud-storage-bom/pom.xml | 10 +++++----- google-cloud-storage/pom.xml | 4 ++-- grpc-google-cloud-storage-v2/pom.xml | 4 ++-- pom.xml | 10 +++++----- proto-google-cloud-storage-v2/pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 8 ++++---- 9 files changed, 30 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 541a101ca8..1579564da1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.20.0](https://github.com/googleapis/java-storage/compare/v2.19.0...v2.20.0) (2023-03-01) + + +### Features + +* Allow specifying a negative offset to ReadChannel ([#1916](https://github.com/googleapis/java-storage/issues/1916)) ([6df5469](https://github.com/googleapis/java-storage/commit/6df546945211a767f73190773ab2754bf7842e75)) + ## [2.19.0](https://github.com/googleapis/java-storage/compare/v2.18.0...v2.19.0) (2023-02-21) diff --git a/gapic-google-cloud-storage-v2/pom.xml b/gapic-google-cloud-storage-v2/pom.xml index 3ac7d3f95c..0e102154f3 100644 --- a/gapic-google-cloud-storage-v2/pom.xml +++ b/gapic-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc gapic-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha gapic-google-cloud-storage-v2 GRPC library for gapic-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.19.1-SNAPSHOT + 2.20.0 diff --git a/google-cloud-storage-bom/pom.xml b/google-cloud-storage-bom/pom.xml index 4938b41831..f1b1e0f211 100644 --- a/google-cloud-storage-bom/pom.xml +++ b/google-cloud-storage-bom/pom.xml @@ -19,7 +19,7 @@ 4.0.0 com.google.cloud google-cloud-storage-bom - 2.19.1-SNAPSHOT + 2.20.0 pom com.google.cloud @@ -69,22 +69,22 @@ com.google.cloud google-cloud-storage - 2.19.1-SNAPSHOT + 2.20.0 com.google.api.grpc gapic-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha com.google.api.grpc grpc-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha com.google.api.grpc proto-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index e56545d9b5..65388950ed 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-storage - 2.19.1-SNAPSHOT + 2.20.0 jar Google Cloud Storage https://github.com/googleapis/java-storage @@ -12,7 +12,7 @@ com.google.cloud google-cloud-storage-parent - 2.19.1-SNAPSHOT + 2.20.0 google-cloud-storage diff --git a/grpc-google-cloud-storage-v2/pom.xml b/grpc-google-cloud-storage-v2/pom.xml index 0b1c0a83a8..87c2556182 100644 --- a/grpc-google-cloud-storage-v2/pom.xml +++ b/grpc-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha grpc-google-cloud-storage-v2 GRPC library for grpc-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.19.1-SNAPSHOT + 2.20.0 diff --git a/pom.xml b/pom.xml index ab909ea948..c0e825bee2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-storage-parent pom - 2.19.1-SNAPSHOT + 2.20.0 Storage Parent https://github.com/googleapis/java-storage @@ -70,7 +70,7 @@ com.google.cloud google-cloud-storage - 2.19.1-SNAPSHOT + 2.20.0 com.google.apis @@ -111,17 +111,17 @@ com.google.api.grpc proto-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha com.google.api.grpc grpc-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha com.google.api.grpc gapic-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha com.google.cloud diff --git a/proto-google-cloud-storage-v2/pom.xml b/proto-google-cloud-storage-v2/pom.xml index bb14d85474..ea4cc62899 100644 --- a/proto-google-cloud-storage-v2/pom.xml +++ b/proto-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-storage-v2 - 2.19.1-alpha-SNAPSHOT + 2.20.0-alpha proto-google-cloud-storage-v2 PROTO library for proto-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.19.1-SNAPSHOT + 2.20.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bec5ea7938..3fc4ee23f8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-storage - 2.19.1-SNAPSHOT + 2.20.0 diff --git a/versions.txt b/versions.txt index c879991aaf..a0087184b4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,7 +1,7 @@ # Format: # module:released-version:current-version -google-cloud-storage:2.19.0:2.19.1-SNAPSHOT -gapic-google-cloud-storage-v2:2.19.0-alpha:2.19.1-alpha-SNAPSHOT -grpc-google-cloud-storage-v2:2.19.0-alpha:2.19.1-alpha-SNAPSHOT -proto-google-cloud-storage-v2:2.19.0-alpha:2.19.1-alpha-SNAPSHOT +google-cloud-storage:2.20.0:2.20.0 +gapic-google-cloud-storage-v2:2.20.0-alpha:2.20.0-alpha +grpc-google-cloud-storage-v2:2.20.0-alpha:2.20.0-alpha +proto-google-cloud-storage-v2:2.20.0-alpha:2.20.0-alpha