From ab40cca11f56d9a7abb27f56ca2fd6fb237ccedc Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Wed, 12 Aug 2026 16:46:33 -0400 Subject: [PATCH 1/2] Cleanup okhttp versions declaration and usages. --- communication/build.gradle.kts | 6 +++--- dd-java-agent/agent-aiguard/build.gradle | 2 +- dd-java-agent/agent-crashtracking/build.gradle | 5 ++--- dd-java-agent/agent-debugger/build.gradle | 4 ++-- .../agent-profiling/profiling-testing/build.gradle | 5 ++--- .../agent-profiling/profiling-uploader/build.gradle | 5 ++--- dd-java-agent/build.gradle | 4 ++-- .../akka/akka-http/akka-http-10.0/build.gradle | 2 +- .../akka/akka-http/akka-http-10.6/build.gradle | 2 +- .../instrumentation/okhttp/okhttp-3.0/build.gradle | 13 ++++++++----- .../pekko/pekko-http-1.0/build.gradle | 2 +- dd-java-agent/testing/build.gradle | 2 +- dd-smoke-tests/appsec/springboot/build.gradle | 4 ++-- dd-smoke-tests/appsec/springboot/gradle.lockfile | 3 +-- dd-smoke-tests/build.gradle | 2 +- .../debugger-integration-tests/build.gradle | 3 +-- dd-smoke-tests/iast-util/build.gradle | 4 ++-- dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle | 4 ++-- dd-smoke-tests/springboot/build.gradle | 4 ++-- gradle/dependencies.gradle | 4 ++-- gradle/libs.versions.toml | 13 +++++++------ remote-config/remote-config-core/build.gradle.kts | 2 +- telemetry/build.gradle.kts | 2 +- utils/config-utils/build.gradle.kts | 2 +- utils/flare-utils/build.gradle.kts | 2 +- 25 files changed, 50 insertions(+), 51 deletions(-) diff --git a/communication/build.gradle.kts b/communication/build.gradle.kts index afa25ef5a99..35d9c95fa85 100644 --- a/communication/build.gradle.kts +++ b/communication/build.gradle.kts @@ -17,8 +17,8 @@ dependencies { implementation(project(":utils:socket-utils")) implementation(project(":utils:version-utils")) - api(libs.okio) - api(libs.okhttp) + api(libs.okio.datadog) + api(libs.okhttp.datadog) api(libs.moshi) // metrics-lib is needed rather than metrics-api to change the default port of StatsD connection manager // TODO Could help decoupling it later to only depend on metrics-api @@ -32,7 +32,7 @@ dependencies { testImplementation( group = "com.squareup.okhttp3", name = "mockwebserver", - version = libs.versions.okhttp.legacy.get() // actually a version range + version = libs.versions.okhttp3.testing.get() ) } diff --git a/dd-java-agent/agent-aiguard/build.gradle b/dd-java-agent/agent-aiguard/build.gradle index 40d7d7d8d1f..2b78ec48eea 100644 --- a/dd-java-agent/agent-aiguard/build.gradle +++ b/dd-java-agent/agent-aiguard/build.gradle @@ -15,7 +15,7 @@ java { dependencies { api libs.slf4j implementation libs.moshi - implementation libs.okhttp + implementation libs.okhttp.datadog api project(':dd-trace-api') api project(':utils:version-utils') diff --git a/dd-java-agent/agent-crashtracking/build.gradle b/dd-java-agent/agent-crashtracking/build.gradle index 663611c6cf3..e98041fe3ec 100644 --- a/dd-java-agent/agent-crashtracking/build.gradle +++ b/dd-java-agent/agent-crashtracking/build.gradle @@ -20,7 +20,7 @@ dependencies { implementation project(':utils:version-utils') implementation project(path: ':dd-java-agent:ddprof-lib', configuration: 'shadow') - implementation libs.okhttp + implementation libs.okhttp.datadog implementation libs.moshi testImplementation libs.bundles.junit5 @@ -28,6 +28,5 @@ dependencies { testImplementation libs.assertj.core testImplementation libs.json.unit.assertj testImplementation libs.jackson.databind - testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp.legacy.get() + testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() } - diff --git a/dd-java-agent/agent-debugger/build.gradle b/dd-java-agent/agent-debugger/build.gradle index 47bbce94548..57e0b998575 100644 --- a/dd-java-agent/agent-debugger/build.gradle +++ b/dd-java-agent/agent-debugger/build.gradle @@ -49,7 +49,7 @@ dependencies { implementation libs.bundles.asm implementation libs.dogstatsd implementation libs.moshi - implementation libs.okhttp + implementation libs.okhttp.datadog implementation libs.slf4j // Dependencies needed to compile the test-fixture helpers (LogProbeTestHelper, @@ -64,7 +64,7 @@ dependencies { testImplementation libs.bundles.junit5 testImplementation libs.junit.jupiter.params testImplementation libs.bundles.mockito - testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp.legacy.get() + testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() testImplementation group: 'org.springframework.boot', name: 'spring-boot', version: '2.3.5.RELEASE' testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.3.5.RELEASE' testImplementation group: 'org.freemarker', name: 'freemarker', version: '2.3.30' diff --git a/dd-java-agent/agent-profiling/profiling-testing/build.gradle b/dd-java-agent/agent-profiling/profiling-testing/build.gradle index 473cc32b5b8..96f504e6fc8 100644 --- a/dd-java-agent/agent-profiling/profiling-testing/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-testing/build.gradle @@ -5,9 +5,8 @@ excludedClassesCoverage += [// These classes are using only for testing dependencies { api libs.guava - api libs.okhttp + api libs.okhttp.datadog api group: 'org.javadelight', name: 'delight-fileupload', version: '0.0.5' api group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1' - api group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp.legacy.get() + api group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() } - diff --git a/dd-java-agent/agent-profiling/profiling-uploader/build.gradle b/dd-java-agent/agent-profiling/profiling-uploader/build.gradle index 1cd43b0e91f..89488f35828 100644 --- a/dd-java-agent/agent-profiling/profiling-uploader/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-uploader/build.gradle @@ -30,7 +30,7 @@ dependencies { implementation project(':dd-java-agent:agent-profiling:profiling-controller') - implementation libs.okhttp + implementation libs.okhttp.datadog implementation libs.lz4 implementation libs.aircompressor @@ -39,6 +39,5 @@ dependencies { testImplementation libs.bundles.junit5 testImplementation libs.bundles.mockito testImplementation libs.jackson.databind - testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp.legacy.get() + testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() } - diff --git a/dd-java-agent/build.gradle b/dd-java-agent/build.gradle index 66917378481..ce959feccd5 100644 --- a/dd-java-agent/build.gradle +++ b/dd-java-agent/build.gradle @@ -408,12 +408,12 @@ dependencies { testImplementation project(':dd-trace-core') testImplementation project(':utils:test-utils') - testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp.legacy.get() + testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() testImplementation project(':utils:test-agent-utils:decoder') testImplementation libs.bundles.test.logging testImplementation libs.guava - testImplementation libs.okhttp + testImplementation libs.okhttp.datadog testImplementation group: 'io.opentracing', name: 'opentracing-util', version: '0.31.0' // Includes for the top level shadow jar diff --git a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/build.gradle b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/build.gradle index eb4aa4a9dd3..9c1509a5a5c 100644 --- a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/build.gradle +++ b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/build.gradle @@ -103,7 +103,7 @@ dependencies { compileOnly group: 'com.typesafe.akka', name: 'akka-http_2.11', version: '10.0.0' // These are the common dependencies that are inherited by the other test sets - testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.6.0' + testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') testImplementation project(':dd-java-agent:instrumentation:akka:akka-actor-2.5') testImplementation project(':dd-java-agent:instrumentation:scala:scala-concurrent-2.8') diff --git a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/build.gradle b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/build.gradle index c327673918f..45974e8427e 100644 --- a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/build.gradle +++ b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/build.gradle @@ -58,7 +58,7 @@ dependencies { main_java11CompileOnly group: 'com.typesafe.akka', name: 'akka-http_2.13', version: '10.6.0' main_java11CompileOnly group: 'com.typesafe.akka', name: 'akka-actor_2.13', version: '2.9.0' - //testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.6.0' + //testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() testImplementation group: 'com.typesafe.akka', name: 'akka-http_2.13', version: '10.6.0' testImplementation group: 'com.typesafe.akka', name: 'akka-stream_2.13', version: '2.9.0' testImplementation group: 'com.typesafe.akka', name: 'akka-http-jackson_2.13', version: '10.6.0' diff --git a/dd-java-agent/instrumentation/okhttp/okhttp-3.0/build.gradle b/dd-java-agent/instrumentation/okhttp/okhttp-3.0/build.gradle index 5ce7c997f99..6b5f9dac63c 100644 --- a/dd-java-agent/instrumentation/okhttp/okhttp-3.0/build.gradle +++ b/dd-java-agent/instrumentation/okhttp/okhttp-3.0/build.gradle @@ -11,16 +11,19 @@ apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest', 'test') +def baseVersion = '3.0.0' +def latestVersion = '3.+' + dependencies { - compileOnly(group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.0.0') + compileOnly(group: 'com.squareup.okhttp3', name: 'okhttp', version: baseVersion) testImplementation(group: 'com.squareup.okhttp3', name: 'okhttp') { version { - strictly '[3.0.0,4]' - prefer '3.0.0' + strictly "[${baseVersion},4)" + prefer baseVersion } } - testImplementation(group: 'com.squareup.okio', name: 'okio') { + testImplementation('com.squareup.okio:okio') { version { strictly '[1.6.0,2]' prefer '1.6.0' @@ -33,7 +36,7 @@ dependencies { } } - latestDepTestImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '[3.11.0, 4)' + latestDepTestImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: latestVersion latestDepTestImplementation group: 'com.squareup.okio', name: 'okio', version: '1.+' testRuntimeOnly(project(':dd-java-agent:instrumentation:datadog:asm:iast-instrumenter')) diff --git a/dd-java-agent/instrumentation/pekko/pekko-http-1.0/build.gradle b/dd-java-agent/instrumentation/pekko/pekko-http-1.0/build.gradle index 670814a6b77..ac0d137c2c4 100644 --- a/dd-java-agent/instrumentation/pekko/pekko-http-1.0/build.gradle +++ b/dd-java-agent/instrumentation/pekko/pekko-http-1.0/build.gradle @@ -50,7 +50,7 @@ dependencies { compileOnly group: 'org.apache.pekko', name: 'pekko-stream_2.12', version: '1.0.1' // These are the common dependencies that are inherited by the other test sets - testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.6.0' + testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') testImplementation project(':dd-java-agent:instrumentation:pekko:pekko-concurrent-1.0') testImplementation project(':dd-java-agent:instrumentation:scala:scala-concurrent-2.8') diff --git a/dd-java-agent/testing/build.gradle b/dd-java-agent/testing/build.gradle index f979f390728..e45d43daabc 100644 --- a/dd-java-agent/testing/build.gradle +++ b/dd-java-agent/testing/build.gradle @@ -48,7 +48,7 @@ dependencies { // Since jetty-server is shadowed, it is needed to exports the servlet api as well. api group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' - api group: 'com.squareup.okhttp3', name: 'logging-interceptor', version: libs.versions.okhttp.legacy.get() + api group: 'com.squareup.okhttp3', name: 'logging-interceptor', version: libs.versions.okhttp3.testing.get() api project(':dd-java-agent:agent-tooling') api project(':dd-java-agent:agent-installer') diff --git a/dd-smoke-tests/appsec/springboot/build.gradle b/dd-smoke-tests/appsec/springboot/build.gradle index 80f67bf9cdc..5065de06c85 100644 --- a/dd-smoke-tests/appsec/springboot/build.gradle +++ b/dd-smoke-tests/appsec/springboot/build.gradle @@ -34,8 +34,8 @@ dependencies { // ssrf implementation group: 'commons-httpclient', name: 'commons-httpclient', version: '2.0' implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0' - implementation group: 'com.squareup.okhttp', name: 'okhttp', version: '2.2.0' - implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.0.0' + implementation group: 'com.squareup.okhttp', name: 'okhttp', version: libs.versions.okhttp2.testing.get() + implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() testImplementation project(':dd-smoke-tests:appsec') } diff --git a/dd-smoke-tests/appsec/springboot/gradle.lockfile b/dd-smoke-tests/appsec/springboot/gradle.lockfile index cd53bec205f..bc3e474613b 100644 --- a/dd-smoke-tests/appsec/springboot/gradle.lockfile +++ b/dd-smoke-tests/appsec/springboot/gradle.lockfile @@ -47,8 +47,7 @@ com.google.re2j:re2j:1.8=testRuntimeClasspath com.h2database:h2:2.1.212=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.squareup.moshi:moshi:1.11.0=testCompileClasspath,testRuntimeClasspath com.squareup.okhttp3:logging-interceptor:3.12.12=testCompileClasspath,testRuntimeClasspath -com.squareup.okhttp3:okhttp:3.0.0=compileClasspath,runtimeClasspath -com.squareup.okhttp3:okhttp:3.12.12=testCompileClasspath,testRuntimeClasspath +com.squareup.okhttp3:okhttp:3.12.12=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.squareup.okhttp:okhttp:2.2.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.squareup.okio:okio:1.17.5=testCompileClasspath,testRuntimeClasspath com.squareup.okio:okio:1.6.0=compileClasspath,runtimeClasspath diff --git a/dd-smoke-tests/build.gradle b/dd-smoke-tests/build.gradle index 15e070ea84d..bf24d4cc3f2 100644 --- a/dd-smoke-tests/build.gradle +++ b/dd-smoke-tests/build.gradle @@ -5,7 +5,7 @@ apply from: "$rootDir/gradle/java.gradle" description = 'dd-smoke-tests' dependencies { - api libs.okhttp + api libs.okhttp.datadog api project(':dd-java-agent:testing') api project(':utils:test-agent-utils:decoder') diff --git a/dd-smoke-tests/debugger-integration-tests/build.gradle b/dd-smoke-tests/debugger-integration-tests/build.gradle index da0000bcfee..8a2f51fe6af 100644 --- a/dd-smoke-tests/debugger-integration-tests/build.gradle +++ b/dd-smoke-tests/debugger-integration-tests/build.gradle @@ -11,7 +11,7 @@ description = 'Debugger Integration Tests.' dependencies { implementation project(':dd-trace-api') implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.4.5' - implementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp.legacy.get() + implementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() testImplementation project(':dd-smoke-tests') testImplementation project(':dd-java-agent:agent-debugger') @@ -54,4 +54,3 @@ tasks.withType(Test).configureEach { } }) } - diff --git a/dd-smoke-tests/iast-util/build.gradle b/dd-smoke-tests/iast-util/build.gradle index bdd28c8140f..6f4155c365c 100644 --- a/dd-smoke-tests/iast-util/build.gradle +++ b/dd-smoke-tests/iast-util/build.gradle @@ -15,8 +15,8 @@ dependencies { // ssrf compileOnly group: 'commons-httpclient', name: 'commons-httpclient', version: '2.0' compileOnly group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0' - compileOnly group: 'com.squareup.okhttp', name: 'okhttp', version: '2.2.0' - compileOnly group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.0.0' + compileOnly group: 'com.squareup.okhttp', name: 'okhttp', version: libs.versions.okhttp2.testing.get() + compileOnly group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() compileOnly group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.0' compileOnly group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: '4.0' // mail diff --git a/dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle b/dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle index 9bd8b15c896..2e733ba80b3 100644 --- a/dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle +++ b/dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle @@ -50,8 +50,8 @@ dependencies { // ssrf implementation group: 'commons-httpclient', name: 'commons-httpclient', version: '2.0' implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0' - implementation group: 'com.squareup.okhttp', name: 'okhttp', version: '2.2.0' - implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.0.0' + implementation group: 'com.squareup.okhttp', name: 'okhttp', version: libs.versions.okhttp2.testing.get() + implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() implementation group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.0' implementation group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: '4.0' diff --git a/dd-smoke-tests/springboot/build.gradle b/dd-smoke-tests/springboot/build.gradle index c390228c8b6..a1126923f90 100644 --- a/dd-smoke-tests/springboot/build.gradle +++ b/dd-smoke-tests/springboot/build.gradle @@ -34,8 +34,8 @@ dependencies { // ssrf implementation group: 'commons-httpclient', name: 'commons-httpclient', version: '2.0' implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0' - implementation group: 'com.squareup.okhttp', name: 'okhttp', version: '2.2.0' - implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.0.0' + implementation group: 'com.squareup.okhttp', name: 'okhttp', version: libs.versions.okhttp2.testing.get() + implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() implementation group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.0' implementation group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: '4.0' diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index ff5b4938a5e..67c9e01a879 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -97,8 +97,8 @@ CachedData.deps.shared = [ // When all of the dependencies are declared in dd-trace-core, moshi overrides the okhttp's // transitive dependency. Since okhttp is declared here and moshi is not, this lead to an incompatible version // TODO: Consider migrating away from Moshi, Okio, etc. to more modern JSON libraries with better (de)serialization support - libs.okio, - libs.okhttp, + libs.okio.datadog, + libs.okhttp.datadog, libs.dogstatsd, libs.jnr.unixsocket, libs.moshi, diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 764461c9920..88f6e1280dc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,8 @@ tabletest-formatter = "1.1.2" # DataDog libs and forks ddprof = "1.49.0" dogstatsd = "4.4.5" -okhttp = "3.12.15" # Datadog fork to support Java 7 +okhttp-datadog = "3.12.15" # Datadog fork +okio-datadog = "1.17.6" # Datadog fork # Languages ## Groovy @@ -51,8 +52,6 @@ jafar = "0.16.0" # Web & Network jnr-unixsocket = "0.38.25" -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" @@ -75,12 +74,14 @@ moshi = "1.11.0" # Testing assertj = "3.27.7" +json-unit = "2.40.1" junit4 = "4.13.2" junit5 = "5.14.1" junit-platform = "1.14.1" mockito = "4.4.0" +okhttp2-testing = "2.2.0" +okhttp3-testing = "3.12.12" spock = "2.4-groovy-3.0" -json-unit = "2.40.1" tabletest = "1.2.2" testcontainers = "1.21.4" @@ -95,7 +96,8 @@ spotbugs-annotations = { module = "com.github.spotbugs:spotbugs-annotations", ve # 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" } +okhttp-datadog = { module = "com.datadoghq.okhttp3:okhttp", version.ref = "okhttp-datadog" } +okio-datadog = { module = "com.datadoghq.okio:okio", version.ref = "okio-datadog" } # Languages ## Groovy @@ -133,7 +135,6 @@ jmc-flightrecorder = { module = "org.openjdk.jmc:flightrecorder", version.ref = jafar-tools = { module = "io.btrace:jafar-tools", version.ref = "jafar" } # Web & Network -okio = { module = "com.datadoghq.okio:okio", version.ref = "okio" } jnr-unixsocket = { module = "com.github.jnr:jnr-unixsocket", version.ref = "jnr-unixsocket"} # Cryptography diff --git a/remote-config/remote-config-core/build.gradle.kts b/remote-config/remote-config-core/build.gradle.kts index f55284f2085..ebbde399df5 100644 --- a/remote-config/remote-config-core/build.gradle.kts +++ b/remote-config/remote-config-core/build.gradle.kts @@ -25,7 +25,7 @@ dependencies { api(project(":remote-config:remote-config-api")) implementation(libs.slf4j) - implementation(libs.okhttp) + implementation(libs.okhttp.datadog) implementation(libs.moshi) implementation(libs.bundles.cafe.crypto) diff --git a/telemetry/build.gradle.kts b/telemetry/build.gradle.kts index fa966f93756..e978cb137ea 100644 --- a/telemetry/build.gradle.kts +++ b/telemetry/build.gradle.kts @@ -43,7 +43,7 @@ dependencies { compileOnly(project(":utils:container-utils")) testImplementation(project(":utils:container-utils")) - api(libs.okhttp) + api(libs.okhttp.datadog) api(libs.moshi) testImplementation(project(":utils:test-utils")) diff --git a/utils/config-utils/build.gradle.kts b/utils/config-utils/build.gradle.kts index 30334c87292..da591e46fc7 100644 --- a/utils/config-utils/build.gradle.kts +++ b/utils/config-utils/build.gradle.kts @@ -61,5 +61,5 @@ dependencies { testImplementation(project(":utils:test-utils")) testImplementation("org.snakeyaml:snakeyaml-engine:2.9") - testImplementation("com.squareup.okhttp3:mockwebserver:${libs.versions.okhttp.legacy.get()}") + testImplementation("com.squareup.okhttp3:mockwebserver:${libs.versions.okhttp3.testing.get()}") } diff --git a/utils/flare-utils/build.gradle.kts b/utils/flare-utils/build.gradle.kts index f718826c226..f96c9d9c67a 100644 --- a/utils/flare-utils/build.gradle.kts +++ b/utils/flare-utils/build.gradle.kts @@ -5,7 +5,7 @@ plugins { apply(from = "$rootDir/gradle/java.gradle") dependencies { - api(libs.okhttp) + api(libs.okhttp.datadog) api(libs.moshi) compileOnly(project(":communication")) From ac8b2b70e3159bbcf6e5f818208928b1b3e99690 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Wed, 12 Aug 2026 19:08:59 -0400 Subject: [PATCH 2/2] More cleanup and renaming. --- communication/build.gradle.kts | 6 +----- dd-java-agent/agent-crashtracking/build.gradle | 2 +- dd-java-agent/agent-debugger/build.gradle | 2 +- dd-java-agent/agent-debugger/gradle.lockfile | 3 +-- .../agent-profiling/profiling-testing/build.gradle | 2 +- .../agent-profiling/profiling-uploader/build.gradle | 2 +- dd-java-agent/build.gradle | 2 +- .../akka/akka-http/akka-http-10.6/build.gradle | 1 - .../instrumentation/okhttp/okhttp-2.2/build.gradle | 5 ++--- .../instrumentation/okhttp/okhttp-3.0/build.gradle | 7 +++---- dd-smoke-tests/appsec/springboot/build.gradle | 4 ++-- dd-smoke-tests/appsec/springboot/gradle.lockfile | 3 ++- dd-smoke-tests/debugger-integration-tests/build.gradle | 2 +- dd-smoke-tests/iast-util/build.gradle | 4 ++-- dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle | 4 ++-- dd-smoke-tests/springboot/build.gradle | 4 ++-- gradle/libs.versions.toml | 8 +++++++- utils/config-utils/build.gradle.kts | 2 +- 18 files changed, 31 insertions(+), 32 deletions(-) diff --git a/communication/build.gradle.kts b/communication/build.gradle.kts index 35d9c95fa85..238b947a214 100644 --- a/communication/build.gradle.kts +++ b/communication/build.gradle.kts @@ -29,11 +29,7 @@ dependencies { testImplementation(libs.bytebuddy) testImplementation("org.msgpack:msgpack-core:0.8.20") testImplementation("org.msgpack:jackson-dataformat-msgpack:0.8.20") - testImplementation( - group = "com.squareup.okhttp3", - name = "mockwebserver", - version = libs.versions.okhttp3.testing.get() - ) + testImplementation(libs.okhttp3.mockwebserver) } extra["minimumBranchCoverage"] = 0.5 diff --git a/dd-java-agent/agent-crashtracking/build.gradle b/dd-java-agent/agent-crashtracking/build.gradle index e98041fe3ec..561fc82067b 100644 --- a/dd-java-agent/agent-crashtracking/build.gradle +++ b/dd-java-agent/agent-crashtracking/build.gradle @@ -28,5 +28,5 @@ dependencies { testImplementation libs.assertj.core testImplementation libs.json.unit.assertj testImplementation libs.jackson.databind - testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() + testImplementation libs.okhttp3.mockwebserver } diff --git a/dd-java-agent/agent-debugger/build.gradle b/dd-java-agent/agent-debugger/build.gradle index 57e0b998575..95fbbeea068 100644 --- a/dd-java-agent/agent-debugger/build.gradle +++ b/dd-java-agent/agent-debugger/build.gradle @@ -64,7 +64,7 @@ dependencies { testImplementation libs.bundles.junit5 testImplementation libs.junit.jupiter.params testImplementation libs.bundles.mockito - testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() + testImplementation libs.okhttp3.mockwebserver testImplementation group: 'org.springframework.boot', name: 'spring-boot', version: '2.3.5.RELEASE' testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.3.5.RELEASE' testImplementation group: 'org.freemarker', name: 'freemarker', version: '2.3.30' diff --git a/dd-java-agent/agent-debugger/gradle.lockfile b/dd-java-agent/agent-debugger/gradle.lockfile index 0abee813e58..63dd54ad127 100644 --- a/dd-java-agent/agent-debugger/gradle.lockfile +++ b/dd-java-agent/agent-debugger/gradle.lockfile @@ -102,8 +102,7 @@ org.jetbrains.kotlin:kotlin-compiler-embeddable:2.1.21=testCompileClasspath,test org.jetbrains.kotlin:kotlin-daemon-embeddable:2.1.21=testRuntimeClasspath org.jetbrains.kotlin:kotlin-reflect:1.6.10=testRuntimeClasspath org.jetbrains.kotlin:kotlin-script-runtime:2.1.21=testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0=testCompileClasspath -org.jetbrains.kotlin:kotlin-stdlib-common:2.1.21=testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0=testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:1.3.0=testCompileClasspath org.jetbrains.kotlin:kotlin-stdlib:2.1.21=testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.0.0=testCompileClasspath,testRuntimeClasspath diff --git a/dd-java-agent/agent-profiling/profiling-testing/build.gradle b/dd-java-agent/agent-profiling/profiling-testing/build.gradle index 96f504e6fc8..cb952a12c04 100644 --- a/dd-java-agent/agent-profiling/profiling-testing/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-testing/build.gradle @@ -8,5 +8,5 @@ dependencies { api libs.okhttp.datadog api group: 'org.javadelight', name: 'delight-fileupload', version: '0.0.5' api group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1' - api group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() + api libs.okhttp3.mockwebserver } diff --git a/dd-java-agent/agent-profiling/profiling-uploader/build.gradle b/dd-java-agent/agent-profiling/profiling-uploader/build.gradle index 89488f35828..b8c7ddea0ac 100644 --- a/dd-java-agent/agent-profiling/profiling-uploader/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-uploader/build.gradle @@ -39,5 +39,5 @@ dependencies { testImplementation libs.bundles.junit5 testImplementation libs.bundles.mockito testImplementation libs.jackson.databind - testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() + testImplementation libs.okhttp3.mockwebserver } diff --git a/dd-java-agent/build.gradle b/dd-java-agent/build.gradle index ce959feccd5..eb191d52ff0 100644 --- a/dd-java-agent/build.gradle +++ b/dd-java-agent/build.gradle @@ -408,7 +408,7 @@ dependencies { testImplementation project(':dd-trace-core') testImplementation project(':utils:test-utils') - testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() + testImplementation libs.okhttp3.mockwebserver testImplementation project(':utils:test-agent-utils:decoder') testImplementation libs.bundles.test.logging diff --git a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/build.gradle b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/build.gradle index 45974e8427e..f5ea2c7613d 100644 --- a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/build.gradle +++ b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.6/build.gradle @@ -58,7 +58,6 @@ dependencies { main_java11CompileOnly group: 'com.typesafe.akka', name: 'akka-http_2.13', version: '10.6.0' main_java11CompileOnly group: 'com.typesafe.akka', name: 'akka-actor_2.13', version: '2.9.0' - //testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() testImplementation group: 'com.typesafe.akka', name: 'akka-http_2.13', version: '10.6.0' testImplementation group: 'com.typesafe.akka', name: 'akka-stream_2.13', version: '2.9.0' testImplementation group: 'com.typesafe.akka', name: 'akka-http-jackson_2.13', version: '10.6.0' diff --git a/dd-java-agent/instrumentation/okhttp/okhttp-2.2/build.gradle b/dd-java-agent/instrumentation/okhttp/okhttp-2.2/build.gradle index 5f22c884db1..8639f2e274b 100644 --- a/dd-java-agent/instrumentation/okhttp/okhttp-2.2/build.gradle +++ b/dd-java-agent/instrumentation/okhttp/okhttp-2.2/build.gradle @@ -22,7 +22,7 @@ apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest', 'test') dependencies { - compileOnly(group: 'com.squareup.okhttp', name: 'okhttp', version: '2.2.0') + compileOnly libs.okhttp2.minimum implementation(project(':dd-java-agent:agent-tooling')) { exclude module: 'okhttp' @@ -37,7 +37,7 @@ dependencies { testImplementation(project(':dd-java-agent:instrumentation:java:java-concurrent:java-concurrent-1.8')) { exclude module: 'okhttp' } - testImplementation group: 'com.squareup.okhttp', name: 'okhttp', version: '2.2.0' + testImplementation libs.okhttp2.minimum testRuntimeOnly(project(':dd-java-agent:instrumentation:datadog:asm:iast-instrumenter')) testRuntimeOnly(project(':dd-java-agent:instrumentation:java:java-net:java-net-1.8')) @@ -45,4 +45,3 @@ dependencies { latestDepTestImplementation group: 'com.squareup.okhttp', name: 'okhttp', version: '[2.6,3)' } - diff --git a/dd-java-agent/instrumentation/okhttp/okhttp-3.0/build.gradle b/dd-java-agent/instrumentation/okhttp/okhttp-3.0/build.gradle index 6b5f9dac63c..418d337d342 100644 --- a/dd-java-agent/instrumentation/okhttp/okhttp-3.0/build.gradle +++ b/dd-java-agent/instrumentation/okhttp/okhttp-3.0/build.gradle @@ -11,16 +11,15 @@ apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest', 'test') -def baseVersion = '3.0.0' def latestVersion = '3.+' dependencies { - compileOnly(group: 'com.squareup.okhttp3', name: 'okhttp', version: baseVersion) + compileOnly libs.okhttp3.minimum testImplementation(group: 'com.squareup.okhttp3', name: 'okhttp') { version { - strictly "[${baseVersion},4)" - prefer baseVersion + strictly "[${libs.versions.okhttp3.minimum.get()},4)" + prefer libs.versions.okhttp3.minimum.get() } } testImplementation('com.squareup.okio:okio') { diff --git a/dd-smoke-tests/appsec/springboot/build.gradle b/dd-smoke-tests/appsec/springboot/build.gradle index 5065de06c85..6a129b46b9d 100644 --- a/dd-smoke-tests/appsec/springboot/build.gradle +++ b/dd-smoke-tests/appsec/springboot/build.gradle @@ -34,8 +34,8 @@ dependencies { // ssrf implementation group: 'commons-httpclient', name: 'commons-httpclient', version: '2.0' implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0' - implementation group: 'com.squareup.okhttp', name: 'okhttp', version: libs.versions.okhttp2.testing.get() - implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() + implementation libs.okhttp2.minimum + implementation libs.okhttp3.minimum testImplementation project(':dd-smoke-tests:appsec') } diff --git a/dd-smoke-tests/appsec/springboot/gradle.lockfile b/dd-smoke-tests/appsec/springboot/gradle.lockfile index bc3e474613b..cd53bec205f 100644 --- a/dd-smoke-tests/appsec/springboot/gradle.lockfile +++ b/dd-smoke-tests/appsec/springboot/gradle.lockfile @@ -47,7 +47,8 @@ com.google.re2j:re2j:1.8=testRuntimeClasspath com.h2database:h2:2.1.212=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.squareup.moshi:moshi:1.11.0=testCompileClasspath,testRuntimeClasspath com.squareup.okhttp3:logging-interceptor:3.12.12=testCompileClasspath,testRuntimeClasspath -com.squareup.okhttp3:okhttp:3.12.12=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.squareup.okhttp3:okhttp:3.0.0=compileClasspath,runtimeClasspath +com.squareup.okhttp3:okhttp:3.12.12=testCompileClasspath,testRuntimeClasspath com.squareup.okhttp:okhttp:2.2.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.squareup.okio:okio:1.17.5=testCompileClasspath,testRuntimeClasspath com.squareup.okio:okio:1.6.0=compileClasspath,runtimeClasspath diff --git a/dd-smoke-tests/debugger-integration-tests/build.gradle b/dd-smoke-tests/debugger-integration-tests/build.gradle index 8a2f51fe6af..3e17970609c 100644 --- a/dd-smoke-tests/debugger-integration-tests/build.gradle +++ b/dd-smoke-tests/debugger-integration-tests/build.gradle @@ -11,7 +11,7 @@ description = 'Debugger Integration Tests.' dependencies { implementation project(':dd-trace-api') implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.4.5' - implementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp3.testing.get() + implementation libs.okhttp3.mockwebserver testImplementation project(':dd-smoke-tests') testImplementation project(':dd-java-agent:agent-debugger') diff --git a/dd-smoke-tests/iast-util/build.gradle b/dd-smoke-tests/iast-util/build.gradle index 6f4155c365c..00787eb5b50 100644 --- a/dd-smoke-tests/iast-util/build.gradle +++ b/dd-smoke-tests/iast-util/build.gradle @@ -15,8 +15,8 @@ dependencies { // ssrf compileOnly group: 'commons-httpclient', name: 'commons-httpclient', version: '2.0' compileOnly group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0' - compileOnly group: 'com.squareup.okhttp', name: 'okhttp', version: libs.versions.okhttp2.testing.get() - compileOnly group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() + compileOnly libs.okhttp2.minimum + compileOnly libs.okhttp3.minimum compileOnly group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.0' compileOnly group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: '4.0' // mail diff --git a/dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle b/dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle index 2e733ba80b3..22a27a9e142 100644 --- a/dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle +++ b/dd-smoke-tests/spring-boot-2.6-webmvc/build.gradle @@ -50,8 +50,8 @@ dependencies { // ssrf implementation group: 'commons-httpclient', name: 'commons-httpclient', version: '2.0' implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0' - implementation group: 'com.squareup.okhttp', name: 'okhttp', version: libs.versions.okhttp2.testing.get() - implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() + implementation libs.okhttp2.minimum + implementation libs.okhttp3.minimum implementation group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.0' implementation group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: '4.0' diff --git a/dd-smoke-tests/springboot/build.gradle b/dd-smoke-tests/springboot/build.gradle index a1126923f90..b6b2464ad84 100644 --- a/dd-smoke-tests/springboot/build.gradle +++ b/dd-smoke-tests/springboot/build.gradle @@ -34,8 +34,8 @@ dependencies { // ssrf implementation group: 'commons-httpclient', name: 'commons-httpclient', version: '2.0' implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0' - implementation group: 'com.squareup.okhttp', name: 'okhttp', version: libs.versions.okhttp2.testing.get() - implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: libs.versions.okhttp3.testing.get() + implementation libs.okhttp2.minimum + implementation libs.okhttp3.minimum implementation group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.0' implementation group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: '4.0' diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 88f6e1280dc..bff69db7d71 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -52,6 +52,8 @@ jafar = "0.16.0" # Web & Network jnr-unixsocket = "0.38.25" +okhttp2-minimum = "2.2.0" +okhttp3-minimum = "3.0.0" # Cryptography cafe_crypto = "0.1.0" @@ -79,7 +81,6 @@ junit4 = "4.13.2" junit5 = "5.14.1" junit-platform = "1.14.1" mockito = "4.4.0" -okhttp2-testing = "2.2.0" okhttp3-testing = "3.12.12" spock = "2.4-groovy-3.0" tabletest = "1.2.2" @@ -163,6 +164,10 @@ 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" } +# Web & Network +okhttp2-minimum = { module = "com.squareup.okhttp:okhttp", version.ref = "okhttp2-minimum" } +okhttp3-minimum = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp3-minimum" } + # Testing assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" } json-unit-assertj = { module = "net.javacrumbs.json-unit:json-unit-assertj", version.ref = "json-unit" } @@ -173,6 +178,7 @@ junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", vers 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" } +okhttp3-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp3-testing" } 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" } diff --git a/utils/config-utils/build.gradle.kts b/utils/config-utils/build.gradle.kts index da591e46fc7..aa191dc9d14 100644 --- a/utils/config-utils/build.gradle.kts +++ b/utils/config-utils/build.gradle.kts @@ -61,5 +61,5 @@ dependencies { testImplementation(project(":utils:test-utils")) testImplementation("org.snakeyaml:snakeyaml-engine:2.9") - testImplementation("com.squareup.okhttp3:mockwebserver:${libs.versions.okhttp3.testing.get()}") + testImplementation(libs.okhttp3.mockwebserver) }