- Notifications
You must be signed in to change notification settings - Fork 320
Fix native-image generation of reactive applications #8012
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
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 55 metrics, 8 unstable metrics. Startup time reports for petclinicgantt title petclinic - global startup overhead: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87 dateFormat X axisFormat %s section tracing Agent [baseline] (1.093 s) : 0, 1093020 Total [baseline] (10.425 s) : 0, 10424791 Agent [candidate] (1.097 s) : 0, 1097170 Total [candidate] (10.45 s) : 0, 10449811 section appsec Agent [baseline] (1.227 s) : 0, 1227360 Total [baseline] (10.752 s) : 0, 10751938 Agent [candidate] (1.235 s) : 0, 1235459 Total [candidate] (10.923 s) : 0, 10922653 section iast Agent [baseline] (1.226 s) : 0, 1226278 Total [baseline] (10.98 s) : 0, 10979573 Agent [candidate] (1.238 s) : 0, 1237547 Total [candidate] (11.115 s) : 0, 11114778 section profiling Agent [baseline] (1.326 s) : 0, 1325906 Total [baseline] (10.853 s) : 0, 10852907 Agent [candidate] (1.324 s) : 0, 1323840 Total [candidate] (10.853 s) : 0, 10853069
gantt title petclinic - break down per module: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (695.35 ms) : 0, 695350 BytebuddyAgent [candidate] (698.695 ms) : 0, 698695 GlobalTracer [baseline] (318.233 ms) : 0, 318233 GlobalTracer [candidate] (318.912 ms) : 0, 318912 AppSec [baseline] (54.424 ms) : 0, 54424 AppSec [candidate] (54.464 ms) : 0, 54464 Remote Config [baseline] (681.819 µs) : 0, 682 Remote Config [candidate] (692.719 µs) : 0, 693 Telemetry [baseline] (10.595 ms) : 0, 10595 Telemetry [candidate] (10.571 ms) : 0, 10571 section appsec BytebuddyAgent [baseline] (712.03 ms) : 0, 712030 BytebuddyAgent [candidate] (717.623 ms) : 0, 717623 GlobalTracer [baseline] (315.352 ms) : 0, 315352 GlobalTracer [candidate] (316.828 ms) : 0, 316828 AppSec [baseline] (167.578 ms) : 0, 167578 AppSec [candidate] (168.559 ms) : 0, 168559 IAST [baseline] (19.677 ms) : 0, 19677 IAST [candidate] (19.235 ms) : 0, 19235 Remote Config [baseline] (644.692 µs) : 0, 645 Remote Config [candidate] (661.98 µs) : 0, 662 Telemetry [baseline] (8.187 ms) : 0, 8187 Telemetry [candidate] (8.333 ms) : 0, 8333 section iast BytebuddyAgent [baseline] (817.225 ms) : 0, 817225 BytebuddyAgent [candidate] (824.171 ms) : 0, 824171 GlobalTracer [baseline] (308.566 ms) : 0, 308566 GlobalTracer [candidate] (310.662 ms) : 0, 310662 AppSec [baseline] (57.655 ms) : 0, 57655 AppSec [candidate] (58.934 ms) : 0, 58934 IAST [baseline] (20.858 ms) : 0, 20858 IAST [candidate] (21.495 ms) : 0, 21495 Remote Config [baseline] (641.612 µs) : 0, 642 Remote Config [candidate] (664.505 µs) : 0, 665 Telemetry [baseline] (7.522 ms) : 0, 7522 Telemetry [candidate] (7.675 ms) : 0, 7675 section profiling BytebuddyAgent [baseline] (692.975 ms) : 0, 692975 BytebuddyAgent [candidate] (691.309 ms) : 0, 691309 GlobalTracer [baseline] (437.391 ms) : 0, 437391 GlobalTracer [candidate] (436.526 ms) : 0, 436526 AppSec [baseline] (53.991 ms) : 0, 53991 AppSec [candidate] (54.218 ms) : 0, 54218 Remote Config [baseline] (653.875 µs) : 0, 654 Remote Config [candidate] (653.681 µs) : 0, 654 Telemetry [baseline] (7.679 ms) : 0, 7679 Telemetry [candidate] (7.74 ms) : 0, 7740 ProfilingAgent [baseline] (93.909 ms) : 0, 93909 ProfilingAgent [candidate] (94.074 ms) : 0, 94074 Profiling [baseline] (93.933 ms) : 0, 93933 Profiling [candidate] (94.098 ms) : 0, 94098 Startup time reports for insecure-bankgantt title insecure-bank - global startup overhead: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87 dateFormat X axisFormat %s section tracing Agent [baseline] (1.097 s) : 0, 1096757 Total [baseline] (8.731 s) : 0, 8730619 Agent [candidate] (1.09 s) : 0, 1090406 Total [candidate] (8.662 s) : 0, 8662076 section iast Agent [baseline] (1.219 s) : 0, 1218790 Total [baseline] (9.241 s) : 0, 9240663 Agent [candidate] (1.22 s) : 0, 1220281 Total [candidate] (9.214 s) : 0, 9213693 section iast_HARDCODED_SECRET_DISABLED Agent [baseline] (1.228 s) : 0, 1227864 Total [baseline] (9.186 s) : 0, 9186321 Agent [candidate] (1.218 s) : 0, 1218318 Total [candidate] (9.179 s) : 0, 9178795 section iast_TELEMETRY_OFF Agent [baseline] (1.224 s) : 0, 1224482 Total [baseline] (9.273 s) : 0, 9273143 Agent [candidate] (1.22 s) : 0, 1219990 Total [candidate] (9.223 s) : 0, 9223008
gantt title insecure-bank - break down per module: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (698.691 ms) : 0, 698691 BytebuddyAgent [candidate] (693.101 ms) : 0, 693101 GlobalTracer [baseline] (319.885 ms) : 0, 319885 GlobalTracer [candidate] (317.637 ms) : 0, 317637 AppSec [baseline] (55.127 ms) : 0, 55127 AppSec [candidate] (54.668 ms) : 0, 54668 Remote Config [baseline] (686.911 µs) : 0, 687 Remote Config [candidate] (668.537 µs) : 0, 669 Telemetry [baseline] (8.506 ms) : 0, 8506 Telemetry [candidate] (10.62 ms) : 0, 10620 section iast BytebuddyAgent [baseline] (811.617 ms) : 0, 811617 BytebuddyAgent [candidate] (812.524 ms) : 0, 812524 GlobalTracer [baseline] (305.944 ms) : 0, 305944 GlobalTracer [candidate] (307.184 ms) : 0, 307184 AppSec [baseline] (58.312 ms) : 0, 58312 AppSec [candidate] (57.849 ms) : 0, 57849 IAST [baseline] (20.989 ms) : 0, 20989 IAST [candidate] (20.786 ms) : 0, 20786 Remote Config [baseline] (628.777 µs) : 0, 629 Remote Config [candidate] (637.096 µs) : 0, 637 Telemetry [baseline] (7.539 ms) : 0, 7539 Telemetry [candidate] (7.505 ms) : 0, 7505 section iast_HARDCODED_SECRET_DISABLED BytebuddyAgent [baseline] (818.079 ms) : 0, 818079 BytebuddyAgent [candidate] (811.081 ms) : 0, 811081 GlobalTracer [baseline] (309.013 ms) : 0, 309013 GlobalTracer [candidate] (306.608 ms) : 0, 306608 AppSec [baseline] (57.65 ms) : 0, 57650 AppSec [candidate] (56.918 ms) : 0, 56918 IAST [baseline] (21.052 ms) : 0, 21052 IAST [candidate] (21.802 ms) : 0, 21802 Remote Config [baseline] (642.411 µs) : 0, 642 Remote Config [candidate] (635.69 µs) : 0, 636 Telemetry [baseline] (7.599 ms) : 0, 7599 Telemetry [candidate] (7.568 ms) : 0, 7568 section iast_TELEMETRY_OFF BytebuddyAgent [baseline] (814.143 ms) : 0, 814143 BytebuddyAgent [candidate] (813.28 ms) : 0, 813280 GlobalTracer [baseline] (308.777 ms) : 0, 308777 GlobalTracer [candidate] (306.514 ms) : 0, 306514 AppSec [baseline] (57.222 ms) : 0, 57222 AppSec [candidate] (57.879 ms) : 0, 57879 IAST [baseline] (22.462 ms) : 0, 22462 IAST [candidate] (20.425 ms) : 0, 20425 Remote Config [baseline] (620.022 µs) : 0, 620 Remote Config [candidate] (619.017 µs) : 0, 619 Telemetry [baseline] (7.531 ms) : 0, 7531 Telemetry [candidate] (7.46 ms) : 0, 7460 LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 16 unstable metrics. Request duration reports for petclinicgantt title petclinic - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87 dateFormat X axisFormat %s section baseline no_agent (1.367 ms) : 1348, 1386 . : milestone, 1367, appsec (1.74 ms) : 1716, 1764 . : milestone, 1740, appsec_no_iast (1.758 ms) : 1734, 1783 . : milestone, 1758, iast (1.5 ms) : 1477, 1524 . : milestone, 1500, profiling (1.511 ms) : 1489, 1534 . : milestone, 1511, tracing (1.483 ms) : 1457, 1508 . : milestone, 1483, section candidate no_agent (1.363 ms) : 1344, 1382 . : milestone, 1363, appsec (1.769 ms) : 1744, 1794 . : milestone, 1769, appsec_no_iast (1.742 ms) : 1717, 1767 . : milestone, 1742, iast (1.518 ms) : 1496, 1541 . : milestone, 1518, profiling (1.503 ms) : 1479, 1527 . : milestone, 1503, tracing (1.471 ms) : 1446, 1496 . : milestone, 1471,
Request duration reports for insecure-bankgantt title insecure-bank - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87 dateFormat X axisFormat %s section baseline no_agent (375.227 µs) : 355, 396 . : milestone, 375, iast (489.754 µs) : 468, 511 . : milestone, 490, iast_FULL (647.43 µs) : 626, 669 . : milestone, 647, iast_GLOBAL (518.248 µs) : 496, 541 . : milestone, 518, iast_HARDCODED_SECRET_DISABLED (496.784 µs) : 475, 518 . : milestone, 497, iast_INACTIVE (455.037 µs) : 434, 476 . : milestone, 455, iast_TELEMETRY_OFF (485.606 µs) : 464, 507 . : milestone, 486, tracing (456.424 µs) : 434, 478 . : milestone, 456, section candidate no_agent (378.748 µs) : 358, 400 . : milestone, 379, iast (489.843 µs) : 468, 511 . : milestone, 490, iast_FULL (651.274 µs) : 630, 673 . : milestone, 651, iast_GLOBAL (520.181 µs) : 499, 542 . : milestone, 520, iast_HARDCODED_SECRET_DISABLED (486.551 µs) : 465, 508 . : milestone, 487, iast_INACTIVE (447.405 µs) : 427, 468 . : milestone, 447, iast_TELEMETRY_OFF (479.103 µs) : 458, 501 . : milestone, 479, tracing (448.025 µs) : 427, 469 . : milestone, 448,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for biojavagantt title biojava - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87 dateFormat X axisFormat %s section baseline no_agent (15.437 s) : 15437000, 15437000 . : milestone, 15437000, appsec (15.112 s) : 15112000, 15112000 . : milestone, 15112000, iast (18.769 s) : 18769000, 18769000 . : milestone, 18769000, iast_GLOBAL (17.776 s) : 17776000, 17776000 . : milestone, 17776000, profiling (14.747 s) : 14747000, 14747000 . : milestone, 14747000, tracing (14.885 s) : 14885000, 14885000 . : milestone, 14885000, section candidate no_agent (14.919 s) : 14919000, 14919000 . : milestone, 14919000, appsec (14.708 s) : 14708000, 14708000 . : milestone, 14708000, iast (18.597 s) : 18597000, 18597000 . : milestone, 18597000, iast_GLOBAL (18.206 s) : 18206000, 18206000 . : milestone, 18206000, profiling (14.893 s) : 14893000, 14893000 . : milestone, 14893000, tracing (15.03 s) : 15030000, 15030000 . : milestone, 15030000,
Execution time for tomcatgantt title tomcat - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87 dateFormat X axisFormat %s section baseline no_agent (1.465 ms) : 1453, 1476 . : milestone, 1465, appsec (2.339 ms) : 2298, 2380 . : milestone, 2339, iast (2.096 ms) : 2044, 2149 . : milestone, 2096, iast_GLOBAL (2.124 ms) : 2071, 2177 . : milestone, 2124, profiling (1.948 ms) : 1905, 1990 . : milestone, 1948, tracing (1.923 ms) : 1883, 1963 . : milestone, 1923, section candidate no_agent (1.466 ms) : 1455, 1477 . : milestone, 1466, appsec (2.324 ms) : 2282, 2365 . : milestone, 2324, iast (2.083 ms) : 2031, 2136 . : milestone, 2083, iast_GLOBAL (2.122 ms) : 2070, 2174 . : milestone, 2122, profiling (1.945 ms) : 1903, 1987 . : milestone, 1945, tracing (1.921 ms) : 1881, 1961 . : milestone, 1921,
|
… AsyncResultDecorator
ef6e3dc to a2c6f0a Compare a2c6f0a to 07f2b42 Compare
amarziali left a comment
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.
Thank you for the nice refactoring
| @Advice.OnMethodExit(suppress = Throwable.class) | ||
| public static void init() { | ||
| ReactorAsyncResultSupportExtension.initialize(); | ||
| ReactorAsyncResultExtension.initialize(); |
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 also tried to kick it in on the typeInitializer but it did not work
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 - I have some ideas to improve this kind of pre-initialization, but need to run further experiments.
So far one approach which shows promise is to trigger their initialization during the transformation step, similar to how we inject the helpers. However this needs some additional support to work with native-image because the initialization is then not tied to the stock class-loading mechanism, but the transformation mechanism on top of it.
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.
💡 #8028
| 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 ([#​3326](googleapis/sdk-platform-java#3326)) ([1138ca6](googleapis/sdk-platform-java@1138ca6)) - enable selective generation based on service config include list ([#​3323](googleapis/sdk-platform-java#3323)) ([0cddadb](googleapis/sdk-platform-java@0cddadb)) - introduce `java.time` to java-core ([#​3330](googleapis/sdk-platform-java#3330)) ([f202c3b](googleapis/sdk-platform-java@f202c3b)) - Update Gapic-Generator to generate libraries using `java.time` methods ([#​3321](googleapis/sdk-platform-java#3321)) ([b21c9a4](googleapis/sdk-platform-java@b21c9a4)) ##### Bug Fixes - Fix flaky test ScheduledRetryingExecutorTest.testCancelOuterFutureAfterStart ([#​3335](googleapis/sdk-platform-java#3335)) ([e73740d](googleapis/sdk-platform-java@e73740d)) - httpjson callables to trace attempts (started, failed) ([#​3300](googleapis/sdk-platform-java#3300)) ([15a64ee](googleapis/sdk-platform-java@15a64ee)) - instantiate GaxProperties at build time to ensure we get the protobuf version ([#​3365](googleapis/sdk-platform-java#3365)) ([bb2a3be](googleapis/sdk-platform-java@bb2a3be)) - protobuf version not always getting set in headers ([#​3322](googleapis/sdk-platform-java#3322)) ([7f6e470](googleapis/sdk-platform-java@7f6e470)) - use BuildKit instead of legacy builder to build the Hermetic Build images ([#​3338](googleapis/sdk-platform-java#3338)) ([222fb45](googleapis/sdk-platform-java@222fb45)) ##### Dependencies - update google auth library dependencies to v1.30.0 ([#​3367](googleapis/sdk-platform-java#3367)) ([a31c682](googleapis/sdk-platform-java@a31c682)) - update grpc dependencies to v1.68.1 ([#​3240](googleapis/sdk-platform-java#3240)) ([c8e3941](googleapis/sdk-platform-java@c8e3941)) ##### Documentation - fix list num ([#​3356](googleapis/sdk-platform-java#3356)) ([b7d6296](googleapis/sdk-platform-java@b7d6296)) - **hermetic-build:** indicate usage of Docker Buildkit in development guide ([#​3337](googleapis/sdk-platform-java#3337)) ([01e742d](googleapis/sdk-platform-java@01e742d)) - modify hermetic build docs ([#​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 ([#​3519](googleapis/java-spanner#3519)) ([4ed455a](googleapis/java-spanner@4ed455a)) - Add opt-in for using multiplexed sessions for blind writes ([#​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 ([#​3495](googleapis/java-spanner#3495)) ([8a7d533](googleapis/java-spanner@8a7d533)) - **spanner:** Support multiplexed session for Partitioned operations ([#​3231](googleapis/java-spanner#3231)) ([4501a3e](googleapis/java-spanner@4501a3e)) - Support 'set local' for retry_aborts_internally ([#​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 ([#​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 ([#​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 ([#​1638](googleapis/java-logging#1638)) ([7e007d4](googleapis/java-logging@7e007d4)) - Update sdk platform java dependencies ([#​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 ([#​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 ([#​1671](googleapis/java-datastore#1671)) ([5a78a80](googleapis/java-datastore@5a78a80)) ##### Dependencies - Update dependency com.google.cloud:gapic-libraries-bom to v1.48.0 ([#​1605](googleapis/java-datastore#1605)) ([5c6a678](googleapis/java-datastore@5c6a678)) ##### Documentation - Update gapic upgrade installation instructions ([#​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 ([#​8089](DataDog/dd-trace-java#8089) - [@​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 [#​7946](DataDog/dd-trace-java#7946). ##### Components ##### Application Security Management (IAST) - ✨ Set unexpected IAST exceptions to debug log level ([#​8044](DataDog/dd-trace-java#8044) - [@​smola](https://github.com/smola)) - ✨ Increase IAST propagation to StringBuffer subSequence ([#​8038](DataDog/dd-trace-java#8038) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Increase IAST propagation to StringBuilder subSequence ([#​8026](DataDog/dd-trace-java#8026) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Add IAST propagation to String valueOf ([#​8013](DataDog/dd-trace-java#8013) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Increase IAST propagation to StringBuilder append ([#​8010](DataDog/dd-trace-java#8010) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Expand SSRF support in IAST to apache-httpclient-5 and apache-httpasyncclient-4 ([#​7920](DataDog/dd-trace-java#7920) - [@​Mariovido](https://github.com/Mariovido)) ##### Build & Tooling - ✨ Generate Muzzle classes for Groovy instrumentations ([#​8004](DataDog/dd-trace-java#8004) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) ##### Continuous Integration Visibility - ✨ Support distributed traces in tests ([#​8078](DataDog/dd-trace-java#8078) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement fail-fast tests ordering for JUnit 5 ([#​8055](DataDog/dd-trace-java#8055) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Mark JUnit 5 setup and teardown action spans as failed if there is an error ([#​8033](DataDog/dd-trace-java#8033) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add tracing of setup and teardown actions in JUnit 4 ([#​8030](DataDog/dd-trace-java#8030) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) ##### Crash tracking - ✨ Improve crash tracking install logging ([#​8045](DataDog/dd-trace-java#8045) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) ##### Data Streams Monitoring - 🐛 Add Data Streams support in AWS SQS without raw message delivery ([#​8071](DataDog/dd-trace-java#8071) - [@​piochelepiotr](https://github.com/piochelepiotr)) - ✨ Add new tag for enabled products / features to DSM checkpoints ([#​8051](DataDog/dd-trace-java#8051) - [@​kr-igor](https://github.com/kr-igor)) - 💡 Instrument self hosted Kafka connectors ([#​7959](DataDog/dd-trace-java#7959) - [@​piochelepiotr](https://github.com/piochelepiotr)) ##### Dynamic Instrumentation - ✨ Add Micronaut 4 support for code origin for spans ([#​8039](DataDog/dd-trace-java#8039) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Refactor probe matching for methods ([#​8021](DataDog/dd-trace-java#8021) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Update the CodeOriginProbe fingerprint to not rely on a stack walk ([#​8016](DataDog/dd-trace-java#8016) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Implement code origin support for grpc server entry spans ([#​7942](DataDog/dd-trace-java#7942) - [@​evanchooly](https://github.com/evanchooly)) ##### GraalVM native-image - 🐛 Update Graal build-time instrumentation config for TracePropagationStyle ([#​8065](DataDog/dd-trace-java#8065) - [@​MattAlp](https://github.com/MattAlp)) - 🐛 Fix NoClassDefFoundError: Could not initialize class DDSpanLink$EncoderHolder in Graal native-image ([#​8036](DataDog/dd-trace-java#8036) - [@​mcculls](https://github.com/mcculls)) - 🐛🧹 Fix native-image generation of reactive applications ([#​8012](DataDog/dd-trace-java#8012) - [@​mcculls](https://github.com/mcculls)) ##### OpenTracing - 🧹 Custom ScopeManagers are deprecated and will be removed in a future release of dd-trace-ot ([#​8058](DataDog/dd-trace-java#8058) - [@​mcculls](https://github.com/mcculls)) ##### Tracer core - ✨🧪 Service naming: split by jee deployment ([#​8064](DataDog/dd-trace-java#8064) - [@​amarziali](https://github.com/amarziali)) - ✨ Exclude jboss mdb proxies from instrumenting ([#​8061](DataDog/dd-trace-java#8061) - [@​amarziali](https://github.com/amarziali)) - ✨ Add a built-in trace interceptor for keeping traces depending of their latency ([#​8040](DataDog/dd-trace-java#8040) - [@​cecile75](https://github.com/cecile75)) - 💡 Introduce marker mechanism for eagerly initializing helpers ([#​8028](DataDog/dd-trace-java#8028) - [@​mcculls](https://github.com/mcculls)) - 💡 Add JSON component ([#​7973](DataDog/dd-trace-java#7973) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨⚠️ Remove support for X-Forwarded in client IP resolution ([#​7946](DataDog/dd-trace-java#7946) - [@​smola](https://github.com/smola)) ##### Instrumentations ##### Apache HttpComponents - ✨ Expand SSRF support in IAST to apache-httpclient-5 and apache-httpasyncclient-4 ([#​7920](DataDog/dd-trace-java#7920) - [@​Mariovido](https://github.com/Mariovido)) ##### gRPC instrumentation - 🐛 Use lower priorities for grpc server errors ([#​8043](DataDog/dd-trace-java#8043) - [@​amarziali](https://github.com/amarziali)) ##### JDBC instrumentation - ✨ Add trace injection for prepared statements in Postgres ([#​7940](DataDog/dd-trace-java#7940) - [@​nenadnoveljic](https://github.com/nenadnoveljic)) ##### JMS instrumentation - 🐛 Protect mdb from instrumenting multiple time the same event ([#​8062](DataDog/dd-trace-java#8062) - [@​amarziali](https://github.com/amarziali)) ##### Kafka instrumentation - 💡 Instrument self hosted Kafka connectors ([#​7959](DataDog/dd-trace-java#7959) - [@​piochelepiotr](https://github.com/piochelepiotr)) ##### OpenTelemetry instrumentation - 🐛 Support using OpenTelemetry Event API inside `@WithSpan` annotated method ([#​8019](DataDog/dd-trace-java#8019) - [@​mcculls](https://github.com/mcculls)) ##### Reactor instrumentation - 🐛🧹 Fix native-image generation of reactive applications ([#​8012](DataDog/dd-trace-java#8012) - [@​mcculls](https://github.com/mcculls)) ##### Spring instrumentation - 🐛 Avoid double instrumenting lambdas on latest spring scheduling ([#​8005](DataDog/dd-trace-java#8005) - [@​amarziali](https://github.com/amarziali)) ##### All other instrumentations - 🐛 Twilio: allow service name flattening ([#​8025](DataDog/dd-trace-java#8025) - [@​amarziali](https://github.com/amarziali)) - ✨ Instrument Mulesoft 4.5.0+ ([#​7981](DataDog/dd-trace-java#7981) - [@​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
What Does This Do
Refactors registration of
AsyncResultextensions so it doesn't pull inAsyncResultDecoratorand all the associated decorator and function classes at bytecode transformation time, which would pollute the analyzed heap and lead to them all needing to be marked as build-time.Also marks the runtime holder of
AsyncResultextensions as re-runnable. This avoids having to list all the different extensions that might end up registered as build-time, but also avoids double registrations where the same extension is registered at build-time via native-image - and at runtime via the compiled type initializer.Motivation
The recent refactoring of
AsyncResultextensions caused a regression in our native-image support, but only when a reactive library was on the application class-path.Contributor Checklist
type:and (comp:orinst:) labels in addition to any usefull labelsclose,fixor any linking keywords when referencing an issue.Use
solvesinstead, and assign the PR milestone to the issueJira ticket: AIDM-447