Skip to content

Conversation

@bric3
Copy link
Contributor

@bric3 bric3 commented Jan 12, 2026

What Does This Do

This PR allows to completely get rid of setting up JAVA_X_HOME on local dev environment.

The stable special word has special handling though, that is using Gradle internal toolchain registry, and fallback to env vars. However, this mainly affect CI.

Motivation

Easier project setup

Additional Notes

After this PR, setting up JAVA_X_HOME won't be needed anymore. One can use -PtestJvm=..., e.g. -PtestJvm=11, -PtestJvm=graalvm17, ...

@bric3 bric3 added type: enhancement Enhancements and improvements tag: no release notes Changes to exclude from release notes comp: tooling Build & Tooling labels Jan 12, 2026
@pr-commenter
Copy link

pr-commenter bot commented Jan 12, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bdu/remove-remaining-use-of-JAVA_X_HOME
git_commit_date 1768337169 1768485861
git_commit_sha 671cc8c e6645d3
release_version 1.59.0-SNAPSHOT~671cc8cdbf 1.59.0-SNAPSHOT~e6645d3778
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1768489207 1768489207
ci_job_id 1352868160 1352868160
ci_pipeline_id 90884972 90884972
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-ftmrbhhp 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-ftmrbhhp 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 58 metrics, 7 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.59.0-SNAPSHOT~e6645d3778, baseline=1.59.0-SNAPSHOT~671cc8cdbf

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.084 s) : 0, 1084270
Total [baseline] (10.799 s) : 0, 10799345
Agent [candidate] (1.087 s) : 0, 1086922
Total [candidate] (10.847 s) : 0, 10847491
section appsec
Agent [baseline] (1.265 s) : 0, 1265180
Total [baseline] (11.001 s) : 0, 11000617
Agent [candidate] (1.269 s) : 0, 1268894
Total [candidate] (11.09 s) : 0, 11090257
section iast
Agent [baseline] (1.222 s) : 0, 1221798
Total [baseline] (11.18 s) : 0, 11179934
Agent [candidate] (1.225 s) : 0, 1225441
Total [candidate] (11.244 s) : 0, 11243944
section profiling
Agent [baseline] (1.206 s) : 0, 1205651
Total [baseline] (10.918 s) : 0, 10917717
Agent [candidate] (1.207 s) : 0, 1207053
Total [candidate] (10.943 s) : 0, 10943204
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.084 s -
Agent appsec 1.265 s 180.91 ms (16.7%)
Agent iast 1.222 s 137.529 ms (12.7%)
Agent profiling 1.206 s 121.381 ms (11.2%)
Total tracing 10.799 s -
Total appsec 11.001 s 201.272 ms (1.9%)
Total iast 11.18 s 380.589 ms (3.5%)
Total profiling 10.918 s 118.373 ms (1.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.087 s -
Agent appsec 1.269 s 181.973 ms (16.7%)
Agent iast 1.225 s 138.519 ms (12.7%)
Agent profiling 1.207 s 120.131 ms (11.1%)
Total tracing 10.847 s -
Total appsec 11.09 s 242.765 ms (2.2%)
Total iast 11.244 s 396.453 ms (3.7%)
Total profiling 10.943 s 95.712 ms (0.9%)
gantt
    title petclinic - break down per module: candidate=1.59.0-SNAPSHOT~e6645d3778, baseline=1.59.0-SNAPSHOT~671cc8cdbf

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.189 ms) : 0, 1189
crashtracking [candidate] (1.182 ms) : 0, 1182
BytebuddyAgent [baseline] (650.239 ms) : 0, 650239
BytebuddyAgent [candidate] (652.557 ms) : 0, 652557
GlobalTracer [baseline] (282.939 ms) : 0, 282939
GlobalTracer [candidate] (283.381 ms) : 0, 283381
AppSec [baseline] (32.583 ms) : 0, 32583
AppSec [candidate] (32.647 ms) : 0, 32647
Debugger [baseline] (68.391 ms) : 0, 68391
Debugger [candidate] (68.07 ms) : 0, 68070
Remote Config [baseline] (634.338 µs) : 0, 634
Remote Config [candidate] (637.109 µs) : 0, 637
Telemetry [baseline] (8.949 ms) : 0, 8949
Telemetry [candidate] (9.112 ms) : 0, 9112
Flare Poller [baseline] (3.841 ms) : 0, 3841
Flare Poller [candidate] (3.816 ms) : 0, 3816
section appsec
crashtracking [baseline] (1.179 ms) : 0, 1179
crashtracking [candidate] (1.197 ms) : 0, 1197
BytebuddyAgent [baseline] (691.092 ms) : 0, 691092
BytebuddyAgent [candidate] (695.287 ms) : 0, 695287
GlobalTracer [baseline] (258.856 ms) : 0, 258856
GlobalTracer [candidate] (258.588 ms) : 0, 258588
AppSec [baseline] (173.85 ms) : 0, 173850
AppSec [candidate] (173.379 ms) : 0, 173379
Debugger [baseline] (66.22 ms) : 0, 66220
Debugger [candidate] (66.717 ms) : 0, 66717
Remote Config [baseline] (785.26 µs) : 0, 785
Remote Config [candidate] (776.711 µs) : 0, 777
Telemetry [baseline] (9.376 ms) : 0, 9376
Telemetry [candidate] (9.292 ms) : 0, 9292
Flare Poller [baseline] (3.712 ms) : 0, 3712
Flare Poller [candidate] (3.691 ms) : 0, 3691
IAST [baseline] (24.617 ms) : 0, 24617
IAST [candidate] (24.457 ms) : 0, 24457
section iast
crashtracking [baseline] (1.18 ms) : 0, 1180
crashtracking [candidate] (1.182 ms) : 0, 1182
BytebuddyAgent [baseline] (789.373 ms) : 0, 789373
BytebuddyAgent [candidate] (791.865 ms) : 0, 791865
GlobalTracer [baseline] (256.527 ms) : 0, 256527
GlobalTracer [candidate] (256.687 ms) : 0, 256687
AppSec [baseline] (33.418 ms) : 0, 33418
AppSec [candidate] (35.004 ms) : 0, 35004
Debugger [baseline] (66.399 ms) : 0, 66399
Debugger [candidate] (65.469 ms) : 0, 65469
Remote Config [baseline] (577.646 µs) : 0, 578
Remote Config [candidate] (580.35 µs) : 0, 580
Telemetry [baseline] (8.476 ms) : 0, 8476
Telemetry [candidate] (8.516 ms) : 0, 8516
Flare Poller [baseline] (3.543 ms) : 0, 3543
Flare Poller [candidate] (3.611 ms) : 0, 3611
IAST [baseline] (26.896 ms) : 0, 26896
IAST [candidate] (27.061 ms) : 0, 27061
section profiling
crashtracking [baseline] (1.211 ms) : 0, 1211
crashtracking [candidate] (1.216 ms) : 0, 1216
BytebuddyAgent [baseline] (702.251 ms) : 0, 702251
BytebuddyAgent [candidate] (702.701 ms) : 0, 702701
GlobalTracer [baseline] (221.235 ms) : 0, 221235
GlobalTracer [candidate] (221.701 ms) : 0, 221701
AppSec [baseline] (32.26 ms) : 0, 32260
AppSec [candidate] (32.08 ms) : 0, 32080
Debugger [baseline] (68.502 ms) : 0, 68502
Debugger [candidate] (68.814 ms) : 0, 68814
Remote Config [baseline] (620.411 µs) : 0, 620
Remote Config [candidate] (636.336 µs) : 0, 636
Telemetry [baseline] (9.089 ms) : 0, 9089
Telemetry [candidate] (8.84 ms) : 0, 8840
Flare Poller [baseline] (3.786 ms) : 0, 3786
Flare Poller [candidate] (3.767 ms) : 0, 3767
ProfilingAgent [baseline] (96.732 ms) : 0, 96732
ProfilingAgent [candidate] (97.354 ms) : 0, 97354
Profiling [baseline] (97.333 ms) : 0, 97333
Profiling [candidate] (97.949 ms) : 0, 97949
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.59.0-SNAPSHOT~e6645d3778, baseline=1.59.0-SNAPSHOT~671cc8cdbf

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.087 s) : 0, 1086982
Total [baseline] (8.808 s) : 0, 8807589
Agent [candidate] (1.099 s) : 0, 1099104
Total [candidate] (8.818 s) : 0, 8817782
section iast
Agent [baseline] (1.231 s) : 0, 1230858
Total [baseline] (9.374 s) : 0, 9374418
Agent [candidate] (1.23 s) : 0, 1230453
Total [candidate] (9.359 s) : 0, 9358953
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.087 s -
Agent iast 1.231 s 143.876 ms (13.2%)
Total tracing 8.808 s -
Total iast 9.374 s 566.829 ms (6.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.099 s -
Agent iast 1.23 s 131.348 ms (12.0%)
Total tracing 8.818 s -
Total iast 9.359 s 541.171 ms (6.1%)
gantt
    title insecure-bank - break down per module: candidate=1.59.0-SNAPSHOT~e6645d3778, baseline=1.59.0-SNAPSHOT~671cc8cdbf

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.217 ms) : 0, 1217
crashtracking [candidate] (1.209 ms) : 0, 1209
BytebuddyAgent [baseline] (652.04 ms) : 0, 652040
BytebuddyAgent [candidate] (660.533 ms) : 0, 660533
GlobalTracer [baseline] (284.264 ms) : 0, 284264
GlobalTracer [candidate] (286.564 ms) : 0, 286564
AppSec [baseline] (33.011 ms) : 0, 33011
AppSec [candidate] (33.215 ms) : 0, 33215
Debugger [baseline] (66.617 ms) : 0, 66617
Debugger [candidate] (68.307 ms) : 0, 68307
Remote Config [baseline] (632.539 µs) : 0, 633
Remote Config [candidate] (630.612 µs) : 0, 631
Telemetry [baseline] (9.078 ms) : 0, 9078
Telemetry [candidate] (8.948 ms) : 0, 8948
Flare Poller [baseline] (4.598 ms) : 0, 4598
Flare Poller [candidate] (3.803 ms) : 0, 3803
section iast
crashtracking [baseline] (1.19 ms) : 0, 1190
crashtracking [candidate] (1.194 ms) : 0, 1194
BytebuddyAgent [baseline] (796.271 ms) : 0, 796271
BytebuddyAgent [candidate] (796.625 ms) : 0, 796625
GlobalTracer [baseline] (258.498 ms) : 0, 258498
GlobalTracer [candidate] (258.154 ms) : 0, 258154
AppSec [baseline] (32.724 ms) : 0, 32724
AppSec [candidate] (35.09 ms) : 0, 35090
Debugger [baseline] (66.629 ms) : 0, 66629
Debugger [candidate] (64.061 ms) : 0, 64061
Remote Config [baseline] (589.527 µs) : 0, 590
Remote Config [candidate] (568.252 µs) : 0, 568
Telemetry [baseline] (8.588 ms) : 0, 8588
Telemetry [candidate] (8.524 ms) : 0, 8524
Flare Poller [baseline] (3.64 ms) : 0, 3640
Flare Poller [candidate] (3.631 ms) : 0, 3631
IAST [baseline] (27.121 ms) : 0, 27121
IAST [candidate] (27.113 ms) : 0, 27113
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bdu/remove-remaining-use-of-JAVA_X_HOME
git_commit_date 1768337169 1768485861
git_commit_sha 671cc8c e6645d3
release_version 1.59.0-SNAPSHOT~671cc8cdbf 1.59.0-SNAPSHOT~e6645d3778
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1768489790 1768489790
ci_job_id 1352868162 1352868162
ci_pipeline_id 90884972 90884972
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-68yjijlu 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-68yjijlu 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 5 performance regressions! Performance is the same for 15 metrics, 16 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:insecure-bank:iast_GLOBAL:high_load worse
[+92.354µs; +179.172µs] or [+3.345%; +6.489%]
unsure
[+22.138µs; +436.759µs] or [+0.281%; +5.539%]
unstable
[-188.582op/s; +69.144op/s] or [-14.441%; +5.295%]
2.897ms 8.114ms 1246.125op/s 2.761ms 7.885ms 1305.844op/s
scenario:load:petclinic:appsec:high_load worse
[+0.743ms; +1.488ms] or [+4.143%; +8.305%]
worse
[+0.813ms; +2.384ms] or [+2.760%; +8.092%]
unstable
[-40.443op/s; +10.693op/s] or [-15.901%; +4.204%]
19.038ms 31.063ms 239.469op/s 17.923ms 29.464ms 254.344op/s
scenario:load:petclinic:iast:high_load worse
[+1.858ms; +2.270ms] or [+10.677%; +13.047%]
worse
[+1.745ms; +2.775ms] or [+6.071%; +9.657%]
unstable
[-51.626op/s; -0.499op/s] or [-19.714%; -0.190%]
19.462ms 30.997ms 235.812op/s 17.398ms 28.737ms 261.875op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~e6645d3778, baseline=1.59.0-SNAPSHOT~671cc8cdbf
    dateFormat X
    axisFormat %s
section baseline
no_agent (17.885 ms) : 17699, 18070
.   : milestone, 17885,
appsec (18.344 ms) : 18161, 18526
.   : milestone, 18344,
code_origins (17.632 ms) : 17457, 17808
.   : milestone, 17632,
iast (17.816 ms) : 17639, 17993
.   : milestone, 17816,
profiling (18.743 ms) : 18553, 18934
.   : milestone, 18743,
tracing (17.826 ms) : 17652, 18001
.   : milestone, 17826,
section candidate
no_agent (17.983 ms) : 17800, 18166
.   : milestone, 17983,
appsec (19.494 ms) : 19295, 19693
.   : milestone, 19494,
code_origins (17.811 ms) : 17635, 17988
.   : milestone, 17811,
iast (19.792 ms) : 19594, 19991
.   : milestone, 19792,
profiling (18.949 ms) : 18759, 19139
.   : milestone, 18949,
tracing (17.598 ms) : 17426, 17770
.   : milestone, 17598,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.885 ms [17.699 ms, 18.07 ms] -
appsec 18.344 ms [18.161 ms, 18.526 ms] 458.932 µs (2.6%)
code_origins 17.632 ms [17.457 ms, 17.808 ms] -252.262 µs (-1.4%)
iast 17.816 ms [17.639 ms, 17.993 ms] -68.725 µs (-0.4%)
profiling 18.743 ms [18.553 ms, 18.934 ms] 858.588 µs (4.8%)
tracing 17.826 ms [17.652 ms, 18.001 ms] -58.597 µs (-0.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.983 ms [17.8 ms, 18.166 ms] -
appsec 19.494 ms [19.295 ms, 19.693 ms] 1.511 ms (8.4%)
code_origins 17.811 ms [17.635 ms, 17.988 ms] -171.485 µs (-1.0%)
iast 19.792 ms [19.594 ms, 19.991 ms] 1.809 ms (10.1%)
profiling 18.949 ms [18.759 ms, 19.139 ms] 966.405 µs (5.4%)
tracing 17.598 ms [17.426 ms, 17.77 ms] -385.332 µs (-2.1%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~e6645d3778, baseline=1.59.0-SNAPSHOT~671cc8cdbf
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.174 ms) : 1163, 1186
.   : milestone, 1174,
iast (3.326 ms) : 3287, 3364
.   : milestone, 3326,
iast_FULL (5.731 ms) : 5674, 5789
.   : milestone, 5731,
iast_GLOBAL (3.51 ms) : 3460, 3561
.   : milestone, 3510,
profiling (2.05 ms) : 2031, 2068
.   : milestone, 2050,
tracing (1.823 ms) : 1809, 1837
.   : milestone, 1823,
section candidate
no_agent (1.183 ms) : 1171, 1195
.   : milestone, 1183,
iast (3.315 ms) : 3270, 3359
.   : milestone, 3315,
iast_FULL (5.753 ms) : 5696, 5811
.   : milestone, 5753,
iast_GLOBAL (3.681 ms) : 3619, 3743
.   : milestone, 3681,
profiling (1.899 ms) : 1883, 1915
.   : milestone, 1899,
tracing (1.828 ms) : 1812, 1845
.   : milestone, 1828,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.174 ms [1.163 ms, 1.186 ms] -
iast 3.326 ms [3.287 ms, 3.364 ms] 2.151 ms (183.2%)
iast_FULL 5.731 ms [5.674 ms, 5.789 ms] 4.557 ms (388.1%)
iast_GLOBAL 3.51 ms [3.46 ms, 3.561 ms] 2.336 ms (198.9%)
profiling 2.05 ms [2.031 ms, 2.068 ms] 875.54 µs (74.6%)
tracing 1.823 ms [1.809 ms, 1.837 ms] 648.7 µs (55.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.183 ms [1.171 ms, 1.195 ms] -
iast 3.315 ms [3.27 ms, 3.359 ms] 2.132 ms (180.2%)
iast_FULL 5.753 ms [5.696 ms, 5.811 ms] 4.57 ms (386.3%)
iast_GLOBAL 3.681 ms [3.619 ms, 3.743 ms] 2.498 ms (211.2%)
profiling 1.899 ms [1.883 ms, 1.915 ms] 716.169 µs (60.5%)
tracing 1.828 ms [1.812 ms, 1.845 ms] 645.361 µs (54.6%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bdu/remove-remaining-use-of-JAVA_X_HOME
git_commit_date 1768337169 1768485861
git_commit_sha 671cc8c e6645d3
release_version 1.59.0-SNAPSHOT~671cc8cdbf 1.59.0-SNAPSHOT~e6645d3778
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1768489435 1768489435
ci_job_id 1352868164 1352868164
ci_pipeline_id 90884972 90884972
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-s87loek6 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-s87loek6 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 0 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:dacapo:tomcat:appsec better
[-1.379ms; -1.040ms] or [-37.292%; -28.115%]
2.488ms 3.697ms
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~e6645d3778, baseline=1.59.0-SNAPSHOT~671cc8cdbf
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.483 ms) : 1472, 1495
.   : milestone, 1483,
appsec (3.697 ms) : 3481, 3914
.   : milestone, 3697,
iast (2.238 ms) : 2172, 2304
.   : milestone, 2238,
iast_GLOBAL (2.279 ms) : 2213, 2346
.   : milestone, 2279,
profiling (2.111 ms) : 2055, 2166
.   : milestone, 2111,
tracing (2.063 ms) : 2011, 2115
.   : milestone, 2063,
section candidate
no_agent (1.476 ms) : 1464, 1487
.   : milestone, 1476,
appsec (2.488 ms) : 2435, 2541
.   : milestone, 2488,
iast (2.235 ms) : 2169, 2301
.   : milestone, 2235,
iast_GLOBAL (2.27 ms) : 2204, 2337
.   : milestone, 2270,
profiling (2.113 ms) : 2057, 2169
.   : milestone, 2113,
tracing (2.059 ms) : 2007, 2111
.   : milestone, 2059,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.483 ms [1.472 ms, 1.495 ms] -
appsec 3.697 ms [3.481 ms, 3.914 ms] 2.214 ms (149.3%)
iast 2.238 ms [2.172 ms, 2.304 ms] 754.751 µs (50.9%)
iast_GLOBAL 2.279 ms [2.213 ms, 2.346 ms] 795.903 µs (53.7%)
profiling 2.111 ms [2.055 ms, 2.166 ms] 627.47 µs (42.3%)
tracing 2.063 ms [2.011 ms, 2.115 ms] 579.686 µs (39.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.476 ms [1.464 ms, 1.487 ms] -
appsec 2.488 ms [2.435 ms, 2.541 ms] 1.012 ms (68.6%)
iast 2.235 ms [2.169 ms, 2.301 ms] 759.188 µs (51.4%)
iast_GLOBAL 2.27 ms [2.204 ms, 2.337 ms] 794.479 µs (53.8%)
profiling 2.113 ms [2.057 ms, 2.169 ms] 637.018 µs (43.2%)
tracing 2.059 ms [2.007 ms, 2.111 ms] 582.847 µs (39.5%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~e6645d3778, baseline=1.59.0-SNAPSHOT~671cc8cdbf
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.958 s) : 14958000, 14958000
.   : milestone, 14958000,
appsec (14.667 s) : 14667000, 14667000
.   : milestone, 14667000,
iast (17.943 s) : 17943000, 17943000
.   : milestone, 17943000,
iast_GLOBAL (17.823 s) : 17823000, 17823000
.   : milestone, 17823000,
profiling (15.074 s) : 15074000, 15074000
.   : milestone, 15074000,
tracing (14.896 s) : 14896000, 14896000
.   : milestone, 14896000,
section candidate
no_agent (15.403 s) : 15403000, 15403000
.   : milestone, 15403000,
appsec (14.786 s) : 14786000, 14786000
.   : milestone, 14786000,
iast (17.723 s) : 17723000, 17723000
.   : milestone, 17723000,
iast_GLOBAL (18.069 s) : 18069000, 18069000
.   : milestone, 18069000,
profiling (14.748 s) : 14748000, 14748000
.   : milestone, 14748000,
tracing (14.904 s) : 14904000, 14904000
.   : milestone, 14904000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.958 s [14.958 s, 14.958 s] -
appsec 14.667 s [14.667 s, 14.667 s] -291.0 ms (-1.9%)
iast 17.943 s [17.943 s, 17.943 s] 2.985 s (20.0%)
iast_GLOBAL 17.823 s [17.823 s, 17.823 s] 2.865 s (19.2%)
profiling 15.074 s [15.074 s, 15.074 s] 116.0 ms (0.8%)
tracing 14.896 s [14.896 s, 14.896 s] -62.0 ms (-0.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.403 s [15.403 s, 15.403 s] -
appsec 14.786 s [14.786 s, 14.786 s] -617.0 ms (-4.0%)
iast 17.723 s [17.723 s, 17.723 s] 2.32 s (15.1%)
iast_GLOBAL 18.069 s [18.069 s, 18.069 s] 2.666 s (17.3%)
profiling 14.748 s [14.748 s, 14.748 s] -655.0 ms (-4.3%)
tracing 14.904 s [14.904 s, 14.904 s] -499.0 ms (-3.2%)

@bric3 bric3 force-pushed the bdu/remove-remaining-use-of-JAVA_X_HOME branch from a1e732b to e6e93dd Compare January 13, 2026 15:57
@bric3 bric3 force-pushed the bdu/remove-remaining-use-of-JAVA_X_HOME branch from ad686ad to bea5f86 Compare January 13, 2026 20:50
@bric3 bric3 marked this pull request as ready for review January 14, 2026 17:43
@bric3 bric3 requested review from a team as code owners January 14, 2026 17:43
@bric3 bric3 requested review from PerfectSlayer, daniel-mohedano and sarahchen6 and removed request for a team January 14, 2026 17:44
Copy link
Contributor

@sarahchen6 sarahchen6 left a comment

Choose a reason for hiding this comment

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

Wow this is cool! Left a few small wording nits, but otherwise looks good!

I was wondering -- how were you able to test this? My guess is by removing local Java installations and confirming that non-JDK 21 tests can still run.

}

// "stable" is calculated as the largest X found in JAVA_X_HOME
// "stable" is calculated as the largest Java version found via toolchains or JAVA_X_HOME
Copy link
Contributor

Choose a reason for hiding this comment

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

misc: I still do not like stable name... can we rename it to latest or something similar?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'd rather not change it in this PR.

Copy link
Contributor

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD left a comment

Choose a reason for hiding this comment

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

LGTM. Just have a question - would it be possible to have JVMs from various vendors to test for example Oracle 8 and Zulu on my laptop?

Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

Erf, I just notice my review was left in draft. Submitting now

```

Running tests that require JDK-21 will require the `JAVA_21_HOME` env var set and can be done like this:
Running tests that require JDK-21 to be installed, use the `-PtestJvm=21` flag, for example:
Copy link
Contributor

Choose a reason for hiding this comment

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

🎯 suggestion: ‏How will it work to run with a specific JVM?
For JDK version based criteria, we can set the version number. But what happens for the case where you want to run against a JDK installed in a specific path?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The toolchain will be automatically downloaded with a number or (zulu11) e.g. :

// -------------> 1% CONFIGURING [10s]
// > :dd-java-agent > :dd-java-agent:agent-iast > Downloading toolchain from URI https://api.foojay.io/disco/v3.0/ids/dc9716d3e8f8baffc294fb182ceca2c2/redirect > https://api.foojay.io/disco/v3.0/ids/dc9716d3e8f8baffc294fb182ceca2c2/redirect > 80 MiB/104.5 MiB downloaded

That said provisioning won't work oracle as it cannot be provisonned automatically, so it has to be installed manually in a location that Gradle know about.

About JVM paths, this was already handled with the dd-trace-java.test-jvm-contraints plugin, so passing -PtestJvm=/path/to/fancy/jvm/ will use that jvm for tests.

private val Project.javaToolchains: JavaToolchainService
get() =
extensions.getByName("javaToolchains") as JavaToolchainService

Copy link
Contributor

Choose a reason for hiding this comment

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

Interesting, it's indeed the expected behavior.
This should be described from the documentation as it is a recurrent question and it just changes.

CONTRIBUTING.md Outdated
For IntelliJ IDEA, we suggest the following settings and plugin.

The default JVM to build and run tests from the command line should be Java 8.
The default JVM to build and run tests from the command line should be Java 21.
Copy link
Contributor

Choose a reason for hiding this comment

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

❔ question: ‏Is this still needed? Won't it be picked automatically?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Your comment made me realize the gradle-daemon-jvm.properties was missing something for this to work. Next commit fixes that.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm removing this line as it shouldn't be a concern anymore.

BUILDING.md Outdated
#### macOS


Use your JDK manager ([mise](https://mise.jdx.dev/), [sdkman](https://sdkman.io/), etc.) or set-up the required JDKs with `brew`
Copy link
Contributor

Choose a reason for hiding this comment

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

💭 thought: ‏This is confusing as the next section gives explanations for brew. We choose to explain the brew way as it is the simplest as already available tools for most MacOS users not accustomed to Java development. For the others, they already know how to install a JDK and use their preferred tool.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I reworded

check-jvm "JAVA_21_HOME" "21"
check-jvm "JAVA_25_HOME" "25"
check-jvm "JAVA_GRAALVM17_HOME" "17"
echo "ℹ️ Other JDK versions will be automatically downloaded by Gradle toolchain resolver."
Copy link
Contributor

Choose a reason for hiding this comment

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

Looks like some part of my review were lost at some point but I had a comment about the onboarded script that was lost.
Here is a follow up PR to address what I originally posted: #10384
We can proceed with yours first and I will update / resolve conflict on mine after.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Actually, is this even necessary as JAVA_HOME is not strictly required anymore ?

return launcher
} as Closure<Provider<JavaLauncher>>

ext.getLazyJavaHomeFor = (int javaVersionInteger, boolean hasNativeImage = false) -> {
Copy link
Contributor Author

@bric3 bric3 Jan 15, 2026

Choose a reason for hiding this comment

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

note: Eventually this should be moved to the test-jvm-contraints plugin.

@bric3
Copy link
Contributor Author

bric3 commented Jan 15, 2026

LGTM. Just have a question - would it be possible to have JVMs from various vendors to test for example Oracle 8 and Zulu on my laptop?

Just use -PtestJvm=zulu11. However for oracle you need to install it yourself, since no tool can provision them. You can also pass a path to testJvm property. I amended the doc.
BTW this was possible before this PR.

@bric3 bric3 force-pushed the bdu/remove-remaining-use-of-JAVA_X_HOME branch from fd1d2a7 to e55a0a4 Compare January 15, 2026 12:54
@bric3 bric3 enabled auto-merge (squash) January 15, 2026 14:32
@bric3 bric3 merged commit fae5bf3 into master Jan 15, 2026
893 of 896 checks passed
@bric3 bric3 deleted the bdu/remove-remaining-use-of-JAVA_X_HOME branch January 15, 2026 15:54
@github-actions github-actions bot added this to the 1.59.0 milestone Jan 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: tooling Build & Tooling tag: no release notes Changes to exclude from release notes type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants