Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide streamed access to object data #61

Closed
jboynes opened this issue May 14, 2015 · 16 comments
Closed

Provide streamed access to object data #61

jboynes opened this issue May 14, 2015 · 16 comments
Assignees
Labels
api: storage Issues related to the Cloud Storage API. 🚨 This issue needs some love. triage me I really want to be triaged.

Comments

@jboynes
Copy link

jboynes commented May 14, 2015

The BlobReadChannel and BlobWriteChannel implementations buffer data and perform separate RPC calls when they need to flush the buffer. This allows for retries of the transfer operations but uses more billable operations than just writing the data in a continuous stream.

@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

I am not sure I understand the issue.

  1. write-channel only buffer to the minimum block size (256K bytes - see https://cloud.google.com/storage/docs/concepts-techniques#resumable)
  2. read is reading as much as requested or 256K (for minimum transfer per request).

The underlying API for the service (apiary or XML) does not support streaming RPC, so every write/fetch has to be done via a separate RPC call. I expect that to change in the future when the service will support gRPC. Is that what the issue about?

@aozarov aozarov added the api: storage Issues related to the Cloud Storage API. label May 14, 2015
@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

Clarification would be helpful but now I think you were probably referring to the non-resumable write option (e.g. if you were using the apiary client directly you would do something like insertObject.getMediaHttpUploader().setDirectUploadEnabled(true))? And similarly for readers.

If so, then I think we should split the issue to reader and writer.

As for writers it is highly recommended (and also mandated in AE classic) to use resumable writes when content is not small (some examples suggest < 2MB, AE currently limit is 10MB). When the content is small one could write it via the create method (and because the content is small the value of Stream over byte[] is not that meaningful).

As for readers, I think that recommendation is weaker (and AE class constraint is wider 32MB) but still
exists mostly for error handling issues (as you pointed out) and based on my experience when building appengine-gcs-client errors handling and retries made a big difference in the user experience. I guess I could have change "byte[] load"
to return a stream (or to have some way to distinct between a directDownload to resumable/chunk download in the same call though in the case of the former the returned channel/stream would not be serializable) but considering the underlying Apiary client code (https://github.com/google/google-api-java-client/blob/86fd2a574487aaff9b4dbdd0396a98bb2741828f/google-api-client/src/main/java/com/google/api/client/googleapis/media/MediaHttpDownloader.java#L181 & https://github.com/google/google-api-java-client/blob/86fd2a574487aaff9b4dbdd0396a98bb2741828f/google-api-client/src/main/java/com/google/api/client/googleapis/media/MediaHttpDownloader.java#L247) I don't think this is going to be useful as it seems that in the case of directDownload bytes are only transferred as once request was completed.

@jboynes
Copy link
Author

jboynes commented May 14, 2015

Something like:

  /**
   * Returns a stream that can be used to read a stored object.
   *
   * @param uri the id of the object to be read
   * @param options options specifying how the object is to be opened; defaults to READ
   * @return a stream for reading the object
   * @throws IOException if a problem occurred accessing the object
   */
  InputStream newInputStream(URI uri, OpenOption... options) throws IOException;

  /**
   * Returns a stream that can be used to write an object.
   *
   * @param uri the id of the object to be written
   * @param options options specifying how the object is to be opened;
   *  defaults to CREATE, TRUNCATE_EXISTING, WRITE
   * @return a stream for writing the object
   * @throws IOException if a problem occurred accessing the object
   */
  OutputStream newOutputStream(URI uri, OpenOption... options) throws IOException;

which provides an idiomatic, stream-based way to upload and download object content. These would map to GET and POST operations that allow the content to be transferred with a single exchange.

@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

See my reply above.
Considering the current state of the Apairy client I see no reason for having these method (though
we could by pass some of the issues by using the XML API instead).
Also, these methods are hiding many GCS specific options or differences (such as passing Object
metadata in write operation, conditional read/write, lack of append mode,...) and therefore I don't think
their place is in this library, however I do think a similar functionality would be nice/useful as part of the
nio.file implementation in a contrib library (as discussed in #46) .

@jgeewax
Copy link

jgeewax commented May 14, 2015

Hmm, I think we should definitely have Input/Output Stream methods. This is how AWS does it, not to mention gcloud-node does this as well.

@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

Channel is a stream. It is part of the newer java nio API. see my comment in #46.

@jgeewax
Copy link

jgeewax commented May 14, 2015

So you're saying that we already have this functionality? What's the gcloud-java equivalent of

AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider());        
S3Object object = s3Client.getObject(
                  new GetObjectRequest(bucketName, key));
InputStream objectData = object.getObjectContent();
// Process the objectData stream.
objectData.close();

@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

I think the main discussion here is about a request for a stream based one RPC call (non-serialize/non-resumeable) vs current state which provides a serializable and resumeable stream based on multiple resumable RPCs. I agree that if that is indeed the topic discussed here the title is wrong as we do provide a "streamed access to object data".

@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

see DownloadAction in the storage example: https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/src/main/java/com/google/gcloud/examples/StorageExample.java

        try (BlobReadChannel reader = storage.reader(blob.bucket(), blob.name())) {
          WritableByteChannel channel = Channels.newChannel(writeTo); 
          ByteBuffer bytes = ByteBuffer.allocate(64 * 1024);
          while (reader.read(bytes) > 0) {
            bytes.flip();
            channel.write(bytes); // or do whatever with the bytes read.
            bytes.clear();
          }
        }

@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

And if for any reason one prefers not to use java.nio and use InputStream instead he can do:

InputStream input = Channels.newInputStream(storage.reader(blob.bucket(), blob.name()));

@jboynes
Copy link
Author

jboynes commented May 14, 2015

Channels are not as well supported as streams and there is no downside to providing both.

    Path localData = Paths.get("localData.txt");
    try (OutputStream os = storage.newOutputStream(TEST_OBJECT)) {
      Files.copy(localData, os);
    }

That's setting aside the implementation difference where the Blob channel performs multiple (billed) operations against GCS rather than just one.

Also BlobReadChannel is wrapping HttpResponse objects that can already provide a InputStream over their content directly.

@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

  1. I would replace "supported" with "adopted" and even that I might not fully agree with.
    Given that it is very easy to get an InputStream from a Channel (using a standard API)
    I don't see a reason to provide both. However, I don't mind to provide an InputStream instead of a Channel (that is a minor change with a minor [nagtive in my mind] value, though the negative part
    is slightly higher with OutputStream vs writer Channel as Buffers that go with Channels are more widely accepted).

  2. So, it seems that there are various issues discussed here. Please decide what this topic this issue was create for and create other issues for the other (related) topics.

  3. As mentioned above (multiple times), the apiary client does not expose the HttpRespose stream directly.

@aozarov
Copy link
Contributor

aozarov commented May 14, 2015

One more data point to the nioChannel vs io.Stream discussions (which is minor in my mind as they are both "streams" can be trivially converted from one another) is that it looks like grpc-java is based on Netty which is based on nio. I am not sure how much of the nio would be visible from the grpc layer but if something does it is more likely to efficiently work with other nio related classes.

@aozarov
Copy link
Contributor

aozarov commented May 15, 2015

@jgeewax I hope this addressed your concern. We do provide a streaming API to read a content of a Blob and we are using the newer Java standard for it (I assume Amazon API preceded nio but that
should not be a factor). Converting between the two APIs is trivial and provided by the Java standard APIs. I consider this issue to be nio.Channel vs io.Stream and I plan to close as "wontfix".
The more I think about it the more I am convinced that providing the Channel would be preferred.
Here are some of my reasoning:

  1. The nio is the new Java IO API and there is no good reason to stick with the older one (newer framework, libraries are more likely to support the latter - also see (2)).
  2. Channels are provided with both Synchronous and Asynchronous flavors for when we provide an asynchronous API calls.
  3. App Engine GCS client API which has significant number of users (and traffic) is also using Channels, so migration will be smother.

@jgeewax
Copy link

jgeewax commented May 19, 2015

OK if this is really just a difference between nio.Channel and io.Stream it sounds like it's "easy enough" for people to convert between the two. Some more questions...

  • Do we have any idea of how annoying this is to external people?
  • Are we shoving them in a direction that we need not necessarily shove them?
  • Would we incur additional maintenance cost by virtue of having these methods tossed in for convenience?

@jboynes , any opinions on these? @aozarov ?

@aozarov
Copy link
Contributor

aozarov commented May 19, 2015

I don't think this will "annoy" people. nio was part of Java 7 (which this library specify as minimum requirement) and Java 7 is out there since 2011. That was never a complaint by people that were using the appengine_gcs_client.

I think using the channel is the right direction for the reasons I mentioned above (and the conversion is a trivial one-liner) and for that reason I don't think we should pollute the API with 2 flavors that provide the same, and only channels would be able to support the async option in the future.

I am closing this issue (feel free to re-open if you think it should be further discussed) and I created issue #72 for using one RPC for read-write vs using chunks (multiple resumable RPC calls).

@aozarov aozarov closed this as completed May 19, 2015
@yoshi-automation yoshi-automation added 🚨 This issue needs some love. triage me I really want to be triaged. labels Apr 6, 2020
github-actions bot pushed a commit to suztomo/google-cloud-java that referenced this issue Jun 29, 2022
* updated versions.txt [ci skip]

* updated pom.xml [ci skip]
github-actions bot pushed a commit to suztomo/google-cloud-java that referenced this issue Jul 1, 2022
🤖 I have created a release *beep* *boop*
---


## [0.5.0](googleapis/java-video-live-stream@v0.4.0...v0.5.0) (2022-06-30)


### Features

* Enable REST transport for most of Java and Go clients ([googleapis#60](googleapis/java-video-live-stream#60)) ([d35bb12](googleapis/java-video-live-stream@d35bb12))


### Bug Fixes

* update gapic-generator-java with mock service generation fixes ([googleapis#63](googleapis/java-video-live-stream#63)) ([c08deea](googleapis/java-video-live-stream@c08deea))


### Dependencies

* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([googleapis#59](googleapis/java-video-live-stream#59)) ([bb6245d](googleapis/java-video-live-stream@bb6245d))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
github-actions bot pushed a commit that referenced this issue Jul 14, 2022
…onfig to v1.5.1 (#61)

* build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.1

* 🦉 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 <gcf-owl-bot[bot]@users.noreply.github.com>
github-actions bot pushed a commit that referenced this issue Jul 14, 2022
github-actions bot pushed a commit that referenced this issue Aug 9, 2022
…onfig to v1.5.3 (#61)

[![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.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.5.1` -> `1.5.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.3/compatibility-slim/1.5.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.3/confidence-slim/1.5.1)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>googleapis/java-shared-config</summary>

### [`v1.5.3`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#&#8203;153-httpsgithubcomgoogleapisjava-shared-configcomparev152v153-2022-07-27)

[Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.5.2...v1.5.3)

##### Dependencies

-   update dependency org.junit.vintage:junit-vintage-engine to v5.9.0 ([#&#8203;497](https://togithub.com/googleapis/java-shared-config/issues/497)) ([1fc6ab4](https://togithub.com/googleapis/java-shared-config/commit/1fc6ab445624cd4f9c8b161d109f346a9e5ed09a))
-   Update doclet to latest version 1.6.0 ([38fb7c3](https://togithub.com/googleapis/java-shared-config/commit/38fb7c3957fb6c9b2da10f9e463cc93a8b80a3a4))

### [`v1.5.2`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#&#8203;152-httpsgithubcomgoogleapisjava-shared-configcomparev151v152-2022-07-25)

[Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.5.1...v1.5.2)

##### Dependencies

-   update dependency com.puppycrawl.tools:checkstyle to v10 ([#&#8203;435](https://togithub.com/googleapis/java-shared-config/issues/435)) ([bfc8ce1](https://togithub.com/googleapis/java-shared-config/commit/bfc8ce1deca6292147d002d3afe22a09840aa5d6))
-   update dependency org.graalvm.buildtools:junit-platform-native to v0.9.13 ([#&#8203;488](https://togithub.com/googleapis/java-shared-config/issues/488)) ([39b91ee](https://togithub.com/googleapis/java-shared-config/commit/39b91ee1283f0a5fbbe63e8bfd1ec97ab4ab377e))
-   update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.13 ([#&#8203;489](https://togithub.com/googleapis/java-shared-config/issues/489)) ([cc3bcfa](https://togithub.com/googleapis/java-shared-config/commit/cc3bcfa2d6717441a8d5b5048fa78c2cf7aabf2b))

</details>

---

### 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.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

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-video-stitcher).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xMzUuMSIsInVwZGF0ZWRJblZlciI6IjMyLjEzNS4xIn0=-->
github-actions bot pushed a commit that referenced this issue Aug 16, 2022
…-plugin to v3.4.1 (#61)

[![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.apache.maven.plugins:maven-javadoc-plugin](https://maven.apache.org/plugins/) ([source](https://togithub.com/apache/maven-javadoc-plugin)) | `3.4.0` -> `3.4.1` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/compatibility-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/confidence-slim/3.4.0)](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**: Renovate will not automatically rebase this PR, because other commits have been found.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost.

---

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-bare-metal-solution).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xNjEuMCIsInVwZGF0ZWRJblZlciI6IjMyLjE2MS4wIn0=-->
github-actions bot pushed a commit that referenced this issue Sep 30, 2022
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google-cloud-core](https://togithub.com/googleapis/python-cloud-core) | `==2.3.1` -> `==2.3.2` | [![age](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/compatibility-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/confidence-slim/2.3.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**: Renovate will not automatically rebase this PR, because other commits have been found.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost.

---

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-bigquery-data-exchange).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yMDguMiIsInVwZGF0ZWRJblZlciI6IjMyLjIwOC4yIn0=-->
github-actions bot pushed a commit that referenced this issue Oct 4, 2022
🤖 I have created a release *beep* *boop*
---


## [0.2.5](https://togithub.com/googleapis/java-gke-backup/compare/v0.2.4...v0.2.5) (2022-10-03)


### Dependencies

* Update dependency certifi to v2022.9.24 ([#60](https://togithub.com/googleapis/java-gke-backup/issues/60)) ([317ef8f](https://togithub.com/googleapis/java-gke-backup/commit/317ef8f5c11f3cd6275e51104d44b33e61099b83))
* Update dependency charset-normalizer to v2.1.1 ([#64](https://togithub.com/googleapis/java-gke-backup/issues/64)) ([94eddb9](https://togithub.com/googleapis/java-gke-backup/commit/94eddb9aa24138d9f393d8ab32160077bc4e1b0a))
* Update dependency click to v8.1.3 ([#65](https://togithub.com/googleapis/java-gke-backup/issues/65)) ([c2e2275](https://togithub.com/googleapis/java-gke-backup/commit/c2e227566d56769c98fc4890d4c841b94f11f918))
* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#85](https://togithub.com/googleapis/java-gke-backup/issues/85)) ([93b2282](https://togithub.com/googleapis/java-gke-backup/commit/93b2282dde9d35276d937bdd84aa26d5412c3bbc))
* Update dependency gcp-releasetool to v1.8.8 ([#61](https://togithub.com/googleapis/java-gke-backup/issues/61)) ([6f63d57](https://togithub.com/googleapis/java-gke-backup/commit/6f63d57fbd09e5f1cbe52de7dcc28e2afa8e9b32))
* Update dependency google-api-core to v2.10.1 ([#66](https://togithub.com/googleapis/java-gke-backup/issues/66)) ([8e91da3](https://togithub.com/googleapis/java-gke-backup/commit/8e91da351601167fa3620b83981bc1d66de81563))
* Update dependency google-auth to v2.12.0 ([#67](https://togithub.com/googleapis/java-gke-backup/issues/67)) ([296cf38](https://togithub.com/googleapis/java-gke-backup/commit/296cf38a057da02650ca2c3fbe22be437c26c67c))
* Update dependency google-cloud-core to v2.3.2 ([#62](https://togithub.com/googleapis/java-gke-backup/issues/62)) ([ca1f3c2](https://togithub.com/googleapis/java-gke-backup/commit/ca1f3c2424a2313d7143c43441b63861618ac14a))
* Update dependency google-cloud-storage to v2.5.0 ([#68](https://togithub.com/googleapis/java-gke-backup/issues/68)) ([3799767](https://togithub.com/googleapis/java-gke-backup/commit/379976763fa24ff37216149fd4af99f5e977d3d3))
* Update dependency google-crc32c to v1.5.0 ([#69](https://togithub.com/googleapis/java-gke-backup/issues/69)) ([9e57fb5](https://togithub.com/googleapis/java-gke-backup/commit/9e57fb5a3ece05a750a5b4f8180fd1eaa97d8964))
* Update dependency googleapis-common-protos to v1.56.4 ([#63](https://togithub.com/googleapis/java-gke-backup/issues/63)) ([d29e652](https://togithub.com/googleapis/java-gke-backup/commit/d29e6527be55672bb72e2a51f16580adecab2b75))
* Update dependency importlib-metadata to v4.12.0 ([#78](https://togithub.com/googleapis/java-gke-backup/issues/78)) ([de743e5](https://togithub.com/googleapis/java-gke-backup/commit/de743e5c2e11a3cf67a6553727bded09bc33d233))
* Update dependency jeepney to v0.8.0 ([#79](https://togithub.com/googleapis/java-gke-backup/issues/79)) ([5b9831b](https://togithub.com/googleapis/java-gke-backup/commit/5b9831b0a8692a4c7c0fdeb2dacce31f2847a1a6))
* Update dependency jinja2 to v3.1.2 ([#80](https://togithub.com/googleapis/java-gke-backup/issues/80)) ([7929d9b](https://togithub.com/googleapis/java-gke-backup/commit/7929d9bc679b9feb85d2fcf51f77f3a9a0161877))
* Update dependency keyring to v23.9.3 ([#81](https://togithub.com/googleapis/java-gke-backup/issues/81)) ([95a1f64](https://togithub.com/googleapis/java-gke-backup/commit/95a1f64147f5821c63f391a6a4c7909331e8611b))
* Update dependency markupsafe to v2.1.1 ([#70](https://togithub.com/googleapis/java-gke-backup/issues/70)) ([947bbba](https://togithub.com/googleapis/java-gke-backup/commit/947bbba22d90b9cc3317f3138eac68d172bc01bf))
* Update dependency protobuf to v3.20.2 ([#71](https://togithub.com/googleapis/java-gke-backup/issues/71)) ([0eb5782](https://togithub.com/googleapis/java-gke-backup/commit/0eb57820de0ef678af4f53536d00321dd5ab83ba))
* Update dependency pyjwt to v2.5.0 ([#72](https://togithub.com/googleapis/java-gke-backup/issues/72)) ([f3ef3ab](https://togithub.com/googleapis/java-gke-backup/commit/f3ef3abd9e6a0318ce4f4580a1903a7ac55bfa83))
* Update dependency requests to v2.28.1 ([#73](https://togithub.com/googleapis/java-gke-backup/issues/73)) ([1d6762a](https://togithub.com/googleapis/java-gke-backup/commit/1d6762a15ea03b621607cbb89e086fc89dfc3bf0))

---
This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
github-actions bot pushed a commit that referenced this issue Oct 5, 2022
🤖 I have created a release *beep* *boop*
---


## [0.3.1](https://togithub.com/googleapis/java-apigee-registry/compare/v0.3.0...v0.3.1) (2022-10-03)


### Bug Fixes

* Additional error codes added to service configuration for retry ([#39](https://togithub.com/googleapis/java-apigee-registry/issues/39)) ([55a9b41](https://togithub.com/googleapis/java-apigee-registry/commit/55a9b417cf04575d2070ad026e5648a494fe076a))


### Dependencies

* Update dependency certifi to v2022.9.24 ([#48](https://togithub.com/googleapis/java-apigee-registry/issues/48)) ([1c6ae70](https://togithub.com/googleapis/java-apigee-registry/commit/1c6ae70cb9ff9e7e98d83ce472ae5526d08f9a35))
* Update dependency charset-normalizer to v2.1.1 ([#53](https://togithub.com/googleapis/java-apigee-registry/issues/53)) ([2130079](https://togithub.com/googleapis/java-apigee-registry/commit/21300793a908ed41c535813ee15ec94b5f5ef018))
* Update dependency click to v8.1.3 ([#54](https://togithub.com/googleapis/java-apigee-registry/issues/54)) ([cf3458b](https://togithub.com/googleapis/java-apigee-registry/commit/cf3458bd2972f3db75c8cbf834be0b383d9e74a0))
* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#42](https://togithub.com/googleapis/java-apigee-registry/issues/42)) ([38cb4f9](https://togithub.com/googleapis/java-apigee-registry/commit/38cb4f9932c3d6cb4c36d3f61922fd613409607f))
* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#44](https://togithub.com/googleapis/java-apigee-registry/issues/44)) ([ddaed09](https://togithub.com/googleapis/java-apigee-registry/commit/ddaed0964ae57cd7b799b9acf7b202595af4c781))
* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#65](https://togithub.com/googleapis/java-apigee-registry/issues/65)) ([882e36b](https://togithub.com/googleapis/java-apigee-registry/commit/882e36b2d21ff601f569aa79dfe840cd41bf0438))
* Update dependency gcp-releasetool to v1.8.8 ([#49](https://togithub.com/googleapis/java-apigee-registry/issues/49)) ([3a927a3](https://togithub.com/googleapis/java-apigee-registry/commit/3a927a3df5a8cf5cfff79faede5387291a3d443e))
* Update dependency google-api-core to v2.10.1 ([#55](https://togithub.com/googleapis/java-apigee-registry/issues/55)) ([f841a07](https://togithub.com/googleapis/java-apigee-registry/commit/f841a07c0b1c2fa585f7e665208d6a6b7843c75c))
* Update dependency google-auth to v2.11.1 ([#50](https://togithub.com/googleapis/java-apigee-registry/issues/50)) ([7b450cb](https://togithub.com/googleapis/java-apigee-registry/commit/7b450cbeadc08b8dc26fbd4738ce47788a5cf330))
* Update dependency google-cloud-core to v2.3.2 ([#51](https://togithub.com/googleapis/java-apigee-registry/issues/51)) ([b7f1110](https://togithub.com/googleapis/java-apigee-registry/commit/b7f111014416ff76fa787085d0d0bc9ab47f9af6))
* Update dependency google-cloud-storage to v2.5.0 ([#56](https://togithub.com/googleapis/java-apigee-registry/issues/56)) ([f3799d3](https://togithub.com/googleapis/java-apigee-registry/commit/f3799d3d2d754ec89c784655d835ecaed4df3406))
* Update dependency google-crc32c to v1.5.0 ([#57](https://togithub.com/googleapis/java-apigee-registry/issues/57)) ([b978c7d](https://togithub.com/googleapis/java-apigee-registry/commit/b978c7d2bed23554998a9f0f047e7211ff37f906))
* Update dependency googleapis-common-protos to v1.56.4 ([#52](https://togithub.com/googleapis/java-apigee-registry/issues/52)) ([9e069f1](https://togithub.com/googleapis/java-apigee-registry/commit/9e069f1d96c78fdaedbf57a95d05ada18d57ea0f))
* Update dependency importlib-metadata to v4.12.0 ([#58](https://togithub.com/googleapis/java-apigee-registry/issues/58)) ([370bd1e](https://togithub.com/googleapis/java-apigee-registry/commit/370bd1eba82d820fe7156c276ee5e4a5cbf3f9e0))
* Update dependency jeepney to v0.8.0 ([#59](https://togithub.com/googleapis/java-apigee-registry/issues/59)) ([7a63034](https://togithub.com/googleapis/java-apigee-registry/commit/7a63034a2a194feed6dc7e8215c5063ad1454072))
* Update dependency jinja2 to v3.1.2 ([#60](https://togithub.com/googleapis/java-apigee-registry/issues/60)) ([4fe2b85](https://togithub.com/googleapis/java-apigee-registry/commit/4fe2b853af3c39d2c46efbdc5027cc34945a736c))
* Update dependency keyring to v23.9.3 ([#61](https://togithub.com/googleapis/java-apigee-registry/issues/61)) ([c8cf1c2](https://togithub.com/googleapis/java-apigee-registry/commit/c8cf1c29cab75b18ab67e372bf3d50b36a4b57e9))
* Update dependency markupsafe to v2.1.1 ([#62](https://togithub.com/googleapis/java-apigee-registry/issues/62)) ([98036ae](https://togithub.com/googleapis/java-apigee-registry/commit/98036ae98fa56eba73cccb88a2af726d20fb2a1d))
* Update dependency protobuf to v3.20.2 ([#63](https://togithub.com/googleapis/java-apigee-registry/issues/63)) ([aa9f0e7](https://togithub.com/googleapis/java-apigee-registry/commit/aa9f0e7cad3940fa02cd69c3b3c3e8c2938e0c1b))

---
This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
github-actions bot pushed a commit that referenced this issue Oct 5, 2022
🤖 I have created a release *beep* *boop*
---


## [0.4.0](https://togithub.com/googleapis/java-bigquery-data-exchange/compare/v0.3.2...v0.4.0) (2022-10-03)


### ⚠ BREAKING CHANGES

* refactor references to Category message
* refresh current dataexchange/v1beta1/* directory to include recent change in protos. Removed common directory and use local enum Category

### Features

* Update BigQuery Analytics Hub API v1beta1 client ([#51](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/51)) ([a70b8ac](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/a70b8ac71383a051f384884b043c554e7fb277bc))


### Bug Fixes

* refactor references to Category message ([a70b8ac](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/a70b8ac71383a051f384884b043c554e7fb277bc))


### Documentation

* improve proto documentation. ([a70b8ac](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/a70b8ac71383a051f384884b043c554e7fb277bc))


### Dependencies

* Update dependency cachetools to v5 ([#79](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/79)) ([e7fc966](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/e7fc9667452a94f8f976a00409a8cc3fbe6b502f))
* Update dependency certifi to v2022.9.24 ([#59](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/59)) ([9cdbe53](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/9cdbe538bcb6b9e78346206985db000fa3fef3cf))
* Update dependency charset-normalizer to v2.1.1 ([#63](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/63)) ([ea2d77f](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/ea2d77f5381aa3ee97f4ae936f580614f2228075))
* Update dependency click to v8.1.3 ([#64](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/64)) ([6f0b519](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/6f0b519171a8a9e0a0b8bc254486b2ee99a12599))
* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#54](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/54)) ([63e56e2](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/63e56e248472e64f0fa6ea2b67c0d8066e3d187e))
* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#56](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/56)) ([acefe6d](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/acefe6df105aa534ab69283dab25e7555478ef0c))
* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#83](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/83)) ([1329a2d](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/1329a2db26009e7c844282d65da9256d8789fb46))
* Update dependency gcp-releasetool to v1.8.8 ([#60](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/60)) ([cb20437](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/cb20437ca4a81457d16316e52ac505b06997a5ab))
* Update dependency google-api-core to v2.10.1 ([#65](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/65)) ([5677913](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/56779139cfed3778ae6c95cf3677e0ac05755b3e))
* Update dependency google-auth to v2.12.0 ([#66](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/66)) ([d7d2a29](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/d7d2a294b527a4e947a6c8d1a11db5077a941cec))
* Update dependency google-cloud-core to v2.3.2 ([#61](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/61)) ([b23beaf](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/b23beafe5126b10c86993722019da8f9533bbe19))
* Update dependency google-cloud-storage to v2.5.0 ([#67](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/67)) ([afaf995](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/afaf9951a8e9b23dbe645e7711ad563fff21df43))
* Update dependency google-crc32c to v1.5.0 ([#68](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/68)) ([5810429](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/5810429d1f6fa4e04d8b3aac002cc4df46b93b35))
* Update dependency googleapis-common-protos to v1.56.4 ([#62](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/62)) ([845625c](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/845625cc014de6bd21659ff191fda39120c02969))
* Update dependency importlib-metadata to v4.12.0 ([#69](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/69)) ([de23b25](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/de23b2529f9f9adab51361c8dd772c79233cc956))
* Update dependency jeepney to v0.8.0 ([#74](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/74)) ([d3754be](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/d3754be6555594b3776cb056a7b4511223c51850))
* Update dependency jinja2 to v3.1.2 ([#75](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/75)) ([93f43a4](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/93f43a47322508a9b8f8f7d667e3576666d95d72))
* Update dependency keyring to v23.9.3 ([#76](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/76)) ([0a1b61a](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/0a1b61a9c2144ba523cc8aea7d77a93bbdec2176))
* Update dependency markupsafe to v2.1.1 ([#70](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/70)) ([ab50c0e](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/ab50c0eb2a3e081ec81ac14fbc8d3539086c198f))
* Update dependency protobuf to v3.20.2 ([#71](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/71)) ([b647377](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/b647377c7c430cbb86b5fd7125792ae07be7dda6))
* Update dependency protobuf to v4 ([#80](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/80)) ([409ceed](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/409ceed1a74b5ed066b1c565978900773ffe1b0c))
* Update dependency pyjwt to v2.5.0 ([#72](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/72)) ([e43efcd](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/e43efcdfccfd99571622ed47f14432cf0a42cfdc))
* Update dependency requests to v2.28.1 ([#73](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/73)) ([60746a8](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/60746a81486f3edcef143d91ca0d19cfa9546b3d))
* Update dependency typing-extensions to v4.3.0 ([#77](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/77)) ([2a22b12](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/2a22b12e2860296f4a866c5abb54bc11a0cd8a65))
* Update dependency zipp to v3.8.1 ([#78](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/78)) ([7b1a48a](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/7b1a48a0810d1e5702a6b214e148b97efdac7564))

---
This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
github-actions bot pushed a commit to renovate-bot/google-cloud-java that referenced this issue Oct 5, 2022
🤖 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).
github-actions bot pushed a commit that referenced this issue Nov 17, 2022
* chore(java): add a note in README for migrated split repos

Disable renovate bot and flaky bot for split repositories
that have moved to the Java monorepo.
The Java monorepo will pass the "monorepo=True" parameter
to java.common_templates method in its owlbot.py files so that
the migration note will not appear in the README in the monorepo.

Co-authored-by: Jeff Ching <chingor@google.com>
Source-Link: googleapis/synthtool@d4b2916
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:edae91ccdd2dded2f572ec341a768ad180305a3e8fbfd93064b28e237d35920a

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Jeff Ching <chingor@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: storage Issues related to the Cloud Storage API. 🚨 This issue needs some love. triage me I really want to be triaged.
Projects
None yet
Development

No branches or pull requests

4 participants