From ed3d41ecec5fcaacb1eeb111b5160aec1c66a42c Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Tue, 19 May 2026 14:51:07 +0200 Subject: [PATCH 1/2] fix(smoke-tests): share debugger test helpers via java-test-fixtures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gradle 9.5 added a `DependencyHandler.project(String)` overload that returns a `ProjectDependency`. Inside a `dependencies { }` block, that overload now shadows the `Project.project(String)` accessor that previously resolved via Groovy fallback. Result: `project(':foo').sourceSets` no longer reaches the producing project's source sets — it hits a `DefaultProjectDependency` and fails with "unknown property 'sourceSets'". `dd-smoke-tests/debugger-integration-tests/build.gradle:21` used `project(':dd-java-agent:agent-debugger').sourceSets.test.output` to pull two helper classes (`LogProbeTestHelper`, `MoshiSnapshotTestHelper`) from `agent-debugger`'s test sources. Apply the canonical Gradle 9.5 fix (see #11367): expose the helpers via the `java-test-fixtures` plugin on `agent-debugger`. The helpers move from `src/test/java/com/datadog/debugger/util/` to `src/testFixtures/java/com/datadog/debugger/util/` (same package), and the consumer pulls them in via `testImplementation testFixtures(project(':dd-java-agent:agent-debugger'))`. The 15 existing in-project consumers (test classes inside agent-debugger) keep working because the testFixtures source set is automatically on the `test` source set's classpath. This unblocks running the root build on Gradle 9.5.1. Co-Authored-By: Claude Opus 4.7 (1M context) --- dd-java-agent/agent-debugger/build.gradle | 9 +++++++++ .../com/datadog/debugger/util/LogProbeTestHelper.java | 0 .../datadog/debugger/util/MoshiSnapshotTestHelper.java | 0 dd-smoke-tests/debugger-integration-tests/build.gradle | 4 ++-- 4 files changed, 11 insertions(+), 2 deletions(-) rename dd-java-agent/agent-debugger/src/{test => testFixtures}/java/com/datadog/debugger/util/LogProbeTestHelper.java (100%) rename dd-java-agent/agent-debugger/src/{test => testFixtures}/java/com/datadog/debugger/util/MoshiSnapshotTestHelper.java (100%) diff --git a/dd-java-agent/agent-debugger/build.gradle b/dd-java-agent/agent-debugger/build.gradle index 9eac038bfd8..b6836682a5d 100644 --- a/dd-java-agent/agent-debugger/build.gradle +++ b/dd-java-agent/agent-debugger/build.gradle @@ -3,6 +3,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar plugins { id 'com.gradleup.shadow' id 'dd-trace-java.version-file' + id 'java-test-fixtures' } apply from: "$rootDir/gradle/java.gradle" @@ -47,6 +48,14 @@ dependencies { implementation libs.okhttp implementation libs.slf4j + // Dependencies needed to compile the test-fixture helpers (LogProbeTestHelper, + // MoshiSnapshotTestHelper); they reference siblings + Moshi + internal-api. + testFixturesImplementation project(':dd-java-agent:agent-debugger:debugger-bootstrap') + testFixturesImplementation project(':dd-java-agent:agent-debugger:debugger-el') + testFixturesImplementation project(':internal-api') + testFixturesImplementation libs.moshi + testFixturesImplementation libs.junit.jupiter + testImplementation libs.asm.util testImplementation libs.bundles.junit5 testImplementation libs.junit.jupiter.params diff --git a/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/util/LogProbeTestHelper.java b/dd-java-agent/agent-debugger/src/testFixtures/java/com/datadog/debugger/util/LogProbeTestHelper.java similarity index 100% rename from dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/util/LogProbeTestHelper.java rename to dd-java-agent/agent-debugger/src/testFixtures/java/com/datadog/debugger/util/LogProbeTestHelper.java diff --git a/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/util/MoshiSnapshotTestHelper.java b/dd-java-agent/agent-debugger/src/testFixtures/java/com/datadog/debugger/util/MoshiSnapshotTestHelper.java similarity index 100% rename from dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/util/MoshiSnapshotTestHelper.java rename to dd-java-agent/agent-debugger/src/testFixtures/java/com/datadog/debugger/util/MoshiSnapshotTestHelper.java diff --git a/dd-smoke-tests/debugger-integration-tests/build.gradle b/dd-smoke-tests/debugger-integration-tests/build.gradle index e07b7d6e7b6..da0000bcfee 100644 --- a/dd-smoke-tests/debugger-integration-tests/build.gradle +++ b/dd-smoke-tests/debugger-integration-tests/build.gradle @@ -17,8 +17,8 @@ dependencies { testImplementation project(':dd-java-agent:agent-debugger') testImplementation project(':dd-java-agent:agent-debugger:debugger-el') testImplementation project(':dd-java-agent:agent-debugger:debugger-bootstrap') - // dependency on some helper classes made only for tests - testImplementation project(':dd-java-agent:agent-debugger').sourceSets.test.output + // helper classes shared via java-test-fixtures (LogProbeTestHelper, MoshiSnapshotTestHelper) + testImplementation testFixtures(project(':dd-java-agent:agent-debugger')) testImplementation libs.bundles.junit5 testImplementation libs.bundles.mockito } From 8ea5efc779d8c93bc8c00ae11451cfa919175e9f Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Tue, 19 May 2026 15:15:14 +0200 Subject: [PATCH 2/2] chore(mongo): remove dead `sourceSets.test.output` comment in mongo-common The commented-out line was left behind in #11367 as a marker for the broken Gradle 9.5 pattern. The 9 mongo consumers have since migrated to `testFixtures(project(':...:mongo-common'))`, and the cross-project `sourceSets.test.output` reference is no longer used. Drop the comment. Co-Authored-By: Claude Opus 4.7 (1M context) --- dd-java-agent/instrumentation/mongo/mongo-common/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/dd-java-agent/instrumentation/mongo/mongo-common/build.gradle b/dd-java-agent/instrumentation/mongo/mongo-common/build.gradle index 44e168aaf3d..9cdef640e2b 100644 --- a/dd-java-agent/instrumentation/mongo/mongo-common/build.gradle +++ b/dd-java-agent/instrumentation/mongo/mongo-common/build.gradle @@ -15,6 +15,5 @@ dependencies { testFixturesImplementation(project(':dd-java-agent:instrumentation-testing')) testFixturesImplementation group: 'org.testcontainers', name: 'mongodb', version: libs.versions.testcontainers.get() - //testImplementation project(':dd-java-agent:instrumentation:mongo').sourceSets.test.output testImplementation group: 'org.mongodb', name: 'mongo-java-driver', version: '3.1.0' }