From 4f6c86c6128520adce2868202b3c1f4e688a7062 Mon Sep 17 00:00:00 2001 From: Andrea Marziali Date: Tue, 20 Oct 2026 12:02:12 +0200 Subject: [PATCH 1/2] Add convetion for netty-concurrent tests --- ...umentation.netty-concurrent-tests.gradle.kts | 6 ++++++ .../armeria/armeria-grpc-0.84/build.gradle | 2 +- .../armeria/armeria-jetty-1.24/build.gradle | 2 +- .../datastax-cassandra-3.0/build.gradle | 2 +- .../datastax-cassandra-3.8/build.gradle | 2 +- .../datastax-cassandra-4.0/build.gradle | 2 +- .../elasticsearch-rest-5.0/build.gradle | 1 + .../elasticsearch-rest-6.4/build.gradle | 1 + .../elasticsearch-rest-7.0/build.gradle | 1 + .../elasticsearch-transport-5.0/build.gradle | 1 + .../elasticsearch-transport-5.3/build.gradle | 1 + .../elasticsearch-transport-6.0/build.gradle | 1 + .../elasticsearch-transport-7.3/build.gradle | 1 + .../google-pubsub-1.116/build.gradle | 2 +- .../instrumentation/grpc-1.5/build.gradle | 2 +- .../lettuce/lettuce-4.0/build.gradle | 2 +- .../lettuce/lettuce-5.0/build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../netty/netty-4.0/build.gradle | 2 +- .../netty/netty-4.1/build.gradle | 2 +- .../netty/netty-promise-4.0/build.gradle | 2 +- .../opensearch/opensearch-rest-1.0/build.gradle | 1 + .../opensearch-transport-1.0/build.gradle | 1 + .../play/play-appsec-2.5/build.gradle | 2 +- .../instrumentation/ratpack-1.5/build.gradle | 2 +- .../reactor-netty-1.0/build.gradle | 2 +- .../redisson/redisson-2.0.0/build.gradle | 2 +- .../redisson/redisson-2.3.0/build.gradle | 2 +- .../redisson/redisson-3.10.3/build.gradle | 2 +- .../sofarpc/sofarpc-5.0/build.gradle | 2 +- .../spring-webflux-5.0/build.gradle | 2 +- .../spring-webflux-6.0/build.gradle | 2 +- .../vertx-mysql-client-3.9/build.gradle | 2 +- .../vertx-mysql-client-4.0/build.gradle | 2 +- .../vertx-pg-client-4.0/build.gradle | 2 +- .../vertx-redis-client-3.9/build.gradle | 2 +- .../vertx/vertx-rx-3.5/build.gradle | 2 +- .../vertx/vertx-web/vertx-web-3.4/build.gradle | 2 +- .../vertx/vertx-web/vertx-web-3.5/build.gradle | 2 +- .../vertx/vertx-web/vertx-web-3.9/build.gradle | 2 +- .../vertx/vertx-web/vertx-web-4.0/build.gradle | 2 +- .../vertx/vertx-web/vertx-web-5.0/build.gradle | 2 +- docs/how_to_work_with_gradle.md | 17 +++++++++++++++++ 44 files changed, 65 insertions(+), 33 deletions(-) create mode 100644 build-logic/conventions/src/main/kotlin/dd-trace-java.instrumentation.netty-concurrent-tests.gradle.kts diff --git a/build-logic/conventions/src/main/kotlin/dd-trace-java.instrumentation.netty-concurrent-tests.gradle.kts b/build-logic/conventions/src/main/kotlin/dd-trace-java.instrumentation.netty-concurrent-tests.gradle.kts new file mode 100644 index 00000000000..4b7dcb17edb --- /dev/null +++ b/build-logic/conventions/src/main/kotlin/dd-trace-java.instrumentation.netty-concurrent-tests.gradle.kts @@ -0,0 +1,6 @@ +pluginManager.withPlugin("dd-trace-java.module.instrumentation") { + dependencies { + // java-concurrent captures Netty tasks; netty-concurrent owns their activation and cleanup. + add("testImplementation", project(":dd-java-agent:instrumentation:netty:netty-concurrent-4.0")) + } +} diff --git a/dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/build.gradle b/dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/build.gradle index 5b9a3981ed6..08b728cf045 100644 --- a/dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/build.gradle +++ b/dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/build.gradle @@ -1,6 +1,7 @@ plugins { id 'com.google.protobuf' version '0.10.0' id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'idea' } @@ -56,7 +57,6 @@ dependencies { testImplementation project(':dd-java-agent:instrumentation:netty:netty-3.8') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') latestDepTestImplementation sourceSets.test.output // include the protobuf generated classes latestDepTestImplementation group: 'com.linecorp.armeria', name: 'armeria-grpc', version: '1.+' diff --git a/dd-java-agent/instrumentation/armeria/armeria-jetty-1.24/build.gradle b/dd-java-agent/instrumentation/armeria/armeria-jetty-1.24/build.gradle index f98af703f3e..947141e688f 100644 --- a/dd-java-agent/instrumentation/armeria/armeria-jetty-1.24/build.gradle +++ b/dd-java-agent/instrumentation/armeria/armeria-jetty-1.24/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -80,7 +81,6 @@ dependencies { jetty9LatestDepTestImplementation "org.eclipse.jetty:jetty-servlet:9.+", { exclude group: 'org.slf4j', module: 'slf4j-api' } - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation testFixtures(project(':dd-java-agent:instrumentation:servlet:javax-servlet:javax-servlet-3.0')) testImplementation testFixtures(project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0')) testImplementation testFixtures(project(':dd-java-agent:instrumentation:servlet:jakarta-servlet-5.0')) diff --git a/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.0/build.gradle b/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.0/build.gradle index 091f3b69961..b462ca33879 100644 --- a/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.0/build.gradle +++ b/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -71,7 +72,6 @@ dependencies { } - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:guava-10.0') latestDepTestImplementation group: 'com.datastax.cassandra', name: 'cassandra-driver-core', version: '3.7+' diff --git a/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.8/build.gradle b/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.8/build.gradle index 5290823c43b..8ac78e0e6b6 100644 --- a/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.8/build.gradle +++ b/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.8/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -39,7 +40,6 @@ dependencies { exclude group: 'com.datastax.cassandra', module: 'cassandra-driver-core' } - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:datastax-cassandra:datastax-cassandra-3.0') testImplementation project(':dd-java-agent:instrumentation:guava-10.0') diff --git a/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-4.0/build.gradle b/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-4.0/build.gradle index 5101474c0d1..8d2e892ce28 100644 --- a/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-4.0/build.gradle +++ b/dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-4.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -32,7 +33,6 @@ dependencies { // Force 0.3.3 because 0.3.0 has a version parsing bug that fails on jdk 15 testImplementation group: 'com.github.jbellis', name: "jamm", version: '0.3.3' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:guava-10.0') latestDepTestImplementation group: 'com.datastax.oss', name: 'java-driver-core', version: '+' diff --git a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-5.0/build.gradle b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-5.0/build.gradle index 91bbae825ba..b6bc217b6a3 100644 --- a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-5.0/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-5.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-6.4/build.gradle b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-6.4/build.gradle index e6e11fc89df..fcc3776e90e 100644 --- a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-6.4/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-6.4/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-7.0/build.gradle b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-7.0/build.gradle index de4f34e6921..1879871e08a 100644 --- a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-7.0/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-rest/elasticsearch-rest-7.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-5.0/build.gradle b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-5.0/build.gradle index 125b0808099..810c8146df2 100644 --- a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-5.0/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-5.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-5.3/build.gradle b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-5.3/build.gradle index 50895da86d7..ddff76e5aea 100644 --- a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-5.3/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-5.3/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-6.0/build.gradle b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-6.0/build.gradle index e95c04e131b..8a84c533939 100644 --- a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-6.0/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-6.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-7.3/build.gradle b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-7.3/build.gradle index 3f9f1b5bf55..619995d9e9f 100644 --- a/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-7.3/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/elasticsearch-transport/elasticsearch-transport-7.3/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/google-pubsub-1.116/build.gradle b/dd-java-agent/instrumentation/google-pubsub-1.116/build.gradle index 274bfff1485..06d6aa2e540 100644 --- a/dd-java-agent/instrumentation/google-pubsub-1.116/build.gradle +++ b/dd-java-agent/instrumentation/google-pubsub-1.116/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -23,7 +24,6 @@ dependencies { testImplementation group: 'org.testcontainers', name: 'gcloud', version: libs.versions.testcontainers.get() testImplementation group: 'com.google.cloud', name: 'google-cloud-pubsub', version: '1.116.0' testImplementation project(":dd-java-agent:instrumentation:grpc-1.5") - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(":dd-java-agent:instrumentation:guava-10.0") testImplementation project(":dd-java-agent:instrumentation:gax-1.4") latestDepTestImplementation group: 'com.google.cloud', name: 'google-cloud-pubsub', version: '+' diff --git a/dd-java-agent/instrumentation/grpc-1.5/build.gradle b/dd-java-agent/instrumentation/grpc-1.5/build.gradle index 45378864db7..60b118588fc 100644 --- a/dd-java-agent/instrumentation/grpc-1.5/build.gradle +++ b/dd-java-agent/instrumentation/grpc-1.5/build.gradle @@ -1,6 +1,7 @@ plugins { id 'com.google.protobuf' version '0.10.0' id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'idea' } @@ -40,7 +41,6 @@ dependencies { testImplementation group: 'io.grpc', name: 'grpc-protobuf', version: grpcVersion testImplementation group: 'io.grpc', name: 'grpc-stub', version: grpcVersion testImplementation group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:agent-debugger:debugger-bootstrap') latestDepTestImplementation sourceSets.test.output // include the protobuf generated classes diff --git a/dd-java-agent/instrumentation/lettuce/lettuce-4.0/build.gradle b/dd-java-agent/instrumentation/lettuce/lettuce-4.0/build.gradle index 9084af7db9d..726705fe767 100644 --- a/dd-java-agent/instrumentation/lettuce/lettuce-4.0/build.gradle +++ b/dd-java-agent/instrumentation/lettuce/lettuce-4.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -16,7 +17,6 @@ addTestSuiteForDir('latestDepTest', 'test') dependencies { compileOnly group: 'biz.paluch.redis', name: 'lettuce', version: '4.0.Final' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'com.github.codemonstur', name: 'embedded-redis', version: '1.4.3' testImplementation group: 'biz.paluch.redis', name: 'lettuce', version: '4.0.Final' diff --git a/dd-java-agent/instrumentation/lettuce/lettuce-5.0/build.gradle b/dd-java-agent/instrumentation/lettuce/lettuce-5.0/build.gradle index d8c186cf46a..cbe0a8d6ca8 100644 --- a/dd-java-agent/instrumentation/lettuce/lettuce-5.0/build.gradle +++ b/dd-java-agent/instrumentation/lettuce/lettuce-5.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.jmh-conventions' id 'dd-trace-java.testcontainers' } @@ -28,7 +29,6 @@ dependencies { testImplementation group: 'com.redis.testcontainers', name: 'testcontainers-redis', version: '1.6.2' testImplementation libs.testcontainers testImplementation group: 'io.lettuce', name: 'lettuce-core', version: '5.0.0.RELEASE' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:reactor-core-3.1') testImplementation project(':dd-java-agent:instrumentation:reactive-streams-1.0') // Needed for tests using Lettuce 5.1.0 -> Reactor 3.2.0, 6.0.0 -> 3.3.10, and 6.1.0 -> 3.3.15. diff --git a/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-2.0/build.gradle b/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-2.0/build.gradle index fbb034c093f..9cd85e68d66 100644 --- a/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-2.0/build.gradle +++ b/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-2.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -22,7 +23,6 @@ dependencies { testImplementation project(':dd-java-agent:instrumentation:micronaut:micronaut-http-server-netty:micronaut-http-server-netty-3.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'io.micronaut', name: 'micronaut-http-server-netty', version: '2.0.0' testAnnotationProcessor "io.micronaut:micronaut-inject-java:2.0.0" diff --git a/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-3.0/build.gradle b/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-3.0/build.gradle index 461e5993f32..d8050ffc211 100644 --- a/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-3.0/build.gradle +++ b/dd-java-agent/instrumentation/micronaut/micronaut-http-server-netty/micronaut-http-server-netty-3.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -22,7 +23,6 @@ dependencies { testImplementation project(':dd-java-agent:instrumentation:micronaut:micronaut-http-server-netty:micronaut-http-server-netty-2.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'io.micronaut', name: 'micronaut-http-server-netty', version: '3.0.0' testImplementation group: 'io.projectreactor', name: 'reactor-core', version: '3.5.3' diff --git a/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle b/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle index 4622cea1e5a..4315ce31e90 100644 --- a/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } testJvmConstraints { @@ -39,7 +40,6 @@ addTestSuiteForDir('latestDepTest', 'test') dependencies { compileOnly group: 'io.netty', name: 'netty-codec-http', version: '4.0.0.Final' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-promise-4.0') testImplementation group: 'io.netty', name: 'netty-codec-http', version: '4.0.0.Final' testImplementation group: 'org.asynchttpclient', name: 'async-http-client', version: '2.0.0' diff --git a/dd-java-agent/instrumentation/netty/netty-4.1/build.gradle b/dd-java-agent/instrumentation/netty/netty-4.1/build.gradle index 7a530dfd1d3..0cce35c6adb 100644 --- a/dd-java-agent/instrumentation/netty/netty-4.1/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-4.1/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -44,7 +45,6 @@ dependencies { api project(':dd-java-agent:instrumentation:netty:netty-common') testImplementation libs.bundles.mockito - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-promise-4.0') testImplementation project(':dd-java-agent:instrumentation:reactor-core-3.1') testImplementation project(':dd-java-agent:instrumentation:reactive-streams-1.0') diff --git a/dd-java-agent/instrumentation/netty/netty-promise-4.0/build.gradle b/dd-java-agent/instrumentation/netty/netty-promise-4.0/build.gradle index e3832fa145b..a82f9f04048 100644 --- a/dd-java-agent/instrumentation/netty/netty-promise-4.0/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-promise-4.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -17,7 +18,6 @@ addTestSuiteForDir('latestDepTest', 'test') dependencies { compileOnly group: 'io.netty', name: 'netty-common', version: '4.0.0.Final' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'io.netty', name: 'netty-common', version: '4.0.0.Final' latestDep4TestImplementation group: 'io.netty', name: 'netty-common', version: '4.+' diff --git a/dd-java-agent/instrumentation/opensearch/opensearch-rest-1.0/build.gradle b/dd-java-agent/instrumentation/opensearch/opensearch-rest-1.0/build.gradle index 542e98a11d8..fa0eb9e53fd 100644 --- a/dd-java-agent/instrumentation/opensearch/opensearch-rest-1.0/build.gradle +++ b/dd-java-agent/instrumentation/opensearch/opensearch-rest-1.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/opensearch/opensearch-transport-1.0/build.gradle b/dd-java-agent/instrumentation/opensearch/opensearch-transport-1.0/build.gradle index 44034922256..0eab768acb7 100644 --- a/dd-java-agent/instrumentation/opensearch/opensearch-transport-1.0/build.gradle +++ b/dd-java-agent/instrumentation/opensearch/opensearch-transport-1.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { diff --git a/dd-java-agent/instrumentation/play/play-appsec-2.5/build.gradle b/dd-java-agent/instrumentation/play/play-appsec-2.5/build.gradle index 27277a0bf60..b400dcb9ded 100644 --- a/dd-java-agent/instrumentation/play/play-appsec-2.5/build.gradle +++ b/dd-java-agent/instrumentation/play/play-appsec-2.5/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'scala' } @@ -79,7 +80,6 @@ dependencies { routeGeneratorImplementation libs.scala211 routeGeneratorImplementation group: 'com.typesafe.play', name: "routes-compiler_2.11", version: '2.5.0' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testRuntimeOnly project(':dd-java-agent:instrumentation:netty:netty-4.0') testRuntimeOnly project(':dd-java-agent:instrumentation:netty:netty-4.1') testRuntimeOnly project(':dd-java-agent:instrumentation:akka:akka-http:akka-http-10.0') diff --git a/dd-java-agent/instrumentation/ratpack-1.5/build.gradle b/dd-java-agent/instrumentation/ratpack-1.5/build.gradle index f2f43aee25b..79ffccb33ae 100644 --- a/dd-java-agent/instrumentation/ratpack-1.5/build.gradle +++ b/dd-java-agent/instrumentation/ratpack-1.5/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -17,7 +18,6 @@ addTestSuiteForDir('latestDepTest', 'test') dependencies { compileOnly group: 'io.ratpack', name: 'ratpack-core', version: '1.5.0' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') testImplementation group: 'io.ratpack', name: 'ratpack-groovy-test', version: '1.5.0' testImplementation 'com.sun.activation:jakarta.activation:1.2.2' diff --git a/dd-java-agent/instrumentation/reactor-netty-1.0/build.gradle b/dd-java-agent/instrumentation/reactor-netty-1.0/build.gradle index 7b25a0a9e81..7bce9b0359b 100644 --- a/dd-java-agent/instrumentation/reactor-netty-1.0/build.gradle +++ b/dd-java-agent/instrumentation/reactor-netty-1.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -25,7 +26,6 @@ dependencies { testImplementation group: 'io.projectreactor.netty', name: 'reactor-netty-http', version: '1.0.0' testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation libs.mokito.core testRuntimeOnly project(':dd-java-agent:instrumentation:reactor-core-3.1') testRuntimeOnly project(':dd-java-agent:instrumentation:reactive-streams-1.0') diff --git a/dd-java-agent/instrumentation/redisson/redisson-2.0.0/build.gradle b/dd-java-agent/instrumentation/redisson/redisson-2.0.0/build.gradle index 276af618c6b..793d9cecf2c 100644 --- a/dd-java-agent/instrumentation/redisson/redisson-2.0.0/build.gradle +++ b/dd-java-agent/instrumentation/redisson/redisson-2.0.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -20,7 +21,6 @@ dependencies { compileOnly group: 'org.redisson', name: 'redisson', version: '2.0.0' testContainerImage(image('redis:6.2.6', 'test.redis.image')) - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'com.redis.testcontainers', name: 'testcontainers-redis', version: '1.6.2' testImplementation libs.testcontainers testImplementation group: 'org.redisson', name: 'redisson', version: '2.0.0' diff --git a/dd-java-agent/instrumentation/redisson/redisson-2.3.0/build.gradle b/dd-java-agent/instrumentation/redisson/redisson-2.3.0/build.gradle index 2e9709f67a0..84810db7304 100644 --- a/dd-java-agent/instrumentation/redisson/redisson-2.3.0/build.gradle +++ b/dd-java-agent/instrumentation/redisson/redisson-2.3.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -20,7 +21,6 @@ dependencies { compileOnly group: 'org.redisson', name: 'redisson', version: '2.3.0' testContainerImage(image('redis:6.2.6', 'test.redis.image')) - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'com.redis.testcontainers', name: 'testcontainers-redis', version: '1.6.2' testImplementation libs.testcontainers testImplementation group: 'org.redisson', name: 'redisson', version: '2.3.0' diff --git a/dd-java-agent/instrumentation/redisson/redisson-3.10.3/build.gradle b/dd-java-agent/instrumentation/redisson/redisson-3.10.3/build.gradle index 899ce8240cf..47de2b0141a 100644 --- a/dd-java-agent/instrumentation/redisson/redisson-3.10.3/build.gradle +++ b/dd-java-agent/instrumentation/redisson/redisson-3.10.3/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -22,7 +23,6 @@ dependencies { } testContainerImage(image('redis:6.2.6', 'test.redis.image')) - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'com.redis.testcontainers', name: 'testcontainers-redis', version: '1.6.2' testImplementation libs.testcontainers testImplementation group: 'org.redisson', name: 'redisson', version: '3.10.3', { diff --git a/dd-java-agent/instrumentation/sofarpc/sofarpc-5.0/build.gradle b/dd-java-agent/instrumentation/sofarpc/sofarpc-5.0/build.gradle index 14bbfc19f08..1406e8f51bd 100644 --- a/dd-java-agent/instrumentation/sofarpc/sofarpc-5.0/build.gradle +++ b/dd-java-agent/instrumentation/sofarpc/sofarpc-5.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -22,7 +23,6 @@ dependencies { // Required so that GrpcServerModule / GrpcClientModule are discovered via ServiceLoader // in SofaRpcTripleWithGrpcForkedTest. testImplementation project(':dd-java-agent:instrumentation:grpc-1.5') - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: "io.grpc", name: "grpc-netty", version: "1.53.0" testImplementation group: "io.grpc", name: "grpc-core", version: "1.53.0" testImplementation group: "io.grpc", name: "grpc-stub", version: "1.53.0" diff --git a/dd-java-agent/instrumentation/spring/spring-webflux/spring-webflux-5.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-webflux/spring-webflux-5.0/build.gradle index 9fd0c7da680..a86ac7b47a4 100644 --- a/dd-java-agent/instrumentation/spring/spring-webflux/spring-webflux-5.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-webflux/spring-webflux-5.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } muzzle { @@ -83,7 +84,6 @@ dependencies { testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-promise-4.0') testImplementation project(':dd-java-agent:instrumentation:reactor-core-3.1') testImplementation project(':dd-java-agent:instrumentation:reactive-streams-1.0') diff --git a/dd-java-agent/instrumentation/spring/spring-webflux/spring-webflux-6.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-webflux/spring-webflux-6.0/build.gradle index b64728243d7..e71fca0e23c 100644 --- a/dd-java-agent/instrumentation/spring/spring-webflux/spring-webflux-6.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-webflux/spring-webflux-6.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } testJvmConstraints { @@ -25,7 +26,6 @@ dependencies { testImplementation project(':dd-java-agent:instrumentation:spring:spring-webflux:spring-webflux-5.0') testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-promise-4.0') testImplementation project(':dd-java-agent:instrumentation:reactor-core-3.1') testImplementation project(':dd-java-agent:instrumentation:reactive-streams-1.0') diff --git a/dd-java-agent/instrumentation/vertx/vertx-mysql-client/vertx-mysql-client-3.9/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-mysql-client/vertx-mysql-client-3.9/build.gradle index a14049c9907..390ac00d733 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-mysql-client/vertx-mysql-client-3.9/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-mysql-client/vertx-mysql-client-3.9/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -25,7 +26,6 @@ dependencies { compileOnly group: 'io.vertx', name: 'vertx-mysql-client', version: '3.9.0' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'io.vertx', name: 'vertx-mysql-client', version: '3.9.0' testRuntimeOnly project(':dd-java-agent:instrumentation:vertx:vertx-sql-client-3.9') diff --git a/dd-java-agent/instrumentation/vertx/vertx-mysql-client/vertx-mysql-client-4.0/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-mysql-client/vertx-mysql-client-4.0/build.gradle index 332ebe6307c..782f8c3f89c 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-mysql-client/vertx-mysql-client-4.0/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-mysql-client/vertx-mysql-client-4.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -24,7 +25,6 @@ dependencies { compileOnly group: 'io.vertx', name: 'vertx-mysql-client', version: '4.0.0' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'io.vertx', name: 'vertx-mysql-client', version: '4.0.0' testRuntimeOnly project(':dd-java-agent:instrumentation:vertx:vertx-sql-client-3.9') diff --git a/dd-java-agent/instrumentation/vertx/vertx-pg-client/vertx-pg-client-4.0/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-pg-client/vertx-pg-client-4.0/build.gradle index 9d70a1fd451..2f2ab057c2a 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-pg-client/vertx-pg-client-4.0/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-pg-client/vertx-pg-client-4.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -32,7 +33,6 @@ dependencies { compileOnly group: 'io.vertx', name: 'vertx-pg-client', version: '4.1.1' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation group: 'io.vertx', name: 'vertx-pg-client', version: '4.1.1' testRuntimeOnly project(':dd-java-agent:instrumentation:vertx:vertx-sql-client-3.9') testRuntimeOnly project(':dd-java-agent:instrumentation:vertx:vertx-pg-client:vertx-pg-client-4.4.2') diff --git a/dd-java-agent/instrumentation/vertx/vertx-redis-client/vertx-redis-client-3.9/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-redis-client/vertx-redis-client-3.9/build.gradle index 0f2d762b9ad..8439ce91db4 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-redis-client/vertx-redis-client-3.9/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-redis-client/vertx-redis-client-3.9/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' id 'dd-trace-java.testcontainers' } @@ -25,7 +26,6 @@ dependencies { testContainerImage(image('redis:6.2.6', 'test.redis.image')) // only needed for the rx tests - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:vertx:vertx-rx-3.5') testImplementation group: 'io.vertx', name: 'vertx-redis-client', version: '3.9.0' testImplementation group: 'io.vertx', name: 'vertx-rx-java2', version: '3.9.0' diff --git a/dd-java-agent/instrumentation/vertx/vertx-rx-3.5/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-rx-3.5/build.gradle index d723fabeb32..8267606c8d1 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-rx-3.5/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-rx-3.5/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } addTestSuiteForDir('latestDepTest', 'test') @@ -10,7 +11,6 @@ tasks.named("latestDepTest", Test) { } dependencies { - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') testImplementation project(':dd-java-agent:instrumentation:vertx:vertx-web:vertx-web-3.4') diff --git a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.4/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.4/build.gradle index ee5adfb19b7..81dc633df12 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.4/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.4/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } testJvmConstraints { @@ -35,7 +36,6 @@ artifacts { dependencies { compileOnly group: 'io.vertx', name: 'vertx-web', version: '3.4.0' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') testImplementation project(':dd-java-agent:agent-iast:iast-test-fixtures') diff --git a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.5/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.5/build.gradle index b5e43903bab..8949ec0b780 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.5/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.5/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } testJvmConstraints { @@ -35,7 +36,6 @@ artifacts { dependencies { compileOnly group: 'io.vertx', name: 'vertx-web', version: '3.5.0' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') diff --git a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.9/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.9/build.gradle index fe11545cf31..53b10108361 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.9/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.9/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } testJvmConstraints { @@ -31,7 +32,6 @@ artifacts { dependencies { compileOnly group: 'io.vertx', name: 'vertx-web', version: '3.9.0' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') testImplementation project(':dd-java-agent:agent-iast:iast-test-fixtures') diff --git a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-4.0/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-4.0/build.gradle index 64b39b8621f..97530ccc306 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-4.0/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-4.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } testJvmConstraints { @@ -37,7 +38,6 @@ dependencies { compileOnly group: 'io.vertx', name: 'vertx-web', version: '4.0.0' - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') testImplementation project(':dd-java-agent:instrumentation:datadog:tracing:trace-annotation') testImplementation project(':dd-java-agent:agent-iast:iast-test-fixtures') diff --git a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-5.0/build.gradle b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-5.0/build.gradle index 5f79735add4..38521c9c547 100644 --- a/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-5.0/build.gradle +++ b/dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-5.0/build.gradle @@ -1,5 +1,6 @@ plugins { id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' } tracerJava { @@ -35,7 +36,6 @@ dependencies { compileOnly group: 'io.vertx', name: 'vertx-web', version: vertxVersion - testImplementation project(':dd-java-agent:instrumentation:netty:netty-concurrent-4.0') testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1') testImplementation project(':dd-java-agent:instrumentation:vertx:vertx-web:vertx-web-4.0') diff --git a/docs/how_to_work_with_gradle.md b/docs/how_to_work_with_gradle.md index 485ed261a15..59a6d69704d 100644 --- a/docs/how_to_work_with_gradle.md +++ b/docs/how_to_work_with_gradle.md @@ -1165,6 +1165,23 @@ plugins { } ``` +### Netty Instrumentation Tests + +Instrumentation modules whose tests use Netty 4 or shaded Netty should apply the Netty test convention: + +```Gradle +plugins { + id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' +} +``` + +This opt-in convention lives in `build-logic/conventions/src/main/kotlin/` and configures the module +when `dd-trace-java.module.instrumentation` is applied. It adds the `netty-concurrent-4.0` +instrumentation to the test classpath so that Netty tasks captured +by `java-concurrent` can activate and release their context. Additional test suites inherit this +dependency. It does not add a Netty library dependency or change production dependencies. + ### Module Convention Plugins Module convention plugins are the preferred entry points for module build files. They are a stable facade over shared From b8cd3607a6f40b56e13a2e629c747473fe1ac27b Mon Sep 17 00:00:00 2001 From: Andrea Marziali Date: Tue, 20 Oct 2026 13:36:07 +0200 Subject: [PATCH 2/2] suggestions --- build.gradle.kts | 3 +++ docs/how_to_test.md | 17 +++++++++++++++++ docs/how_to_work_with_gradle.md | 22 +++++----------------- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 30606877d37..fed99824d90 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,6 +13,9 @@ plugins { id("dd-trace-java.gradle-debug") id("dd-trace-java.tracer-version") + // Keep the shared image resolver in one classloader across subproject plugin combinations. + id("dd-trace-java.testcontainers") apply false + alias(libs.plugins.shadow) apply false alias(libs.plugins.spotless) id("com.github.spotbugs") version "6.5.11" diff --git a/docs/how_to_test.md b/docs/how_to_test.md index 61d5d32291a..c1bb0581bb9 100644 --- a/docs/how_to_test.md +++ b/docs/how_to_test.md @@ -127,6 +127,23 @@ configuration. For example, `integrationTestImplementation` gets `integrationTestContainerImage`. Also, see the [plugin reference](../build-logic/testcontainers/README.md) for inheritance and shared configuration examples. +## Netty Instrumentation Tests + +Instrumentation modules whose tests use Netty 4 or shaded Netty should apply the Netty test convention: + +```Gradle +plugins { + id 'dd-trace-java.module.instrumentation' + id 'dd-trace-java.instrumentation.netty-concurrent-tests' +} +``` + +This opt-in convention lives in `build-logic/conventions/src/main/kotlin/` and configures the module +when `dd-trace-java.module.instrumentation` is applied. It adds the `netty-concurrent-4.0` +instrumentation to the test classpath so that Netty tasks captured +by `java-concurrent` can activate and release their context. Additional test suites inherit this +dependency. It does not add a Netty library dependency or change production dependencies. + ## Continuation lifecycle failures Instrumentation test harnesses always enable strict trace writes; there is no harness opt-out. diff --git a/docs/how_to_work_with_gradle.md b/docs/how_to_work_with_gradle.md index 59a6d69704d..b0f8ef43d9a 100644 --- a/docs/how_to_work_with_gradle.md +++ b/docs/how_to_work_with_gradle.md @@ -1135,6 +1135,11 @@ common configuration patterns and can be applied like any other plugin. Files ending in `.gradle.kts` placed in `buildSrc/src/main/kotlin/` target `Project` and can configure tasks, dependencies, and extensions. The `buildSrc/` directory is automatically included by Gradle before the main build. +> [!IMPORTANT] +> Prefer build logic that is independent of concrete project paths. Referring to repository projects +> from `build-logic` or `buildSrc` couples the plugin to the project layout; keep such dependencies +> deliberate and limited to conventions that need them. + In this project, convention plugins use the `dd-trace-java.` prefix. For example, `dd-trace-java.configure-tests.gradle.kts` configures test tasks across all subprojects: ```Gradle Kotlin DSL @@ -1165,23 +1170,6 @@ plugins { } ``` -### Netty Instrumentation Tests - -Instrumentation modules whose tests use Netty 4 or shaded Netty should apply the Netty test convention: - -```Gradle -plugins { - id 'dd-trace-java.module.instrumentation' - id 'dd-trace-java.instrumentation.netty-concurrent-tests' -} -``` - -This opt-in convention lives in `build-logic/conventions/src/main/kotlin/` and configures the module -when `dd-trace-java.module.instrumentation` is applied. It adds the `netty-concurrent-4.0` -instrumentation to the test classpath so that Netty tasks captured -by `java-concurrent` can activate and release their context. Additional test suites inherit this -dependency. It does not add a Netty library dependency or change production dependencies. - ### Module Convention Plugins Module convention plugins are the preferred entry points for module build files. They are a stable facade over shared