Skip to content

feat: introduce java.time variables and methods #3495

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

Merged
merged 6 commits into from
Dec 5, 2024

Conversation

diegomarquezp
Copy link
Contributor

This PR introduces java.time alternatives to existing org.threeten.bp.* methods, as well as switching internal variables (if any) to java.time

The main constraint is to keep the changes backwards compatible, so for each existing threeten method "method1(org.threeten.bp.Duration)" we will add an alternative with a Duration (or Timestamp when applicable) suffix: "method1Duration(java.time.Duration)".

For most cases, the implementation will be held in the java.time method and the old threeten method will just delegate the call to it. However, for the case of abstract classes, the implementation will be kept in the threeten method to avoid breaking changes (i.e. users that already overloaded the method in their user code).

@diegomarquezp diegomarquezp requested a review from a team as a code owner November 21, 2024 20:32
@product-auto-label product-auto-label bot added the size: l Pull request size is large. label Nov 21, 2024
@diegomarquezp diegomarquezp marked this pull request as draft November 21, 2024 20:32
@product-auto-label product-auto-label bot added the api: spanner Issues related to the googleapis/java-spanner API. label Nov 21, 2024
@diegomarquezp diegomarquezp added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Nov 21, 2024
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Nov 21, 2024
@diegomarquezp diegomarquezp marked this pull request as ready for review November 21, 2024 22:50
@diegomarquezp diegomarquezp requested a review from a team as a code owner November 21, 2024 22:50
@diegomarquezp diegomarquezp requested a review from lqiu96 November 21, 2024 22:50
@diegomarquezp diegomarquezp requested a review from lqiu96 November 22, 2024 19:11
@@ -275,7 +275,7 @@ public void onSessionCreateFailure(Throwable t, int createFailureForSessionCount

private static void maybeWaitForSessionCreation(
SessionPoolOptions sessionPoolOptions, ApiFuture<SessionReference> future) {
org.threeten.bp.Duration waitDuration = sessionPoolOptions.getWaitForMinSessions();
java.time.Duration waitDuration = sessionPoolOptions.getWaitForMinSessions();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: java.time.Duration is already imported in this class. Can't we just remove org.threeten.bp.

@@ -109,7 +108,7 @@ public void attemptCancelled() {
}

@Override
public void attemptFailed(Throwable error, Duration delay) {
public void attemptFailed(Throwable error, org.threeten.bp.Duration delay) {
Copy link
Collaborator

@sakthivelmanii sakthivelmanii Nov 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Can we import java.time.Duration so that we can remove java.time. in attemptFailedDuration method? https://github.com/googleapis/java-spanner/blob/main/google-cloud-spanner/src/main/java/com/google/cloud/spanner/CompositeTracer.java#L119

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@Override
public void attemptFailed(Throwable error, Duration delay) {
public void attemptFailedDuration(Throwable error, java.time.Duration delay) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Can we import java.time.Duration?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -63,8 +66,8 @@ public class SessionPoolOptions {
@Deprecated private final long initialWaitForSessionTimeoutMillis;

private final boolean autoDetectDialect;
private final Duration waitForMinSessions;
private final Duration acquireSessionTimeout;
private final java.time.Duration waitForMinSessions;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: We can import java.time.Duration so that in future we don't have a confusion on which class to use

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and also it avoids so many changes in the code which is not really necessary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@sakthivelmanii
Copy link
Collaborator

sakthivelmanii commented Nov 26, 2024

@diegomarquezp Can we make sure following in all the files?

import java.time.Duration in all the files(whereever is required) and use org.threeten.bp.Duration directly in obsolete methods. This avoids lot of code changes which is unnecessary. This also provides the standard that java.time.Duration should be used.

@diegomarquezp
Copy link
Contributor Author

diegomarquezp commented Nov 27, 2024

@diegomarquezp Can we make sure following in all the files?

import java.time.Duration in all the files(whereever is required) and use org.threeten.bp.Duration directly in obsolete methods. This avoids lot of code changes which is unnecessary. This also provides the standard that java.time.Duration should be used.

@sakthivelmanii Thanks for the review! Before switching to import java.time.Duration I'd like to double check if our rationale for not importing java.time.* seems sound to you: this is mainly to make it clear to the reader that there are two Duration/Instant classes coexisting in the same file and attention should be paid. We deliberately added these changes just to make this differentiation as explicit as possible. We've been doing it this way in other repos (e.g. googleapis/java-pubsub#2271 (comment)) (doesn't mean it should be done as in other repos).

Promoting java.time as the standard also makes sense, and it's ultimately the Spanner team's call, but wanted to make sure our approach doesn't come up as unintended. I'm happy to move forward either way.

@@ -106,26 +106,26 @@ public boolean hasDuration() {
});
}

org.threeten.bp.Duration asDuration() {
java.time.Duration asDuration() {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to keep this one in favor of com.google.protobuf.Duration

Copy link
Contributor

@lqiu96 lqiu96 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Spanner team for approval.

@diegomarquezp diegomarquezp added the automerge Merge the pull request once unit tests and other checks pass. label Dec 5, 2024
@gcf-merge-on-green gcf-merge-on-green bot merged commit 8a7d533 into main Dec 5, 2024
34 checks passed
@gcf-merge-on-green gcf-merge-on-green bot removed the automerge Merge the pull request once unit tests and other checks pass. label Dec 5, 2024
@gcf-merge-on-green gcf-merge-on-green bot deleted the introduce-java-time branch December 5, 2024 17:22
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Dec 16, 2024
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.49.0` -> `2.50.0` |
|
[com.google.cloud:google-cloud-core-http](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.48.0` -> `2.49.0` |
|
[com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`6.82.0` -> `6.83.0` |
|
[com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`3.20.7` -> `3.21.0` |
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.24.3` -> `2.25.1` |
|
[com.google.cloud:google-cloud-core](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.48.0` -> `2.49.0` |
| [com.google.api:gax](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.58.0` -> `2.59.0` |
|
[com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)
| plugin | misk/gradle/libs.versions.toml | gradle | patch | `2.6.0` ->
`2.6.1` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.43.0` -> `1.44.1` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.43.0` -> `1.44.1` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [com.amazonaws:aws-java-sdk-sqs](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
| [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
|
[com.amazonaws:aws-java-sdk-dynamodb](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
| [com.amazonaws:aws-java-sdk-core](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |

---

### Release Notes

<details>
<summary>googleapis/sdk-platform-java
(com.google.api.grpc:proto-google-common-protos)</summary>

###
[`v2.50.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2500-2024-11-14)

##### Features

- Add experimental S2A integration in client libraries grpc transport
([#&#8203;3326](googleapis/sdk-platform-java#3326))
([1138ca6](googleapis/sdk-platform-java@1138ca6))
- enable selective generation based on service config include list
([#&#8203;3323](googleapis/sdk-platform-java#3323))
([0cddadb](googleapis/sdk-platform-java@0cddadb))
- introduce `java.time` to java-core
([#&#8203;3330](googleapis/sdk-platform-java#3330))
([f202c3b](googleapis/sdk-platform-java@f202c3b))
- Update Gapic-Generator to generate libraries using `java.time` methods
([#&#8203;3321](googleapis/sdk-platform-java#3321))
([b21c9a4](googleapis/sdk-platform-java@b21c9a4))

##### Bug Fixes

- Fix flaky test
ScheduledRetryingExecutorTest.testCancelOuterFutureAfterStart
([#&#8203;3335](googleapis/sdk-platform-java#3335))
([e73740d](googleapis/sdk-platform-java@e73740d))
- httpjson callables to trace attempts (started, failed)
([#&#8203;3300](googleapis/sdk-platform-java#3300))
([15a64ee](googleapis/sdk-platform-java@15a64ee))
- instantiate GaxProperties at build time to ensure we get the protobuf
version
([#&#8203;3365](googleapis/sdk-platform-java#3365))
([bb2a3be](googleapis/sdk-platform-java@bb2a3be))
- protobuf version not always getting set in headers
([#&#8203;3322](googleapis/sdk-platform-java#3322))
([7f6e470](googleapis/sdk-platform-java@7f6e470))
- use BuildKit instead of legacy builder to build the Hermetic Build
images
([#&#8203;3338](googleapis/sdk-platform-java#3338))
([222fb45](googleapis/sdk-platform-java@222fb45))

##### Dependencies

- update google auth library dependencies to v1.30.0
([#&#8203;3367](googleapis/sdk-platform-java#3367))
([a31c682](googleapis/sdk-platform-java@a31c682))
- update grpc dependencies to v1.68.1
([#&#8203;3240](googleapis/sdk-platform-java#3240))
([c8e3941](googleapis/sdk-platform-java@c8e3941))

##### Documentation

- fix list num
([#&#8203;3356](googleapis/sdk-platform-java#3356))
([b7d6296](googleapis/sdk-platform-java@b7d6296))
- **hermetic-build:** indicate usage of Docker Buildkit in development
guide
([#&#8203;3337](googleapis/sdk-platform-java#3337))
([01e742d](googleapis/sdk-platform-java@01e742d))
- modify hermetic build docs
([#&#8203;3331](googleapis/sdk-platform-java#3331))
([25023af](googleapis/sdk-platform-java@25023af))

</details>

<details>
<summary>googleapis/java-spanner
(com.google.cloud:google-cloud-spanner)</summary>

###
[`v6.83.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6830-2024-12-13)

##### Features

- Add Metrics host for built in metrics
([#&#8203;3519](googleapis/java-spanner#3519))
([4ed455a](googleapis/java-spanner@4ed455a))
- Add opt-in for using multiplexed sessions for blind writes
([#&#8203;3540](googleapis/java-spanner#3540))
([216f53e](googleapis/java-spanner@216f53e))
- Add UUID in Spanner TypeCode enum
([41f83dc](googleapis/java-spanner@41f83dc))
- Introduce java.time variables and methods
([#&#8203;3495](googleapis/java-spanner#3495))
([8a7d533](googleapis/java-spanner@8a7d533))
- **spanner:** Support multiplexed session for Partitioned operations
([#&#8203;3231](googleapis/java-spanner#3231))
([4501a3e](googleapis/java-spanner@4501a3e))
- Support 'set local' for retry_aborts_internally
([#&#8203;3532](googleapis/java-spanner#3532))
([331942f](googleapis/java-spanner@331942f))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([41f83dc](googleapis/java-spanner@41f83dc))

##### Dependencies

- Update sdk platform java dependencies
([#&#8203;3549](googleapis/java-spanner#3549))
([6235f0f](googleapis/java-spanner@6235f0f))

</details>

<details>
<summary>googleapis/java-logging
(com.google.cloud:google-cloud-logging)</summary>

###
[`v3.21.0`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3210-2024-12-13)

##### Features

- Introduce `java.time` methods
([#&#8203;1729](googleapis/java-logging#1729))
([323eb33](googleapis/java-logging@323eb33))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([04d8868](googleapis/java-logging@04d8868))

##### Dependencies

- Update dependency io.opentelemetry:opentelemetry-bom to v1.45.0
([#&#8203;1638](googleapis/java-logging#1638))
([7e007d4](googleapis/java-logging@7e007d4))
- Update sdk platform java dependencies
([#&#8203;1736](googleapis/java-logging#1736))
([88b4cdf](googleapis/java-logging@88b4cdf))

</details>

<details>
<summary>googleapis/java-datastore
(com.google.cloud:google-cloud-datastore)</summary>

###
[`v2.25.1`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2251-2024-12-13)

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([106ee4d](googleapis/java-datastore@106ee4d))

##### Dependencies

- Update sdk platform java dependencies
([#&#8203;1685](googleapis/java-datastore#1685))
([4372350](googleapis/java-datastore@4372350))

###
[`v2.25.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2250-2024-12-11)

##### Features

- Introduce `java.time` methods and variables
([#&#8203;1671](googleapis/java-datastore#1671))
([5a78a80](googleapis/java-datastore@5a78a80))

##### Dependencies

- Update dependency com.google.cloud:gapic-libraries-bom to v1.48.0
([#&#8203;1605](googleapis/java-datastore#1605))
([5c6a678](googleapis/java-datastore@5c6a678))

##### Documentation

- Update gapic upgrade installation instructions
([#&#8203;1677](googleapis/java-datastore#1677))
([b3fbfcc](googleapis/java-datastore@b3fbfcc))

</details>

<details>
<summary>autonomousapps/dependency-analysis-android-gradle-plugin
(com.autonomousapps.dependency-analysis)</summary>

###
[`v2.6.1`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-261)

-   \[Fix]: `superClassName` can be null (Object has no superclass).

</details>

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.44.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.1):
1.44.1

##### Components

##### Continuous Integration Visibility

- 🐛 Fix tracing JUnit5 tests in Maven projects with multiple forks
([#&#8203;8089](DataDog/dd-trace-java#8089) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

###
[`v1.44.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.0):
1.44.0

##### Known Issues

> \[!WARNING]\
> This release contains a known issue that causes failures when using
Test Optimization to trace JUnit 5 tests in a Maven project where Maven
Surefire is configured with `forkCount` > 1.
> The issue is fixed in v1.44.1

##### Breaking Changes

> \[!WARNING]\
> Support for `X-Forwarded` header is dropped from default client IP
resolution.
> It can still be re-activated using the
`dd.trace.client-ip-header=x-forwarded` system property, or the
`DD_TRACE_CLIENT_IP_HEADER=x-forwarded` environment variable. See
[#&#8203;7946](DataDog/dd-trace-java#7946).

##### Components

##### Application Security Management (IAST)

- ✨ Set unexpected IAST exceptions to debug log level
([#&#8203;8044](DataDog/dd-trace-java#8044) -
[@&#8203;smola](https://github.com/smola))
- ✨ Increase IAST propagation to StringBuffer subSequence
([#&#8203;8038](DataDog/dd-trace-java#8038) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Increase IAST propagation to StringBuilder subSequence
([#&#8203;8026](DataDog/dd-trace-java#8026) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Add IAST propagation to String valueOf
([#&#8203;8013](DataDog/dd-trace-java#8013) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Increase IAST propagation to StringBuilder append
([#&#8203;8010](DataDog/dd-trace-java#8010) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Expand SSRF support in IAST to apache-httpclient-5 and
apache-httpasyncclient-4
([#&#8203;7920](DataDog/dd-trace-java#7920) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Build & Tooling

- ✨ Generate Muzzle classes for Groovy instrumentations
([#&#8203;8004](DataDog/dd-trace-java#8004) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

##### Continuous Integration Visibility

- ✨ Support distributed traces in tests
([#&#8203;8078](DataDog/dd-trace-java#8078) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement fail-fast tests ordering for JUnit 5
([#&#8203;8055](DataDog/dd-trace-java#8055) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Mark JUnit 5 setup and teardown action spans as failed if
there is an error
([#&#8203;8033](DataDog/dd-trace-java#8033) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add tracing of setup and teardown actions in JUnit 4
([#&#8203;8030](DataDog/dd-trace-java#8030) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

##### Crash tracking

- ✨ Improve crash tracking install logging
([#&#8203;8045](DataDog/dd-trace-java#8045) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Data Streams Monitoring

- 🐛 Add Data Streams support in AWS SQS without raw message delivery
([#&#8203;8071](DataDog/dd-trace-java#8071) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))
- ✨ Add new tag for enabled products / features to DSM
checkpoints
([#&#8203;8051](DataDog/dd-trace-java#8051) -
[@&#8203;kr-igor](https://github.com/kr-igor))
- 💡 Instrument self hosted Kafka connectors
([#&#8203;7959](DataDog/dd-trace-java#7959) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### Dynamic Instrumentation

- ✨ Add Micronaut 4 support for code origin for spans
([#&#8203;8039](DataDog/dd-trace-java#8039) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Refactor probe matching for methods
([#&#8203;8021](DataDog/dd-trace-java#8021) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Update the CodeOriginProbe fingerprint to not rely on a
stack walk
([#&#8203;8016](DataDog/dd-trace-java#8016) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Implement code origin support for grpc server entry spans
([#&#8203;7942](DataDog/dd-trace-java#7942) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### GraalVM native-image

- 🐛 Update Graal build-time instrumentation config for
TracePropagationStyle
([#&#8203;8065](DataDog/dd-trace-java#8065) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Fix NoClassDefFoundError: Could not initialize class
DDSpanLink$EncoderHolder in Graal native-image
([#&#8203;8036](DataDog/dd-trace-java#8036) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛🧹 Fix native-image generation of reactive applications
([#&#8203;8012](DataDog/dd-trace-java#8012) -
[@&#8203;mcculls](https://github.com/mcculls))

##### OpenTracing

- 🧹 Custom ScopeManagers are deprecated and will be removed in a
future release of dd-trace-ot
([#&#8203;8058](DataDog/dd-trace-java#8058) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Tracer core

- ✨🧪 Service naming: split by jee deployment
([#&#8203;8064](DataDog/dd-trace-java#8064) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Exclude jboss mdb proxies from instrumenting
([#&#8203;8061](DataDog/dd-trace-java#8061) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add a built-in trace interceptor for keeping traces
depending of their latency
([#&#8203;8040](DataDog/dd-trace-java#8040) -
[@&#8203;cecile75](https://github.com/cecile75))
- 💡 Introduce marker mechanism for eagerly initializing helpers
([#&#8203;8028](DataDog/dd-trace-java#8028) -
[@&#8203;mcculls](https://github.com/mcculls))
- 💡 Add JSON component
([#&#8203;7973](DataDog/dd-trace-java#7973) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨⚠️ Remove support for X-Forwarded in client IP
resolution
([#&#8203;7946](DataDog/dd-trace-java#7946) -
[@&#8203;smola](https://github.com/smola))

##### Instrumentations

##### Apache HttpComponents

- ✨ Expand SSRF support in IAST to apache-httpclient-5 and
apache-httpasyncclient-4
([#&#8203;7920](DataDog/dd-trace-java#7920) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### gRPC instrumentation

- 🐛 Use lower priorities for grpc server errors
([#&#8203;8043](DataDog/dd-trace-java#8043) -
[@&#8203;amarziali](https://github.com/amarziali))

##### JDBC instrumentation

- ✨ Add trace injection for prepared statements in Postgres
([#&#8203;7940](DataDog/dd-trace-java#7940) -
[@&#8203;nenadnoveljic](https://github.com/nenadnoveljic))

##### JMS instrumentation

- 🐛 Protect mdb from instrumenting multiple time the same event
([#&#8203;8062](DataDog/dd-trace-java#8062) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Kafka instrumentation

- 💡 Instrument self hosted Kafka connectors
([#&#8203;7959](DataDog/dd-trace-java#7959) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### OpenTelemetry instrumentation

- 🐛 Support using OpenTelemetry Event API inside `@WithSpan`
annotated method
([#&#8203;8019](DataDog/dd-trace-java#8019) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Reactor instrumentation

- 🐛🧹 Fix native-image generation of reactive applications
([#&#8203;8012](DataDog/dd-trace-java#8012) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Spring instrumentation

- 🐛 Avoid double instrumenting lambdas on latest spring scheduling
([#&#8203;8005](DataDog/dd-trace-java#8005) -
[@&#8203;amarziali](https://github.com/amarziali))

##### All other instrumentations

- 🐛 Twilio: allow service name flattening
([#&#8203;8025](DataDog/dd-trace-java#8025) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Instrument Mulesoft 4.5.0+
([#&#8203;7981](DataDog/dd-trace-java#7981) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

<details>
<summary>aws/aws-sdk-java (com.amazonaws:aws-java-sdk-sqs)</summary>

###
[`v1.12.780`](https://github.com/aws/aws-sdk-java/blob/HEAD/CHANGELOG.md#112780-2024-12-11)

[Compare
Source](aws/aws-sdk-java@1.12.779...1.12.780)

#### **Amazon Simple Storage Service**

-   ### Bugfixes
- AWS SDK for Java 1.x now includes additional validation for Amazon S3
client APIs to handle scenarios where an empty string ('') is passed as
the key argument to the following operations: PutObject, DeleteObject,
ListObjects, GetObjectMetaData, ListObjectsV2, SetObjectTagging,
GetObjectTagging, SetObjectAcl, GetObjectAcl, SetObjectLegalHold,
GetObjectLegalHold, CopyObject, CopyPart, SelectObjectContent,
SetObjectRetention, GetObjectRetention, AbortMultipartUpload,
CompleteMultipartUpload, InitiateMultipartUpload, ListParts, UploadPart,
RestoreObjectV2, and RestoreObject. The SDK will validate the key
argument and throw an exception if it is an empty string, ensuring
correct and expected behavior.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

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

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 69831bc62ea4d80cdcd42cef2aa9bd8eda28ae8c
surbhigarg92 pushed a commit to surbhigarg92/java-spanner that referenced this pull request Dec 26, 2024
This PR introduces `java.time` alternatives to existing `org.threeten.bp.*` methods, as well as switching internal variables (if any) to `java.time`

The main constraint is to keep the changes backwards compatible, so for each existing threeten method "`method1(org.threeten.bp.Duration)`" we will add an alternative with a _Duration_ (or _Timestamp_ when applicable) suffix: "`method1Duration(java.time.Duration)`".

For most cases, the implementation will be held in the `java.time` method and the old threeten method will just delegate the call to it. However, for the case of abstract classes, the implementation will be kept in the threeten method to avoid breaking changes (i.e. users that already overloaded the method in their user code).
gagangupt16 pushed a commit to gagangupt16/java-spanner that referenced this pull request Dec 27, 2024
This PR introduces `java.time` alternatives to existing `org.threeten.bp.*` methods, as well as switching internal variables (if any) to `java.time`

The main constraint is to keep the changes backwards compatible, so for each existing threeten method "`method1(org.threeten.bp.Duration)`" we will add an alternative with a _Duration_ (or _Timestamp_ when applicable) suffix: "`method1Duration(java.time.Duration)`".

For most cases, the implementation will be held in the `java.time` method and the old threeten method will just delegate the call to it. However, for the case of abstract classes, the implementation will be kept in the threeten method to avoid breaking changes (i.e. users that already overloaded the method in their user code).
harshachinta added a commit that referenced this pull request Apr 28, 2025
* feat: Add Metrics host for built in metrics (#3519)

This PR allows users to set the custom monitoring host for built in metrics.

* feat: introduce java.time variables and methods (#3495)

This PR introduces `java.time` alternatives to existing `org.threeten.bp.*` methods, as well as switching internal variables (if any) to `java.time`

The main constraint is to keep the changes backwards compatible, so for each existing threeten method "`method1(org.threeten.bp.Duration)`" we will add an alternative with a _Duration_ (or _Timestamp_ when applicable) suffix: "`method1Duration(java.time.Duration)`".

For most cases, the implementation will be held in the `java.time` method and the old threeten method will just delegate the call to it. However, for the case of abstract classes, the implementation will be kept in the threeten method to avoid breaking changes (i.e. users that already overloaded the method in their user code).

* chore(spanner): support multiplexed session for rw transactions in ex… (#3471)

* chore(spanner): support multiplexed session for rw transactions in executor

* chore(spanner): lint fix

* chore: remove unused code and fix some warnings (#3533)

* feat(spanner): support multiplexed session for Partitioned operations (#3231)

* feat(spanner): support multiplexed session for Partitioned read or query.

* chore(spanner): lint fixes

* feat(spanner): support multiplexed session for Partitioned DML operations.

* lint(spanner): javadoc fixes.

* feat(spanner): Updated unit tests of Partitioned operations for Multiplexed Session.

* feat(spanner): Updated unit tests of Partitioned operations for Multiplexed Session.

* lint(spanner): Apply suggestions from code review

Co-authored-by: Knut Olav Løite <[email protected]>

* lint(spanner): Apply suggestions from code review

Co-authored-by: Knut Olav Løite <[email protected]>

* feat(spanner): Modified BatchClientImpl to store multiplexed session and create fresh session after expiration date.

* feat(spanner): Removed env variable for Partitioned Ops ensuring that Multiplexed Session for Partitioned Ops is not available to customers.

* lint(spanner): Removed unused variables.

---------

Co-authored-by: Knut Olav Løite <[email protected]>

* test: enable more tests on the Emulator (#3535)

Multiple tests were skipped on the Emulator, because the features that
are covered by these tests were originally not supported on the
Emulator. These features are now available on the Emulator, and the
tests can be enabled.

* ci(spanner): Fix nightly job issues (#3522)

* ci(spanner): Fix nightly job permission issue

* update scope for surefire-junit4

* chore: add internal option for statement executor type (#3534)

The Connection API by default uses either a platform thread or a virtual thread
for each connection to execute and control the statements of that connection. This
is used to enable asynchronous execution of statements and allows a statement to
be cancelled by just interrupting this thread. Both these use cases are however
not (or only very rarely) used by the most common users of the Connection API;
the JDBC driver and PGAdapter. PGAdapter uses the PostgreSQL wire-protocol, which
by design is synchronous, and JDBC is also a synchronous API. The latter has a
cancel() method that currently requires this threading model, but this can be
modified in the JDBC driver.

Using a direct executor instead of a single-threaded executor per connection can
save one thread per connection.

The option is intentionally made package-private, so the above-mentioned
frameworks can set it by default without it becoming part of the public API.

* feat: support 'set local' for retry_aborts_internally (#3532)

Adds support for `set local retry_aborts_internally=true|false` in the
Connection API. This change also adds the parsing infrastructure that is
needed to support `set local` for all connection variables. Support for
this will be added to other connection variables in follow-up pull requests.

* feat: add opt-in for using multiplexed sessions for blind writes (#3540)

* feat(spanner): Releasing Multiplexed session for blind write.

* fix(spanner): Added exception for `setUseMultiplexedSessionBlindWrite` in Clirr check. Removing this is safe as it's not used by customers.

* fix(spanner): Fixed unit test for multiplexed session.

* ci(spanner): clean up unused kokoro configurations (#3542)

* ci(spanner): clean up unused kokoro configurations

* chore: generate libraries at Tue Dec 10 09:54:10 UTC 2024

---------

Co-authored-by: cloud-java-bot <[email protected]>

* test(spanner): Enabled multiplexed session for partitioned operations in systest. (#3545)

* chore(main): release 6.82.1-SNAPSHOT (#3526)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* deps: update sdk platform java dependencies (#3549)

* chore: reset default to platform thread (#3551)

Reset the default to using a platform thread for connections. This was the
default before adding an option for setting the executor type, and the new
default is causing problems with the async Connection API.

Fixes #3541

* chore: Update generation configuration at Fri Dec 13 16:21:35 UTC 2024 (#3523)

* chore: Update generation configuration at Wed Dec  4 02:29:01 UTC 2024

* chore: Update generation configuration at Thu Dec  5 02:29:11 UTC 2024

* chore: Update generation configuration at Fri Dec  6 02:28:46 UTC 2024

* chore: generate libraries at Fri Dec  6 02:29:25 UTC 2024

* chore: Update generation configuration at Sat Dec  7 02:28:09 UTC 2024

* chore: Update generation configuration at Tue Dec 10 02:29:37 UTC 2024

* chore: Update generation configuration at Wed Dec 11 02:28:47 UTC 2024

* chore: Update generation configuration at Thu Dec 12 02:29:08 UTC 2024

* chore: generate libraries at Thu Dec 12 02:29:50 UTC 2024

* chore: Update generation configuration at Fri Dec 13 02:29:25 UTC 2024

* chore: Update generation configuration at Fri Dec 13 16:21:35 UTC 2024

* chore: generate libraries at Fri Dec 13 16:22:12 UTC 2024

* update workflow script

---------

Co-authored-by: rahul2393 <[email protected]>
Co-authored-by: Joe Wang <[email protected]>

* chore(main): release 6.83.0 (#3547)

* chore(main): release 6.83.0

* chore: generate libraries at Fri Dec 13 17:19:20 UTC 2024

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: cloud-java-bot <[email protected]>

* chore: make state field volatile in AsyncResultSetImpl (#3550)

* chore: make state field volatile in AsyncResultSetImpl

Mark the `state` field in `AsyncResultSetImpl` volatile, as it is
inspected by different threads.

* fix: protect writes with monitor

---------

Co-authored-by: rahul2393 <[email protected]>

* chore: make valid connection properties public (#3546)

Make the list of valid connection properties public, so tools that
depend on the Connection API can use this to for example generate
documentation for valid properties.

Also add valid values to the connection properties that have that
(e.g. enums and booleans).

Co-authored-by: rahul2393 <[email protected]>

* deps: update opentelemetry.version to v1.45.0 (#3531)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [io.opentelemetry:opentelemetry-sdk-testing](https://redirect.github.com/open-telemetry/opentelemetry-java) | `1.44.1` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry:opentelemetry-sdk-testing/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.opentelemetry:opentelemetry-sdk-testing/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.opentelemetry:opentelemetry-sdk-testing/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry:opentelemetry-sdk-testing/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [io.opentelemetry:opentelemetry-sdk-trace](https://redirect.github.com/open-telemetry/opentelemetry-java) | `1.44.1` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry:opentelemetry-sdk-trace/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.opentelemetry:opentelemetry-sdk-trace/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.opentelemetry:opentelemetry-sdk-trace/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry:opentelemetry-sdk-trace/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [io.opentelemetry:opentelemetry-sdk-metrics](https://redirect.github.com/open-telemetry/opentelemetry-java) | `1.44.1` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry:opentelemetry-sdk-metrics/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.opentelemetry:opentelemetry-sdk-metrics/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.opentelemetry:opentelemetry-sdk-metrics/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry:opentelemetry-sdk-metrics/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [io.opentelemetry:opentelemetry-sdk](https://redirect.github.com/open-telemetry/opentelemetry-java) | `1.44.1` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry:opentelemetry-sdk/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.opentelemetry:opentelemetry-sdk/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.opentelemetry:opentelemetry-sdk/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry:opentelemetry-sdk/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-java (io.opentelemetry:opentelemetry-sdk-testing)</summary>

### [`v1.45.0`](https://redirect.github.com/open-telemetry/opentelemetry-java/blob/HEAD/CHANGELOG.md#Version-1450-2024-12-06)

[Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-java/compare/v1.44.1...v1.45.0)

##### API

-   Add convenience method `setAttribute(Attribute<Long>, int)` to SpanBuilder (matching the existing
    convenience method in Span)
    ([#&#8203;6884](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6884))
-   Extends TextMapGetter with experimental GetAll() method, implement usage in W3CBaggagePropagator
    ([#&#8203;6852](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6852))

##### SDK

##### Traces

-   Add synchronization to SimpleSpanProcessor to ensure thread-safe export of spans
    ([#&#8203;6885](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6885))

##### Metrics

-   Lazily initialize ReservoirCells
    ([#&#8203;6851](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6851))

##### Logs

-   Add synchronization to SimpleLogRecordProcessor to ensure thread-safe export of logs
    ([#&#8203;6885](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6885))

##### Exporters

-   OTLP: Update opentelementry-proto to 1.4
    ([#&#8203;6906](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6906))
-   OTLP: Rename internal Marshaler#writeJsonToGenerator method to allow jackson runtimeOnly dependency
    ([#&#8203;6896](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6896))
-   OTLP: Fix repeated string serialization for JSON.
    ([#&#8203;6888](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6888))
-   OTLP: Fix missing unsafe available check
    ([#&#8203;6920](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6920))

##### Extensions

-   Declarative config: Don't require empty objects when referencing custom components
    ([#&#8203;6891](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6891))

##### Tooling

-   Add javadoc boilerplate internal comment v2 for experimental classes
    ([#&#8203;6886](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6886))
-   Update develocity configuration
    ([#&#8203;6903](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/6903))

</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 these updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/googleapis/java-spanner).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

* chore(main): release 6.83.1-SNAPSHOT (#3554)

: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).

* feat(spanner): add jdbc support for external hosts (#3536)

* feat(spanner): add jdbc support for external hosts

* feat(spanner): added default port value and unit tests

* feat(spanner): fixed redundant class name typo

* ci(spanner): improve performance of samples tests (#3558)

* test: unflake RetryOnInvalidatedSessionTest (#3561)

* ci(spanner): Create a new Sample Slow tests (#3560)

* ci(spanner): Create a new Sample Slow tests

* Fix delete backup issue in autogenerated admin client

* chore: Update generation configuration at Sat Dec 14 02:27:24 UTC 2024 (#3555)

Co-authored-by: rahul2393 <[email protected]>

* test: enable write tests for PostgreSQL (#3529)

* chore: include session min/max in error message (#3566)

* fix: retry specific internal errors (#3565)

* chore: make internal auth backend errors retryable

Spanner occasionally returns INTERNAL errors regarding the auth backend server.
These errors should be regarded as retryable.

* fix: retry specific internal errors

Some specific internal errors should be retrid. Instead of adding INTERNAL
as a standard retryable error code, we use an interceptor to catch and
translate those specific errors.

See also b/375684610

* chore: address review comments

* fix: wait for session pool to initialize

* fix: register errors before creating the client

* chore: disable native metrics when there are no credentials (#3567)

* chore: disable native metrics when there are no credentials

Native metrics were automatically disabled when the emulator is used, but
some clients (e.g. PGAdapter) set up the connection to the emulator manually
instead of setting the environment variable. Also, when using in-mem mock
servers, native metrics should be disabled, as they cannot be exported.

This PR therefore adds an additional check that disables native metrics
when the client uses a NoCredentials instance.

* chore: make method private

* feat: add support for ARRAY<STRUCT> to CloudCilentExecutor (#3544)

There are SPANNER_SYS tables that contain ARRAY<STRUCT> columns. Adding support for this in the CloudClientExecutor so that queries involving these tables do not throw an error.

* chore: Update generation configuration at Wed Dec 18 05:50:09 UTC 2024 (#3564)

* chore: Update generation configuration at Wed Dec 18 05:50:09 UTC 2024

* chore: generate libraries at Wed Dec 18 05:59:39 UTC 2024

* feat: support for UUID type

* feat: support for UUID type

* fix: unit tests for UUID type

* fix: ignore uuid methods for clirr plugin

* style: fix indentation

* style: fix formatting issue

* docs: added TODO for removing env checks for integration tests for UUID

* fix: add missing return statement

* refactor: use internal methods and remove unused code

* fix: make it binary compatible while adding implementation for UUID methods in AbstractStructReader

* style: formatting fix

---------

Co-authored-by: surbhigarg92 <[email protected]>
Co-authored-by: Diego Marquez <[email protected]>
Co-authored-by: Sri Harsha CH <[email protected]>
Co-authored-by: Knut Olav Løite <[email protected]>
Co-authored-by: Pratick Chokhani <[email protected]>
Co-authored-by: Sakthivel Subramanian <[email protected]>
Co-authored-by: cloud-java-bot <[email protected]>
Co-authored-by: Pratick Chokhani <[email protected]>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Mend Renovate <[email protected]>
Co-authored-by: cloud-java-bot <[email protected]>
Co-authored-by: rahul2393 <[email protected]>
Co-authored-by: Joe Wang <[email protected]>
Co-authored-by: Sagnik Ghosh <[email protected]>
Co-authored-by: larkee <[email protected]>
Co-authored-by: Gagan Gupta <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: spanner Issues related to the googleapis/java-spanner API. size: l Pull request size is large.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants