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

feat: introduce java.time #2415

Open
wants to merge 37 commits into
base: main
Choose a base branch
from
Open

feat: introduce java.time #2415

wants to merge 37 commits into from

Conversation

diegomarquezp
Copy link
Contributor

@diegomarquezp diegomarquezp commented Nov 14, 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).

Note: https://cloud.google.com/bigtable/docs/reference/sql/data-types#timestamp_type implies that nanosecond precision will be ignored.

@product-auto-label product-auto-label bot added size: l Pull request size is large. api: bigtable Issues related to the googleapis/java-bigtable API. labels Nov 14, 2024
@diegomarquezp diegomarquezp added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Nov 20, 2024
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Nov 20, 2024
@diegomarquezp
Copy link
Contributor Author

ci / windows failing in several PRs - see this job from #2425

@diegomarquezp diegomarquezp marked this pull request as ready for review November 22, 2024 02:12
@diegomarquezp diegomarquezp requested review from a team as code owners November 22, 2024 02:12
@diegomarquezp diegomarquezp requested a review from lqiu96 November 25, 2024 20:03
@igorbernstein2 igorbernstein2 added the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Dec 3, 2024
@igorbernstein2 igorbernstein2 marked this pull request as draft December 3, 2024 19:19
@diegomarquezp diegomarquezp requested a review from lqiu96 December 6, 2024 18:56
@diegomarquezp diegomarquezp marked this pull request as ready for review December 6, 2024 18:57
@product-auto-label product-auto-label bot added size: m Pull request size is medium. and removed size: l Pull request size is large. labels Dec 6, 2024
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. Bigtable team for final approval

@diegomarquezp diegomarquezp removed the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Dec 7, 2024
Copy link
Contributor

@mutianf mutianf left a comment

Choose a reason for hiding this comment

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

I reviewed the following:

  • common/Type.java
  • data/v2/BigtableDataSettings.java
  • data/v2/stub
  • data/v2/metrics
  • gaxx/retrying
  • and tests related to these changes.

@@ -124,9 +123,10 @@ public void attemptCancelled() {
}
}

public void attemptFailed(Throwable error, Duration delay) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Instead of deleting this method, should attemptFailled call attemptFailedDuration?

@@ -38,7 +38,7 @@ public class BigtableBatchingCallSettingsTest {
BatchingSettings.newBuilder()
.setElementCountThreshold(10L)
.setRequestByteThreshold(20L)
.setDelayThreshold(Duration.ofMillis(5))
Copy link
Contributor

Choose a reason for hiding this comment

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

Im wondering if we should keep the test code the same so that we can verify these settings are ported to the new settings correctly? We can leave a todo to update them in a separate PR.

@@ -149,11 +149,11 @@ public void testAttemptCancelled() {
public void testAttemptFailed() {
RuntimeException error = new RuntimeException();
Duration delay = Duration.ofMillis(10);
compositeTracer.attemptFailed(error, delay);
Copy link
Contributor

Choose a reason for hiding this comment

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

same here, I think we should keep calling attemptFailed and verify attemptFailedDuration gets called?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: bigtable Issues related to the googleapis/java-bigtable API. size: m Pull request size is medium.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants