From df430b8224165fbb72fc6f75a3ce8ba02ebb2854 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Fri, 7 Nov 2025 14:36:41 -0500 Subject: [PATCH 1/3] Organize libs versions. --- gradle/libs.versions.toml | 197 +++++++++++++++++++++++--------------- 1 file changed, 121 insertions(+), 76 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2ccd16a647b..b81993614ba 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,120 +1,165 @@ [versions] -slf4j = "1.7.30" -# The ranges are needed to allow instrumentation tests to specify the desired version. -guava = "[16.0,20.0]" # Last version to support Java 7 +# NOTE: Ranges for some versions are needed to allow instrumentation tests to specify the desired version. + +# Build +develocity = "4.2.2" + +# DataDog libs and forks +ddprof = "1.34.0" +dogstatsd = "4.4.3" okhttp = "3.12.15" # Datadog fork to support Java 7 -okhttp-legacy = "[3.0,3.12.12]" # 3.12.x is last version to support Java7 -okio = "1.17.6" # Datadog fork -spock = "2.4-M6-groovy-3.0" +# Languages +## Groovy groovy = "3.0.24" -junit5 = "5.12.2" -junit-platform = "1.12.2" -logback = "1.2.13" -bytebuddy = "1.17.7" -instrumentjava = "0.0.2" + +## Kotlin +kotlin = "1.6.21" +kotlin-plugin = "1.9.24" +kotlinx-coroutines = "1.3.0" + +## Scala scala = "2.11.12" # Last version to support Java 7 (2.12+ require Java 8+) scala211 = "2.11.12" scala212 = "2.12.18" scala213 = "2.13.11" scala33 = "3.3.0" -kotlin = "1.6.21" -kotlin-plugin = "1.9.24" -coroutines = "1.3.0" -dogstatsd = "4.4.3" -jnr-unixsocket = "0.38.22" -jnr-posix = '3.1.19' -commons = "3.2" -mockito = '4.4.0' -jctools = '3.3.0' -moshi = '1.11.0' -testcontainers = '1.21.3' -jmc = "8.1.0" + +# Bytecode manipulations & codegen autoservice = "1.1.1" -ddprof = "1.34.0" asm = "9.9" +byte-buddy = "1.17.7" +instrument-java = "0.0.2" + +# Benchmarks +jmh = "1.37" + +# Profiling +jmc = "8.1.0" + +# Web & Network +jnr-posix = "3.1.19" +jnr-unixsocket = "0.38.22" +okhttp-legacy = "[3.0,3.12.12]" # 3.12.x is last version to support Java7 +okio = "1.17.6" # Datadog fork + +# Cryptography cafe_crypto = "0.1.0" + +# Common utils +commons = "3.2" +guava = "[16.0,20.0]" # Last version to support Java 7 +jctools = "3.3.0" lz4 = "1.7.1" -jmh = "1.37" + +# Logging +slf4j = "1.7.30" +logback = "1.2.13" + +# JSON jackson = "2.20.0" -develocity = "4.2.2" +moshi = "1.11.0" + +# Testing libs +junit5 = "5.12.2" +junit-platform = "1.12.2" +mockito = "4.4.0" +spock = "2.4-M6-groovy-3.0" +testcontainers = "1.21.3" [libraries] -slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } -guava = { module = "com.google.guava:guava", version.ref = "guava" } -moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" } -jctools = { module = "org.jctools:jctools-core", version.ref = "jctools" } +# Build +develocity = { module = "com.gradle:develocity-gradle-plugin", version.ref = "develocity" } + +# DataDog libs and forks +ddprof = { module = "com.datadoghq:ddprof", version.ref = "ddprof" } +dogstatsd = { module = "com.datadoghq:java-dogstatsd-client", version.ref = "dogstatsd" } okhttp = { module = "com.datadoghq.okhttp3:okhttp", version.ref = "okhttp" } -okio = { module = "com.datadoghq.okio:okio", version.ref = "okio" } -bytebuddy = { module = "net.bytebuddy:byte-buddy", version.ref = "bytebuddy" } -bytebuddyagent = { module = "net.bytebuddy:byte-buddy-agent", version.ref = "bytebuddy" } -instrumentjava = { module = "com.datadoghq:dd-instrument-java", version.ref = "instrumentjava" } + +# Languages +## Groovy +groovy = { module = "org.codehaus.groovy:groovy-all", version.ref = "groovy" } +groovy-yaml = { module = "org.codehaus.groovy:groovy-yaml", version.ref = "groovy" } + +## Kotlin +kotlin = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } +coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } + +## Scala +scala = { module = "org.scala-lang:scala-library", version.ref = "scala" } +scala211 = { module = "org.scala-lang:scala-library", version.ref = "scala211" } +scala212 = { module = "org.scala-lang:scala-library", version.ref = "scala212" } +scala213 = { module = "org.scala-lang:scala-library", version.ref = "scala213" } +scala33 = { module = "org.scala-lang:scala3-library_3", version.ref = "scala33" } + +# Bytecode manipulations & codegen autoservice-processor = { module = "com.google.auto.service:auto-service", version.ref = "autoservice" } autoservice-annotation = { module = "com.google.auto.service:auto-service-annotations", version.ref = "autoservice" } -commons-math = { module = "org.apache.commons:commons-math3", version.ref = "commons" } -ddprof = { module = "com.datadoghq:ddprof", version.ref = "ddprof" } asm = { module = "org.ow2.asm:asm", version.ref = "asm" } +asm-commons = { module = "org.ow2.asm:asm-commons", version.ref = "asm" } asm-tree = { module = "org.ow2.asm:asm-tree", version.ref = "asm" } asm-util = { module = "org.ow2.asm:asm-util", version.ref = "asm" } -asmcommons = { module = "org.ow2.asm:asm-commons", version.ref = "asm" } -dogstatsd = { module = "com.datadoghq:java-dogstatsd-client", version.ref = "dogstatsd" } +bytebuddy = { module = "net.bytebuddy:byte-buddy", version.ref = "byte-buddy" } +bytebuddyagent = { module = "net.bytebuddy:byte-buddy-agent", version.ref = "byte-buddy" } +instrumentjava = { module = "com.datadoghq:dd-instrument-java", version.ref = "instrument-java" } + +# Profiling +jmc-common = { module = "org.openjdk.jmc:common", version.ref = "jmc" } +jmc-flightrecorder = { module = "org.openjdk.jmc:flightrecorder", version.ref = "jmc" } + +# Web & Network +okio = { module = "com.datadoghq.okio:okio", version.ref = "okio" } jnr-unixsocket = { module = "com.github.jnr:jnr-unixsocket", version.ref = "jnr-unixsocket"} +# Cryptography cafe-crypto-ed25519 = { module = "cafe.cryptography:ed25519-elisabeth", version.ref = "cafe_crypto" } cafe-crypto-curve25519 = { module = "cafe.cryptography:curve25519-elisabeth", version.ref = "cafe_crypto" } +# Common utils +aircompressor = { module = "io.airlift:aircompressor", version = "2.0.2"} # aircompressor v3 requires Java 22 +commons-math = { module = "org.apache.commons:commons-math3", version.ref = "commons" } +guava = { module = "com.google.guava:guava", version.ref = "guava" } +jctools = { module = "org.jctools:jctools-core", version.ref = "jctools" } lz4 = { module = "org.lz4:lz4-java", version.ref = "lz4" } -# aircompressor v3 requires Java 22 -aircompressor = { module = 'io.airlift:aircompressor', version = '2.0.2'} -# Testing -spock-core = { module = "org.spockframework:spock-core", version.ref = "spock" } -spock-junit4 = { module = "org.spockframework:spock-junit4", version.ref = "spock" } -spock-spring = { module = "org.spockframework:spock-spring", version.ref = "spock" } -objenesis = { module = "org.objenesis:objenesis", version = "3.3" } # Used by Spock for mocking: +# Logging +logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } +logback-core = { module = "ch.qos.logback:logback-core", version.ref = "logback" } +log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "slf4j" } +jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "slf4j" } +jul-to-slf4j = { module = "org.slf4j:jul-to-slf4j", version.ref = "slf4j" } +slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } -groovy = { module = "org.codehaus.groovy:groovy-all", version.ref = "groovy" } -groovy-yaml = { module = "org.codehaus.groovy:groovy-yaml", version.ref = "groovy" } +# JSON +jackson-databind = {module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson"} +moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" } + +# Testing libs junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit5" } junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit5" } junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit-platform" } - mokito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" } mokito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version.ref = "mockito" } - +objenesis = { module = "org.objenesis:objenesis", version = "3.3" } # Used by Spock for mocking: +spock-core = { module = "org.spockframework:spock-core", version.ref = "spock" } +spock-junit4 = { module = "org.spockframework:spock-junit4", version.ref = "spock" } +spock-spring = { module = "org.spockframework:spock-spring", version.ref = "spock" } testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" } testcontainers-localstack = { module = "org.testcontainers:localstack", version.ref = "testcontainers" } -logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } -logback-core = { module = "ch.qos.logback:logback-core", version.ref = "logback" } - -log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "slf4j" } -jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "slf4j" } -jul-to-slf4j = { module = "org.slf4j:jul-to-slf4j", version.ref = "slf4j" } - -scala = { module = "org.scala-lang:scala-library", version.ref = "scala" } -scala211 = { module = "org.scala-lang:scala-library", version.ref = "scala211" } -scala212 = { module = "org.scala-lang:scala-library", version.ref = "scala212" } -scala213 = { module = "org.scala-lang:scala-library", version.ref = "scala213" } -scala33 = { module = "org.scala-lang:scala3-library_3", version.ref = "scala33" } -kotlin = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } -coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" } - -jmc-common = { module = "org.openjdk.jmc:common", version.ref = "jmc" } -jmc-flightrecorder = { module = "org.openjdk.jmc:flightrecorder", version.ref = "jmc" } +[bundles] +# Bytecode manipulations & codegen +asm = ["asm", "asm-commons"] +cafe-crypto = ["cafe-crypto-curve25519", "cafe-crypto-ed25519"] -jackson-databind = {module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson"} +# Profiling +jmc = ["jmc-common", "jmc-flightrecorder"] -develocity = { module = "com.gradle:develocity-gradle-plugin", version.ref = "develocity" } +# Logging +test-logging = ["logback-classic", "log4j-over-slf4j", "jcl-over-slf4j", "jul-to-slf4j"] -[bundles] -asm = ["asm", "asmcommons"] -cafe-crypto = ["cafe-crypto-curve25519", "cafe-crypto-ed25519"] -# Testing -spock = ["spock-core", "objenesis"] +# Testing libs junit5 = ["junit-jupiter", "junit-jupiter-params"] junit-platform = ["junit-platform-launcher"] mockito = ["mokito-core", "mokito-junit-jupiter", "bytebuddy", "bytebuddyagent"] -test-logging = ["logback-classic", "log4j-over-slf4j", "jcl-over-slf4j", "jul-to-slf4j"] - -jmc = ["jmc-common", "jmc-flightrecorder"] +spock = ["spock-core", "objenesis"] From 31aa0593d939b63e01695895550cd5188a67f94d Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Mon, 10 Nov 2025 08:44:53 -0500 Subject: [PATCH 2/3] Applied review comments --- benchmark/load/petclinic/k6.js | 2 +- gradle/libs.versions.toml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/benchmark/load/petclinic/k6.js b/benchmark/load/petclinic/k6.js index debeab10a8e..5c16eb96010 100644 --- a/benchmark/load/petclinic/k6.js +++ b/benchmark/load/petclinic/k6.js @@ -28,7 +28,7 @@ export const options = function (variants) { scenarios[`load--petclinic--${variant}--warmup`] = { executor: 'constant-vus', // https://grafana.com/docs/k6/latest/using-k6/scenarios/executors/#all-executors vus: 5, - duration: '165s', + duration: '5m', gracefulStop: '2s', env: { "APP_URL": variants[variant]["APP_URL"] diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b81993614ba..9f23cf341bc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -60,7 +60,7 @@ logback = "1.2.13" jackson = "2.20.0" moshi = "1.11.0" -# Testing libs +# Testing junit5 = "5.12.2" junit-platform = "1.12.2" mockito = "4.4.0" @@ -134,7 +134,7 @@ slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } jackson-databind = {module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson"} moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" } -# Testing libs +# Testing junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit5" } junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit5" } junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit-platform" } @@ -158,7 +158,7 @@ jmc = ["jmc-common", "jmc-flightrecorder"] # Logging test-logging = ["logback-classic", "log4j-over-slf4j", "jcl-over-slf4j", "jul-to-slf4j"] -# Testing libs +# Testing junit5 = ["junit-jupiter", "junit-jupiter-params"] junit-platform = ["junit-platform-launcher"] mockito = ["mokito-core", "mokito-junit-jupiter", "bytebuddy", "bytebuddyagent"] From 50a1db6ddbe34a1b88791075d862d01672e51b24 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Mon, 10 Nov 2025 09:41:09 -0500 Subject: [PATCH 3/3] Revert. --- benchmark/load/petclinic/k6.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/load/petclinic/k6.js b/benchmark/load/petclinic/k6.js index 5c16eb96010..debeab10a8e 100644 --- a/benchmark/load/petclinic/k6.js +++ b/benchmark/load/petclinic/k6.js @@ -28,7 +28,7 @@ export const options = function (variants) { scenarios[`load--petclinic--${variant}--warmup`] = { executor: 'constant-vus', // https://grafana.com/docs/k6/latest/using-k6/scenarios/executors/#all-executors vus: 5, - duration: '5m', + duration: '165s', gracefulStop: '2s', env: { "APP_URL": variants[variant]["APP_URL"]