Implement tests reordering for JUnit 4#8650
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 66 metrics, 5 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.055 s) : 0, 1055409
Total [baseline] (8.686 s) : 0, 8686446
Agent [candidate] (1.066 s) : 0, 1065865
Total [candidate] (8.712 s) : 0, 8712375
section iast
Agent [baseline] (1.179 s) : 0, 1178571
Total [baseline] (9.241 s) : 0, 9241198
Agent [candidate] (1.19 s) : 0, 1190364
Total [candidate] (9.296 s) : 0, 9296486
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.182 s) : 0, 1181755
Total [baseline] (9.244 s) : 0, 9244199
Agent [candidate] (1.181 s) : 0, 1181182
Total [candidate] (9.214 s) : 0, 9213875
section iast_TELEMETRY_OFF
Agent [baseline] (1.184 s) : 0, 1184301
Total [baseline] (9.284 s) : 0, 9284035
Agent [candidate] (1.176 s) : 0, 1175914
Total [candidate] (9.247 s) : 0, 9246843
gantt
title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (720.14 ms) : 0, 720140
BytebuddyAgent [candidate] (729.919 ms) : 0, 729919
GlobalTracer [baseline] (239.724 ms) : 0, 239724
GlobalTracer [candidate] (242.427 ms) : 0, 242427
AppSec [baseline] (54.552 ms) : 0, 54552
AppSec [candidate] (56.702 ms) : 0, 56702
Debugger [baseline] (4.409 ms) : 0, 4409
Debugger [candidate] (4.472 ms) : 0, 4472
Remote Config [baseline] (692.452 µs) : 0, 692
Remote Config [candidate] (705.499 µs) : 0, 705
Telemetry [baseline] (15.29 ms) : 0, 15290
Telemetry [candidate] (10.861 ms) : 0, 10861
section iast
BytebuddyAgent [baseline] (837.549 ms) : 0, 837549
BytebuddyAgent [candidate] (846.651 ms) : 0, 846651
GlobalTracer [baseline] (228.919 ms) : 0, 228919
GlobalTracer [candidate] (230.522 ms) : 0, 230522
IAST [baseline] (22.635 ms) : 0, 22635
IAST [candidate] (23.655 ms) : 0, 23655
AppSec [baseline] (55.539 ms) : 0, 55539
AppSec [candidate] (55.306 ms) : 0, 55306
Debugger [baseline] (4.146 ms) : 0, 4146
Debugger [candidate] (4.208 ms) : 0, 4208
Remote Config [baseline] (625.529 µs) : 0, 626
Remote Config [candidate] (598.473 µs) : 0, 598
Telemetry [baseline] (8.705 ms) : 0, 8705
Telemetry [candidate] (8.841 ms) : 0, 8841
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (839.211 ms) : 0, 839211
BytebuddyAgent [candidate] (838.565 ms) : 0, 838565
GlobalTracer [baseline] (229.824 ms) : 0, 229824
GlobalTracer [candidate] (229.418 ms) : 0, 229418
IAST [baseline] (22.933 ms) : 0, 22933
IAST [candidate] (22.808 ms) : 0, 22808
AppSec [baseline] (55.842 ms) : 0, 55842
AppSec [candidate] (56.438 ms) : 0, 56438
Debugger [baseline] (4.129 ms) : 0, 4129
Debugger [candidate] (4.149 ms) : 0, 4149
Remote Config [baseline] (611.51 µs) : 0, 612
Remote Config [candidate] (610.329 µs) : 0, 610
Telemetry [baseline] (8.74 ms) : 0, 8740
Telemetry [candidate] (8.769 ms) : 0, 8769
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (840.643 ms) : 0, 840643
BytebuddyAgent [candidate] (835.644 ms) : 0, 835644
GlobalTracer [baseline] (230.77 ms) : 0, 230770
GlobalTracer [candidate] (228.598 ms) : 0, 228598
IAST [baseline] (22.635 ms) : 0, 22635
IAST [candidate] (22.125 ms) : 0, 22125
AppSec [baseline] (56.255 ms) : 0, 56255
AppSec [candidate] (55.898 ms) : 0, 55898
Debugger [baseline] (4.216 ms) : 0, 4216
Debugger [candidate] (4.11 ms) : 0, 4110
Remote Config [baseline] (607.918 µs) : 0, 608
Remote Config [candidate] (596.603 µs) : 0, 597
Telemetry [baseline] (8.652 ms) : 0, 8652
Telemetry [candidate] (8.55 ms) : 0, 8550
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.068 s) : 0, 1067693
Total [baseline] (10.512 s) : 0, 10512123
Agent [candidate] (1.054 s) : 0, 1054229
Total [candidate] (10.452 s) : 0, 10452097
section appsec
Agent [baseline] (1.197 s) : 0, 1197329
Total [baseline] (10.774 s) : 0, 10773534
Agent [candidate] (1.194 s) : 0, 1193811
Total [candidate] (10.759 s) : 0, 10758771
section iast
Agent [baseline] (1.193 s) : 0, 1192755
Total [baseline] (11.096 s) : 0, 11095897
Agent [candidate] (1.184 s) : 0, 1183678
Total [candidate] (11.024 s) : 0, 11024015
section profiling
Agent [baseline] (1.276 s) : 0, 1275871
Total [baseline] (10.85 s) : 0, 10850308
Agent [candidate] (1.286 s) : 0, 1286116
Total [candidate] (10.895 s) : 0, 10895014
gantt
title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (729.113 ms) : 0, 729113
BytebuddyAgent [candidate] (719.875 ms) : 0, 719875
GlobalTracer [baseline] (242.52 ms) : 0, 242520
GlobalTracer [candidate] (239.239 ms) : 0, 239239
AppSec [baseline] (54.936 ms) : 0, 54936
AppSec [candidate] (54.943 ms) : 0, 54943
Debugger [baseline] (4.443 ms) : 0, 4443
Debugger [candidate] (4.435 ms) : 0, 4435
Remote Config [baseline] (699.141 µs) : 0, 699
Remote Config [candidate] (707.516 µs) : 0, 708
Telemetry [baseline] (15.127 ms) : 0, 15127
Telemetry [candidate] (14.57 ms) : 0, 14570
section appsec
BytebuddyAgent [baseline] (739.88 ms) : 0, 739880
BytebuddyAgent [candidate] (737.49 ms) : 0, 737490
GlobalTracer [baseline] (236.339 ms) : 0, 236339
GlobalTracer [candidate] (235.588 ms) : 0, 235588
AppSec [baseline] (176.436 ms) : 0, 176436
AppSec [candidate] (176.362 ms) : 0, 176362
Debugger [baseline] (4.278 ms) : 0, 4278
Debugger [candidate] (4.268 ms) : 0, 4268
Remote Config [baseline] (642.953 µs) : 0, 643
Remote Config [candidate] (661.781 µs) : 0, 662
Telemetry [baseline] (8.267 ms) : 0, 8267
Telemetry [candidate] (8.218 ms) : 0, 8218
IAST [baseline] (21.936 ms) : 0, 21936
IAST [candidate] (21.578 ms) : 0, 21578
section iast
BytebuddyAgent [baseline] (848.827 ms) : 0, 848827
BytebuddyAgent [candidate] (841.15 ms) : 0, 841150
GlobalTracer [baseline] (230.42 ms) : 0, 230420
GlobalTracer [candidate] (230.093 ms) : 0, 230093
AppSec [baseline] (56.185 ms) : 0, 56185
AppSec [candidate] (56.014 ms) : 0, 56014
Debugger [baseline] (4.177 ms) : 0, 4177
Debugger [candidate] (4.09 ms) : 0, 4090
Remote Config [baseline] (609.659 µs) : 0, 610
Remote Config [candidate] (599.4 µs) : 0, 599
Telemetry [baseline] (8.892 ms) : 0, 8892
Telemetry [candidate] (8.691 ms) : 0, 8691
IAST [baseline] (22.844 ms) : 0, 22844
IAST [candidate] (22.552 ms) : 0, 22552
section profiling
BytebuddyAgent [baseline] (711.073 ms) : 0, 711073
BytebuddyAgent [candidate] (717.554 ms) : 0, 717554
GlobalTracer [baseline] (348.785 ms) : 0, 348785
GlobalTracer [candidate] (351.832 ms) : 0, 351832
AppSec [baseline] (54.084 ms) : 0, 54084
AppSec [candidate] (53.45 ms) : 0, 53450
Debugger [baseline] (4.328 ms) : 0, 4328
Debugger [candidate] (4.342 ms) : 0, 4342
Remote Config [baseline] (695.303 µs) : 0, 695
Remote Config [candidate] (700.967 µs) : 0, 701
Telemetry [baseline] (9.017 ms) : 0, 9017
Telemetry [candidate] (9.005 ms) : 0, 9005
ProfilingAgent [baseline] (102.146 ms) : 0, 102146
ProfilingAgent [candidate] (103.191 ms) : 0, 103191
Profiling [baseline] (102.173 ms) : 0, 102173
Profiling [candidate] (103.218 ms) : 0, 103218
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 14 metrics, 16 unstable metrics. Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
dateFormat X
axisFormat %s
section baseline
no_agent (382.819 µs) : 362, 403
. : milestone, 383,
iast (517.371 µs) : 495, 539
. : milestone, 517,
iast_FULL (738.234 µs) : 716, 760
. : milestone, 738,
iast_GLOBAL (567.592 µs) : 546, 589
. : milestone, 568,
iast_HARDCODED_SECRET_DISABLED (515.158 µs) : 493, 537
. : milestone, 515,
iast_INACTIVE (467.382 µs) : 446, 489
. : milestone, 467,
iast_TELEMETRY_OFF (503.722 µs) : 482, 526
. : milestone, 504,
tracing (465.637 µs) : 445, 487
. : milestone, 466,
section candidate
no_agent (387.817 µs) : 366, 409
. : milestone, 388,
iast (517.894 µs) : 496, 540
. : milestone, 518,
iast_FULL (738.526 µs) : 716, 761
. : milestone, 739,
iast_GLOBAL (560.534 µs) : 539, 582
. : milestone, 561,
iast_HARDCODED_SECRET_DISABLED (517.177 µs) : 495, 539
. : milestone, 517,
iast_INACTIVE (465.153 µs) : 444, 486
. : milestone, 465,
iast_TELEMETRY_OFF (508.051 µs) : 486, 530
. : milestone, 508,
tracing (455.258 µs) : 435, 476
. : milestone, 455,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
dateFormat X
axisFormat %s
section baseline
no_agent (1.339 ms) : 1319, 1358
. : milestone, 1339,
appsec (1.74 ms) : 1717, 1763
. : milestone, 1740,
appsec_no_iast (1.759 ms) : 1735, 1783
. : milestone, 1759,
code_origins (1.667 ms) : 1639, 1694
. : milestone, 1667,
iast (1.511 ms) : 1487, 1536
. : milestone, 1511,
profiling (1.525 ms) : 1501, 1549
. : milestone, 1525,
tracing (1.509 ms) : 1484, 1534
. : milestone, 1509,
section candidate
no_agent (1.349 ms) : 1329, 1369
. : milestone, 1349,
appsec (1.753 ms) : 1730, 1777
. : milestone, 1753,
appsec_no_iast (1.751 ms) : 1727, 1774
. : milestone, 1751,
code_origins (1.689 ms) : 1661, 1718
. : milestone, 1689,
iast (1.522 ms) : 1498, 1545
. : milestone, 1522,
profiling (1.508 ms) : 1485, 1532
. : milestone, 1508,
tracing (1.519 ms) : 1494, 1543
. : milestone, 1519,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
dateFormat X
axisFormat %s
section baseline
no_agent (1.472 ms) : 1460, 1483
. : milestone, 1472,
appsec (2.37 ms) : 2323, 2417
. : milestone, 2370,
iast (3.254 ms) : 3033, 3475
. : milestone, 3254,
iast_GLOBAL (2.19 ms) : 2131, 2249
. : milestone, 2190,
profiling (2.018 ms) : 1970, 2066
. : milestone, 2018,
tracing (1.97 ms) : 1925, 2015
. : milestone, 1970,
section candidate
no_agent (1.472 ms) : 1460, 1483
. : milestone, 1472,
appsec (2.362 ms) : 2315, 2408
. : milestone, 2362,
iast (2.148 ms) : 2090, 2207
. : milestone, 2148,
iast_GLOBAL (2.191 ms) : 2132, 2251
. : milestone, 2191,
profiling (2.028 ms) : 1979, 2076
. : milestone, 2028,
tracing (1.974 ms) : 1929, 2020
. : milestone, 1974,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
dateFormat X
axisFormat %s
section baseline
no_agent (14.949 s) : 14949000, 14949000
. : milestone, 14949000,
appsec (15.132 s) : 15132000, 15132000
. : milestone, 15132000,
iast (18.784 s) : 18784000, 18784000
. : milestone, 18784000,
iast_GLOBAL (18.139 s) : 18139000, 18139000
. : milestone, 18139000,
profiling (15.659 s) : 15659000, 15659000
. : milestone, 15659000,
tracing (14.848 s) : 14848000, 14848000
. : milestone, 14848000,
section candidate
no_agent (15.647 s) : 15647000, 15647000
. : milestone, 15647000,
appsec (15.054 s) : 15054000, 15054000
. : milestone, 15054000,
iast (18.432 s) : 18432000, 18432000
. : milestone, 18432000,
iast_GLOBAL (17.748 s) : 17748000, 17748000
. : milestone, 17748000,
profiling (15.077 s) : 15077000, 15077000
. : milestone, 15077000,
tracing (14.527 s) : 14527000, 14527000
. : milestone, 14527000,
|
| @@ -0,0 +1,16 @@ | |||
| apply from: "$rootDir/gradle/java.gradle" | |||
|
|
|||
| repositories { | |||
There was a problem hiding this comment.
I am not sure if the repositories block is needed here. It is there in the other Gradle instrumentations, but I think I just forgot to delete it from experimenting with trying to download a Gradle API for a specific version.
Could you please try removing it and seeing if things continue to work?
There was a problem hiding this comment.
Let's rename the module to something more descriptive, like gradle-testing. Also, let's add this and the maven-surefire to CODEOWNERS
| public class DDCollectAllTestClassesExecutor implements Action<String> { | ||
| private final List<Class<?>> testClasses = new ArrayList<>(); | ||
| Action<String> delegate; | ||
| ClassLoader classLoader; |
There was a problem hiding this comment.
Can these fields be made private final?
There was a problem hiding this comment.
Whoops, yes, nice catch
|
|
||
| @Override | ||
| public int compare(Description o1, Description o2) { | ||
| return comparator.compare(o1, o2); |
There was a problem hiding this comment.
We could simply do executionPriority(o2) - executionPriority(o1) here and get rid of the nested comparator
There was a problem hiding this comment.
I'll also update datadog.trace.instrumentation.junit4.order.JUnit4FailFastClassOrderer to implement Comparator<Class<?>> instead of just providing the classExecutionPriority method, I think it will be easier to follow the code that way
| @AutoService(InstrumenterModule.class) | ||
| public class JUnit4TestOrdererInstrumentation extends InstrumenterModule.CiVisibility | ||
| implements Instrumenter.ForSingleType, Instrumenter.HasMethodAdvice { | ||
| private final String parentPackageName = Strings.getPackageName(JUnit4Utils.class.getName()); |
There was a problem hiding this comment.
As we've seen recently it is best not to init injected classes in the tracer's classloader. Let's use an instrumentation class here instead
| JUnit4Instrumentation.class.getPackage().getName() + ".TestEventsHandlerHolder", | ||
| JUnit4Instrumentation.class.getPackage().getName() + ".SkippedByDatadog", | ||
| JUnit4Instrumentation.class.getPackage().getName() + ".TracingListener", | ||
| JUnit4FailFastClassOrderer.class.getPackage().getName() + ".JUnit4FailFastClassOrderer", |
There was a problem hiding this comment.
Can we use an instrumentation class here instead of the one we inject?
There was a problem hiding this comment.
There is no instrumentation class inside of the junit4.order package unfortunately, but we could do:
JUnit4Instrumentation.class.getPackage().getName() + ".order.JUnit4FailFastClassOrderer",
There was a problem hiding this comment.
Yeah, let's do this. It's unlikely that we will rename the package, and if we do the smoke tests you added will catch the problem
| JUnit4Instrumentation.class.getPackage().getName() + ".JUnit4Utils", | ||
| JUnit4Instrumentation.class.getPackage().getName() + ".TestEventsHandlerHolder", | ||
| JUnit4Instrumentation.class.getPackage().getName() + ".TracingListener", | ||
| JUnit4FailFastClassOrderer.class.getPackage().getName() + ".JUnit4FailFastClassOrderer", |
There was a problem hiding this comment.
Same here, can an instrumentation class be used to compute the package name?
| return 0; | ||
| } | ||
|
|
||
| TestEventsHandler<TestSuiteDescriptor, TestDescriptor> testEventsHandler = |
There was a problem hiding this comment.
Let's move this variable declaration closer to the place where it is used to make the code easier to follow
There was a problem hiding this comment.
When refactoring the class to implement Comparator<Class<?>> I added the handler as a field to the class, so it fixes this issue too
Co-authored-by: Nikita Tkachenko <121111529+nikita-tkachenko-datadog@users.noreply.github.com>
This reverts commit f59331e.
…ano/junit4-test-reordering
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | org.flywaydb.flyway | plugin | misk/gradle/libs.versions.toml | gradle | minor | `11.6.0` -> `11.7.0` | | [com.squareup.okio:okio-fakefilesystem](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.squareup.okio:okio](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.15.0` -> `2.16.0` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | --- ### Release Notes <details> <summary>square/okio (com.squareup.okio:okio-fakefilesystem)</summary> ### [`v3.11.0`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3110) *2025-04-09* - Fix: Clear the deflater's byte array reference - New: Faster implementation of `String.decodeHex()` on Kotlin/JS. - New: Declare `EXACTLY_ONCE` execution for blocks like `Closeable.use {}` and `FileSystem.read {}`. - Upgrade: \[Kotlin 2.1.20]\[kotlin\_2\_1\_20]. </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.16.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2160) - \[Feat]: support `com.android.test` projects. - \[Feat]: support typesafe project accessors with opt-in. ```kotlin dependencyAnalysis { useTypesafeProjectAccessors(true) // false by default } ``` </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.48.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.1): 1.48.1 ### Components #### Tracer internal logging - 🐛 Remove print line causing unnecessary logs ([#​8687](DataDog/dd-trace-java#8687) - [@​sarahchen6](https://github.com/sarahchen6)) ### [`v1.48.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.0): 1.48.0 ### Known Bugs > \[!NOTE] > If you are experiencing issues with spamming timeout logs, please update to the [latest version](https://github.com/DataDog/dd-trace-java/releases/latest) or set [JDK_SOCKET_ENABLED](https://github.com/DataDog/dd-trace-java/blob/33fc3c9a9b7cda3beda88b8b3e5224ae2b10764a/dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java#L98) to false. ### Components #### Application Security Management (IAST) - ✨ Fix vulnerability location org.jose4j.lang.HashUtil ([#​8610](DataDog/dd-trace-java#8610) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness in oracle.ucp.util.OpaqueString ([#​8609](DataDog/dd-trace-java#8609) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak hash false positive in oracle.security.o5logon.O5Logon ([#​8608](DataDog/dd-trace-java#8608) - [@​jandro996](https://github.com/jandro996)) - 🐛 Prevent before callsites targeting constructors in super calls ([#​8549](DataDog/dd-trace-java#8549) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Application Security Management (WAF) - ✨ Update login events public SDK to V2 ([#​8620](DataDog/dd-trace-java#8620) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) - ✨ Improve detection of missing request end events ([#​8510](DataDog/dd-trace-java#8510) - [@​smola](https://github.com/smola)) - 🧹 Remove remote configuration for API Security sampling rate ([#​8486](DataDog/dd-trace-java#8486) - [@​smola](https://github.com/smola)) - ✨ Add setUser to user monitoring SDK ([#​8482](DataDog/dd-trace-java#8482) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add missing address for signup event ([#​8469](DataDog/dd-trace-java#8469) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Allow login events SDK to be used with appsec disabled ([#​8464](DataDog/dd-trace-java#8464) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ New API Security sampling algorithm ([#​8178](DataDog/dd-trace-java#8178) - [@​ValentinZakharov](https://github.com/ValentinZakharov)) #### Build & Tooling - ✨ Add buffer size customizability to JDK UDS support ([#​8629](DataDog/dd-trace-java#8629) - [@​sarahchen6](https://github.com/sarahchen6)) - ✨ Add JDK built-in support for UDS on Java 16+ ([#​8314](DataDog/dd-trace-java#8314) - [@​sarahchen6](https://github.com/sarahchen6)) #### Configuration at Runtime - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) #### Continuous Integration Visibility - 🐛 Prevent double reporting of Scalatest events when using SBT with test forking ([#​8682](DataDog/dd-trace-java#8682) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Shutdown CI Visibility test event handlers before tracer ([#​8677](DataDog/dd-trace-java#8677) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Do not apply JUnit 4 instrumentation to MUnit runners ([#​8675](DataDog/dd-trace-java#8675), [#​8683](DataDog/dd-trace-java#8683) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Remove error log when source path resolution fails on isModified check ([#​8663](DataDog/dd-trace-java#8663) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement tests reordering for JUnit 4 ([#​8650](DataDog/dd-trace-java#8650) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - 🐛 Set default Attempt to Fix retries if none provided from the backend ([#​8615](DataDog/dd-trace-java#8615) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Allow to manually set PR info ([#​8566](DataDog/dd-trace-java#8566) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Test Optimization init when repo root cannot be determined ([#​8533](DataDog/dd-trace-java#8533) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add capabilities tagging ([#​8499](DataDog/dd-trace-java#8499), [#​8540](DataDog/dd-trace-java#8540) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) #### Crash tracking - 🐛 Remove dependency on bash from crash/oome uploder scripts ([#​8652](DataDog/dd-trace-java#8652) - [@​jbachorik](https://github.com/jbachorik)) #### Data Streams Monitoring - ✨ e2e pipeline configuration when data jobs is enabled ([#​8553](DataDog/dd-trace-java#8553) - [@​kr-igor](https://github.com/kr-igor)) #### Dynamic Instrumentation - 🐛 Fix In-Product when config is empty ([#​8679](DataDog/dd-trace-java#8679) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add support for filtering shaded third-party libs ([#​8612](DataDog/dd-trace-java#8612) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add In-Product Enablement ([#​8587](DataDog/dd-trace-java#8587) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Reduce footprint of SourceFile tracking ([#​8524](DataDog/dd-trace-java#8524) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Optimize the SourceFile tracking ([#​8520](DataDog/dd-trace-java#8520) - [@​jpbempel](https://github.com/jpbempel)) #### OpenTracing - 🧹 Remove activeScope() use in OpenTracing shim ([#​8478](DataDog/dd-trace-java#8478) - [@​mcculls](https://github.com/mcculls)) #### Profiling - ✨ Add profiler env check command to AgentCLI ([#​8671](DataDog/dd-trace-java#8671) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Bump ddprof to 1.23.0 ([#​8668](DataDog/dd-trace-java#8668) - [@​jbachorik](https://github.com/jbachorik)) - Fix a crash related to ElfParser::loadSymbolTable ([#​191](DataDog/dd-trace-java#191)) by [@​yanglong1010](https://github.com/yanglong1010) in DataDog/java-profiler#192 - Unwind String.indexOf intrinsic on AArch64 by [@​MattAlp](https://github.com/MattAlp) in DataDog/java-profiler#193 - Fix Java 24 support by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#194 - A set of fixes related to clang, aarch64 and musl pecularities of vmstructs stack unwinder by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#199 - 🐛 Remove process information from JFR recording ([#​8661](DataDog/dd-trace-java#8661) - [@​r1viollet](https://github.com/r1viollet)) - 🐛 Make TempLocationManager USER aware ([#​8605](DataDog/dd-trace-java#8605) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Telemetry - 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics ([#​8624](DataDog/dd-trace-java#8624) - [@​jandro996](https://github.com/jandro996)) - ✨ Create metric: appsec.rasp.rule.skipped ([#​8618](DataDog/dd-trace-java#8618) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Testing - 🧹 Simplify ssi tests one-pipeline ([#​8558](DataDog/dd-trace-java#8558) - [@​robertomonteromiguel](https://github.com/robertomonteromiguel)) - ✨ Add smoke tests for java's concurrent API ([#​8438](DataDog/dd-trace-java#8438) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT` ([#​8535](DataDog/dd-trace-java#8535) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Ensure shaded helpers have unique names ([#​8559](DataDog/dd-trace-java#8559) - [@​amarziali](https://github.com/amarziali)) - ✨ Support common config sources for user-provided git info ([#​8547](DataDog/dd-trace-java#8547) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Make the default config sources more robust when a security manager is installed ([#​8544](DataDog/dd-trace-java#8544) - [@​mcculls](https://github.com/mcculls)) - ✨ Support targeting services with configurations in stable configuration file ([#​8526](DataDog/dd-trace-java#8526) - [@​mtoffl01](https://github.com/mtoffl01)) - ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE` ([#​8296](DataDog/dd-trace-java#8296) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer internal logging - 🐛 Add missing debug log for the cloudPayloadTaggingServices config ([#​8600](DataDog/dd-trace-java#8600) - [@​ygree](https://github.com/ygree)) - ✨ Add the possibility to output the logs of the Java tracer in JSON ([#​8083](DataDog/dd-trace-java#8083) - [@​cecile75](https://github.com/cecile75)) #### Tracer public API - ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config ([#​8536](DataDog/dd-trace-java#8536) - [@​mhlidd](https://github.com/mhlidd)) - ✨ Config Consistency Round 2 ([#​8489](DataDog/dd-trace-java#8489) - [@​mhlidd](https://github.com/mhlidd)) ### Instrumentations #### - 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation ([#​8599](DataDog/dd-trace-java#8599) - [@​ygree](https://github.com/ygree)) #### Apache Spark instrumentation - ✨ Instrument Runtime.exit() to finish spark application spans ([#​8572](DataDog/dd-trace-java#8572) - [@​paul-laffon-dd](https://github.com/paul-laffon-dd)) - ✨ Configure OpenLineage if present in Spark instrumentation ([#​8541](DataDog/dd-trace-java#8541) - [@​mobuchowski](https://github.com/mobuchowski)) #### Armeria Instrumentation - ✨ Support armeria grpc 1.32.3 ([#​8606](DataDog/dd-trace-java#8606) - [@​github-actions](https://github.com/github-actions)\[bot]) #### AWS DynamoDB Instrumentation - ✨ Create DynamoDB instrumentation + add span pointers for `updateItem` and `deleteItem` ([#​8490](DataDog/dd-trace-java#8490) - [@​nhulston](https://github.com/nhulston)) #### AWS SDK instrumentation - ✨ Add DynamoDB in DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES ([#​8595](DataDog/dd-trace-java#8595) - [@​joeyzhao2018](https://github.com/joeyzhao2018)) #### Azure Functions instrumentation - ✨ Enable tracer computed trace metrics by default for Azure Functions ([#​8518](DataDog/dd-trace-java#8518) - [@​duncanpharvey](https://github.com/duncanpharvey)) - 💡 Add azure-functions instrumentation ([#​8432](DataDog/dd-trace-java#8432) - [@​duncanpharvey](https://github.com/duncanpharvey)) #### Core Java language instrumentation - 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+ ([#​8560](DataDog/dd-trace-java#8560) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Eclipse Vert.x instrumentation - ✨ Add vertx postgresql client instrumentation ([#​8471](DataDog/dd-trace-java#8471) - [@​vandonr](https://github.com/vandonr) - thanks for the contribution!) #### Kafka instrumentation - ✨ Support and test kafka-clients 4 ([#​8581](DataDog/dd-trace-java#8581) - [@​amarziali](https://github.com/amarziali)) #### Kotlin instrumentation - ✨ Avoid disconnected traces when using Kotlin flowOn ([#​8651](DataDog/dd-trace-java#8651) - [@​mcculls](https://github.com/mcculls)) #### OpenTelemetry instrumentation - 🧹 Migrate OtelContext wrapper to new internal Context API ([#​8645](DataDog/dd-trace-java#8645) - [@​mcculls](https://github.com/mcculls)) #### Spring instrumentation - 🐛 Support CompletableFuture on spring webmvc controllers ([#​8659](DataDog/dd-trace-java#8659) - [@​amarziali](https://github.com/amarziali)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### WebSocket Instrumentation - ✨ Instrument Jetty websocket pojo ([#​8562](DataDog/dd-trace-java#8562) - [@​amarziali](https://github.com/amarziali)) - 💡 Instrument Java Websocket API (JSR356) ([#​8440](DataDog/dd-trace-java#8440) - [@​amarziali](https://github.com/amarziali)) #### All other instrumentations - ✨ Introduce cache for peer.hostname lookup ([#​8601](DataDog/dd-trace-java#8601) - [@​mcculls](https://github.com/mcculls)) - ✨ Support pekko http 1.1 ([#​8532](DataDog/dd-trace-java#8532) - [@​amarziali](https://github.com/amarziali)) </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**: Never, 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: 331314f71acaced3adc75ea5d7e855c248d593fc
What Does This Do
maven-surefireplugin and the Gradle test running logic, theoretically allowing other frameworks that use the mechanism to benefit from the featureContributor 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: SDTEST-1780