-
Notifications
You must be signed in to change notification settings - Fork 54
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
feat: REST LRO implementation #859
Conversation
* fix ServiceStub Goldens * fix Stub golden * fix Stub golden * fix CallableFactory golden * fix java format * add annotation placement comments * only add machinery to methods that return operation * add grpc file that contained method that was edited on abstract class * update HttpJsonComplianceStub.golden * java format
* feat: enable self signed jwt for gapic clients (googleapis#794) * feat: enable self signed jwt for gapic clients * resolve comments * update gax version * update goldens * update golden files * chore: release 2.1.0 (googleapis#827) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * ingegrate with latest googleapis and googleapis-discovery * ingegrate with latest googleapis and googleapis-discovery Co-authored-by: arithmetic1728 <58957152+arithmetic1728@users.noreply.github.com> Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
* fix ServiceStub Goldens * fix Stub golden * fix Stub golden * fix CallableFactory golden * fix java format * add annotation placement comments * only add machinery to methods that return operation * add grpc file that contained method that was edited on abstract class * update HttpJsonComplianceStub.golden * java format * add initial methods from annotations * add initial methods from annotations * Implement annotations * java format * fix package for Status * fix CallableFactory generics * java format * initialize new fields in message for parser test * set default value for operation_polling_method * add brackets to if statement * remove comments and invoke methods * add brackets to if statements and remove invoke methods * java formet
There are 2 more things left: 1) longRunnignOperation() getter method on the transport-agnostic (parent) class 2) proper (transport-specific) Response and Metadata transformers for OperationSettings initialization
* feat: enable self signed jwt for gapic clients (googleapis#794) * feat: enable self signed jwt for gapic clients * resolve comments * update gax version * update goldens * update golden files * chore: release 2.1.0 (googleapis#827) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * feat: REGAPIC initial implementation (googleapis#824) This includes: 1) Proper GRPC transcoding 2) Mimimal REST Operations (go make it compilable) 3) Rely on resource names for tests values generation (to not fail http url path validation) 4) Empty Server Streaming method implementation * feat: REGAPIC Multitransport implementation (grpc+rest) (googleapis#833) 1) Fully backward compatible with grpc-only GAPIC 2) Strictly speaking not fully backward compatible with rest-only REGAPIC (but is compatible for practical cases). See below for details. 3) Introduces the concept of default transport (is necessary to preserve backward-compabitility). The default behavior assumes grpc transport. Needed to unblock DIREGAPIC LRO. To be reviewed after submission * chore: merge DIREGAPIC LRO with multitransport changes from master * fix: fix Stub.longRunningClient() issues for DIREGAPIC LRO * fix: [bazel] fix rest transport handling in assembly rule (googleapis#835) Co-authored-by: arithmetic1728 <58957152+arithmetic1728@users.noreply.github.com> Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google. ℹ️ Googlers: Go here for more info. |
Codecov Report
@@ Coverage Diff @@
## main #859 +/- ##
==========================================
- Coverage 90.03% 87.58% -2.46%
==========================================
Files 151 152 +1
Lines 15339 15983 +644
Branches 1101 1160 +59
==========================================
+ Hits 13811 13999 +188
- Misses 1213 1637 +424
- Partials 315 347 +32
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looked into the upper part of the diff. Will take a look at the rest later.
repositories.bzl
Outdated
urls = [ | ||
"https://github.com/googleapis/googleapis-discovery/archive/abf4cec1ce9e02e4d7d650bf66137c347cdd0d44.zip", | ||
"https://github.com/vam-google/googleapis-discovery/archive/bb8a053b93ef8698297c41634aa9201f7e075277.zip", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"https://github.com/vam-google/googleapis-discovery/archive/bb8a053b93ef8698297c41634aa9201f7e075277.zip", | |
"https://github.com/googleapis/googleapis-discovery/archive/....zip", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed to point to upstream
@@ -110,22 +111,23 @@ public GapicClass generate(GapicContext context, Service service) { | |||
* @return {@code TypeNode} containing the interface to be implemented by the generated callable | |||
* factory class. | |||
*/ | |||
protected abstract List<TypeNode> createClassImplements(TypeStore typeStore); | |||
protected abstract List<TypeNode> createClassImplements(TypeStore typeStore, Service service); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth having the consistency in the argument order with others?
protected abstract List<TypeNode> createClassImplements(TypeStore typeStore, Service service); | |
protected abstract List<TypeNode> createClassImplements(Service service, TypeStore typeStore); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is better to have ordering consistent, though there are so much code in gapic-generator in general, so things like arguments ordering is not really a consistent thing accross the generator codebase (meaning other similar methods, not this specific one necessarily). As result it is hard to define what is the "right" ordering. for this specific one it is clearly service should go first, so reordered the parsms, thanks!
@@ -751,6 +752,13 @@ private static MethodDefinition createMethodDefaultMethod( | |||
.copyAndSetGenerics( | |||
Arrays.asList( | |||
lro.responseType().reference(), lro.metadataType().reference()))); | |||
if (method.hasLro() && method.lro().operationServiceStubType() != null) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already checked method.hasLro()
.
if (method.hasLro() && method.lro().operationServiceStubType() != null) { | |
if (lro.operationServiceStubType() != null) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yep, that was redundant. Removed
@@ -208,15 +220,26 @@ private MethodDefinition createCallableGetterHelper( | |||
while (operationStubNameIt.hasNext() && operationStubTypeIt.hasNext()) { | |||
String methodName = | |||
String.format("get%s", JavaStyle.toUpperCamelCase(operationStubNameIt.next())); | |||
//TODO: refactor this |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How to refactor this? Into a separate method?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly, I don't remember anymore =). But I'm pretty sure it is not about language syntax used, it meant it on architectural level. The problem in that piece of code is this whole logic of operationsStubType != null
ever being true. This comes from the difference between DIREGAPIC LRO and AIP-151 LROs, and I believe "refactoring" here means removing these kind of differences in logic depending on which LRO is being processed. Proper refactoring of this is outside of scope of this PR I believe.
} | ||
|
||
return getters; | ||
} | ||
|
||
private List<MethodDefinition> createLongRunningClientGetters(TypeStore typeStore) { | ||
return ImmutableList.of(createCallableGetterMethodDefinition( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw a lot of times, the codebase uses Arrays.asList()
. What would you say?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe all three versions are being used simultaneously:
Arrays.asList()
Collections.singletonList()
ImmutableList.of()
.
The reason why I don't like Arrays.asList() is that it always gets highlighted by IDEs (especially by IntelliJ) when used with only one argument (and it suggests to use Collections.singletonList()
instead). On the other hand, in the rest of our codebase, which depends on guava, we use guava's collections were possible, so using them here as well. I don't have a strong preference, though.
classMemberVarExprs.put( | ||
getTransportContext().transportOperationsStubNames().get(0), | ||
VariableExpr.withVariable( | ||
Variable.builder() | ||
.setName(getTransportContext().transportOperationsStubNames().get(0)) | ||
.setType(getTransportContext().transportOperationsStubTypes().get(0)) | ||
.setType(opeationsStubType) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit
.setType(opeationsStubType) | |
.setType(operationsStubType) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, fixed here and in other places (apparently I copy-pased this typo in multiple places in multiple classes =)
return ImmutableList.of(); | ||
} | ||
|
||
protected VariableExpr declareLongRunningClient() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Nullable
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess we don't really use nullable annotation consistently in composers, but added it here.
@@ -931,14 +1000,43 @@ private Expr createCallableInitExpr( | |||
return javaMethods; | |||
} | |||
|
|||
private boolean checkOperationPollingMethod(Service service) { | |||
for (Method method : service.methods()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
service.methods().stream().anyMatch(Method::isOperationPollingMethod)
? (Haven't tested though.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, pretty idiomatic, changed it to java8 streams form as you suggested. Thanks!
@@ -931,14 +1000,43 @@ private Expr createCallableInitExpr( | |||
return javaMethods; | |||
} | |||
|
|||
private boolean checkOperationPollingMethod(Service service) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
static
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly, I prefer not using static methods, if not necessary, as they are much less flexible. For private methods it doesn't even matter that much, but even if a method is not using any class state it might in the future or subclasses may be using it, also static methods often cause troubles during testing as they harder to mock, if necessary.
Technically for private static methods it is ok, because they are private anyways and can't be extended (and in case they are promoted to protected/public the static identifier may be removed on the moment of "promotion") and having static on them gives the reader additional information that the method does not mess with the client state, but that seems taking it a bit too far in terms of imposed conventions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still working on it.
TypeNode transportOpeationsStubType = service.operationServiceStubType(); | ||
if (transportOpeationsStubType == null) { | ||
transportOpeationsStubType = getTransportContext().transportOperationsStubTypes().get(0); | ||
} else { | ||
transportOpeationsStubType = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's confusing in that you first initialize transportOpeationsStubType
to something but then both of the if
branches overwrite the variable immediately. How about this?
TypeNode transportOpeationsStubType = service.operationServiceStubType(); | |
if (transportOpeationsStubType == null) { | |
transportOpeationsStubType = getTransportContext().transportOperationsStubTypes().get(0); | |
} else { | |
transportOpeationsStubType = | |
TypeNode transportOpeationsStubType = service.operationServiceStubType(); | |
if (transportOpeationsStubType == null) { | |
return getTransportContext().transportOperationsStubTypes().get(0); | |
} else { | |
return |
But I'm fine either way actually.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I can read the suggested change right (it abruptly ends with empty return statement). I agree that initializing something and than unavoidably overwriting it may be confusing. Here I think it was done to save a little bit of code, because on the else statement the new value is constructed based on the old value and with current logic we can do transportOpeationsStubType.reference()
instead of service.operationServiceStubType().reference()
which is one less method call and it is being done twice in the else statement.
initialCallableType) // TypeNode.withReference(ConcreteReference.withClazz(UnaryCallable.class))) | ||
.build()) | ||
// .setTemplateObjects(Arrays.asList(requestTemplateName, "OperationSnapshot")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clean this up?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, cleaned up
expr = methodMaker.apply("build", Collections.emptyList()).apply(expr); | ||
|
||
return Collections.singletonList(expr); | ||
} | ||
|
||
// Generates get[camelCase(fieldName)] | ||
private String getMethodFormat(String fieldName) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
static
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please see the other comment. I'm not aware of static being a good practice/recommended way for things like this (i.e. private helper methods). If there is such, can you please post a link to it?
} | ||
|
||
// Generates set[camelCase(fieldName)] | ||
private String setMethodFormat(String fieldName) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
static
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same as above
} | ||
|
||
// Generates: [nameVar].append(":").append([requestVar].get[FieldName]()); | ||
private ExprStatement appendField( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
static
?
} | ||
|
||
// returns var.get(num); | ||
private MethodInvocationExpr getExpr(VariableExpr var, String num) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
static
.apply( | ||
"setPollingRequestFactory", | ||
setPollingRequestFactoryExpr(protoMethod, messageTypes)) | ||
.apply(expr); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just checking: if hasLro and isOperationPollingMethod, it will chain setPollingRequestFactory
after setOperationSnapshotFactory
. Is that correct?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, your undestanding is correct. setOperationSnapshotFactory
is needed by both methods - the ones which start LRO and the ones which poll for LRO status. setPollingRequestFactory
is needed only by polling methods.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Didn't look at golden files. LGTM with some comments I already made.
@googlebot I fixed it. |
ec1eb8d
to
84c04c9
Compare
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [zipp](https://github.com/jaraco/zipp) | `==3.6.0` -> `==3.9.0` | [![age](https://badges.renovateapi.com/packages/pypi/zipp/3.9.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/zipp/3.9.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/zipp/3.9.0/compatibility-slim/3.6.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/zipp/3.9.0/confidence-slim/3.6.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-shared-dependencies). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yMjIuMyIsInVwZGF0ZWRJblZlciI6IjMyLjIyMi4zIn0=-->
🤖 I have created a release *beep* *boop* --- ## [3.0.5](https://github.com/googleapis/java-shared-dependencies/compare/v3.0.4...v3.0.5) (2022-10-20) ### Dependencies * Update dependency com.fasterxml.jackson:jackson-bom to v2.13.4.20221013 ([#868](https://github.com/googleapis/java-shared-dependencies/issues/868)) ([5c2a825](https://github.com/googleapis/java-shared-dependencies/commit/5c2a825c18af61784287dd41eba3a21be80bbe6b)) * Update dependency com.google.auth:google-auth-library-bom to v1.12.0 ([#870](https://github.com/googleapis/java-shared-dependencies/issues/870)) ([3e3a60d](https://github.com/googleapis/java-shared-dependencies/commit/3e3a60dfd45f08401ee3ac7a98007fae21d5bba6)) * Update dependency com.google.auth:google-auth-library-bom to v1.12.1 ([#871](https://github.com/googleapis/java-shared-dependencies/issues/871)) ([4d94c75](https://github.com/googleapis/java-shared-dependencies/commit/4d94c753b46d7f8c787b0efa21d7bc42b1ca1c6c)) * Update dependency com.google.cloud:grpc-gcp to v1.3.0 ([#867](https://github.com/googleapis/java-shared-dependencies/issues/867)) ([48ca222](https://github.com/googleapis/java-shared-dependencies/commit/48ca222a5e4d9f88737d4c4a4ee2a42a7145619e)) * Update dependency com.google.errorprone:error_prone_annotations to v2.16 ([#865](https://github.com/googleapis/java-shared-dependencies/issues/865)) ([d7a494d](https://github.com/googleapis/java-shared-dependencies/commit/d7a494dcd12a529121b74fd9fb9dfc679017f844)) * Update dependency com.google.protobuf:protobuf-bom to v3.21.8 ([#872](https://github.com/googleapis/java-shared-dependencies/issues/872)) ([ebe5d5f](https://github.com/googleapis/java-shared-dependencies/commit/ebe5d5f27dbe4f12c06d3a69c14c74bbf4e76dd1)) * Update dependency gcp-releasetool to v1.8.10 ([#853](https://github.com/googleapis/java-shared-dependencies/issues/853)) ([5c6367a](https://github.com/googleapis/java-shared-dependencies/commit/5c6367a643f491d2ec04be58c1ff0eca5aa10904)) * Update dependency google-api-core to v2.10.2 ([#858](https://github.com/googleapis/java-shared-dependencies/issues/858)) ([bc91e8d](https://github.com/googleapis/java-shared-dependencies/commit/bc91e8df54f9d919a9e0dc69e61d52fd855a8dbf)) * Update dependency io.grpc:grpc-bom to v1.50.0 ([#866](https://github.com/googleapis/java-shared-dependencies/issues/866)) ([50039f4](https://github.com/googleapis/java-shared-dependencies/commit/50039f41bfba37e65685c4a5b279d3cb2a92f2c5)) * Update dependency io.grpc:grpc-bom to v1.50.1 ([#873](https://github.com/googleapis/java-shared-dependencies/issues/873)) ([9fb1561](https://github.com/googleapis/java-shared-dependencies/commit/9fb15613976f83c5545e2b664c488e9811c1f185)) * Update dependency org.checkerframework:checker-qual to v3.26.0 ([#852](https://github.com/googleapis/java-shared-dependencies/issues/852)) ([1e8cd60](https://github.com/googleapis/java-shared-dependencies/commit/1e8cd609b3be0cdd748a8fea6bc0fcb15d8f4c96)) * Update dependency org.threeten:threetenbp to v1.6.3 ([#869](https://github.com/googleapis/java-shared-dependencies/issues/869)) ([e992190](https://github.com/googleapis/java-shared-dependencies/commit/e9921900ec590e281b5ae6e16ab51e7bd67c1242)) * Update dependency typing-extensions to v4.4.0 ([#854](https://github.com/googleapis/java-shared-dependencies/issues/854)) ([c909a13](https://github.com/googleapis/java-shared-dependencies/commit/c909a13fa626eb387c8ee87b7cc22607cb9cf889)) * Update dependency zipp to v3.9.0 ([#859](https://github.com/googleapis/java-shared-dependencies/issues/859)) ([971b84e](https://github.com/googleapis/java-shared-dependencies/commit/971b84eb801699b585cd35300bed8d4fb65046d8)) * Update gax.version to v2.19.4 ([#875](https://github.com/googleapis/java-shared-dependencies/issues/875)) ([2eb7f3d](https://github.com/googleapis/java-shared-dependencies/commit/2eb7f3d6cf834c474dcdc99740f8cdabf50bca51)) * Update google.core.version to v2.8.21 ([#861](https://github.com/googleapis/java-shared-dependencies/issues/861)) ([2fda421](https://github.com/googleapis/java-shared-dependencies/commit/2fda4213796df086450fdc3d69d53a0bd1d59f46)) * Update google.core.version to v2.8.22 ([#879](https://github.com/googleapis/java-shared-dependencies/issues/879)) ([e4f9f9a](https://github.com/googleapis/java-shared-dependencies/commit/e4f9f9ad6373fb52c069985ca4390663ccdacb7d)) * Update iam.version to v1.6.3 ([#857](https://github.com/googleapis/java-shared-dependencies/issues/857)) ([6758373](https://github.com/googleapis/java-shared-dependencies/commit/675837378642f39fe55c0e30b62755b9185bee3d)) * Update iam.version to v1.6.4 ([#862](https://github.com/googleapis/java-shared-dependencies/issues/862)) ([1e1bc34](https://github.com/googleapis/java-shared-dependencies/commit/1e1bc341c9dd0f8f5a2d14aa8dd52399b2ce71c1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
…o v1.35.2 (#859) [![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-client:google-api-client-bom](https://github.com/googleapis/google-api-java-client) | `1.35.1` -> `1.35.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api-client:google-api-client-bom/1.35.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api-client:google-api-client-bom/1.35.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api-client:google-api-client-bom/1.35.2/compatibility-slim/1.35.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api-client:google-api-client-bom/1.35.2/confidence-slim/1.35.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>googleapis/google-api-java-client</summary> ### [`v1.35.2`](https://github.com/googleapis/google-api-java-client/blob/HEAD/CHANGELOG.md#​1352-httpsgithubcomgoogleapisgoogle-api-java-clientcomparev1351v1352-2022-06-30) [Compare Source](https://github.com/googleapis/google-api-java-client/compare/v1.35.1...v1.35.2) ##### Bug Fixes - **deps:** update dependency com.google.api-client:google-api-client to v1.35.1 ([#​2091](https://github.com/googleapis/google-api-java-client/issues/2091)) ([a3b4780](https://github.com/googleapis/google-api-java-client/commit/a3b4780916b5acab86c43db8793a2d10c3e2c4fb)) </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-core).
🤖 I have created a release *beep* *boop* --- ## [2.8.2](googleapis/java-core@v2.8.1...v2.8.2) (2022-07-13) ### Bug Fixes * enable longpaths support for windows test ([#1485](https://github.com/googleapis/java-core/issues/1485)) ([#866](googleapis/java-core#866)) ([8a8ac99](googleapis/java-core@8a8ac99)) ### Dependencies * update dependency com.google.api-client:google-api-client-bom to v1.35.2 ([#859](googleapis/java-core#859)) ([6b51a1c](googleapis/java-core@6b51a1c)) * update dependency com.google.api:gax-bom to v2.18.3 ([#860](googleapis/java-core#860)) ([f5a5278](googleapis/java-core@f5a5278)) * update dependency com.google.api.grpc:proto-google-common-protos to v2.9.1 ([#855](googleapis/java-core#855)) ([4ec6635](googleapis/java-core@4ec6635)) * update dependency com.google.api.grpc:proto-google-iam-v1 to v1.5.0 ([#862](googleapis/java-core#862)) ([19aebbe](googleapis/java-core@19aebbe)) * update dependency com.google.http-client:google-http-client-bom to v1.42.1 ([#861](googleapis/java-core#861)) ([4d7548b](googleapis/java-core@4d7548b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This includes both DIREGAPIC and AIP-151 LRO implementations.
This PR merges changes from diregapic-lro branch to master.