diff --git a/dd-java-agent/instrumentation/gradle/gradle-3.0/build.gradle b/dd-java-agent/instrumentation/gradle/gradle-3.0/build.gradle index 22fa1b97ca4..dd59affe950 100644 --- a/dd-java-agent/instrumentation/gradle/gradle-3.0/build.gradle +++ b/dd-java-agent/instrumentation/gradle/gradle-3.0/build.gradle @@ -9,3 +9,14 @@ repositories { dependencies { compileOnly gradleApi() } + +// This module's Groovy classes are loaded into the user's Gradle daemon, which might bundle Groovy <3.0 (Gradle <7.x). +// Groovy 4 (bundled by the build's Gradle 9+) compiles invokedynamic by default, binding dynamic calls to +// org.codehaus.groovy.vmplugin.v8.IndyInterface — a class that only exists from Groovy +// 3.0 onwards. Under Groovy <3.0 that bootstrap target is missing, so the classes fail +// to link and CI Visibility never instruments the build. Force classic call-site +// dispatch so the emitted bytecode links on older daemons regardless of the build's +// bundled Groovy version. +tasks.withType(GroovyCompile).configureEach { + groovyOptions.optimizationOptions.indy = false +} diff --git a/dd-smoke-tests/gradle/src/test/java/datadog/smoketest/GradleDaemonSmokeTest.java b/dd-smoke-tests/gradle/src/test/java/datadog/smoketest/GradleDaemonSmokeTest.java index 7983e85282e..70f6725f412 100644 --- a/dd-smoke-tests/gradle/src/test/java/datadog/smoketest/GradleDaemonSmokeTest.java +++ b/dd-smoke-tests/gradle/src/test/java/datadog/smoketest/GradleDaemonSmokeTest.java @@ -63,7 +63,7 @@ void stopGradleTestKitDaemons() { @TableTest({ "scenario | gradleVersion | projectName | successExpected | expectedTraces | expectedCoverages", - "succeed-old-gradle-3.5 | 3.5 | test-succeed-old-gradle | true | 5 | 1 ", + "succeed-old-gradle-4.10 | 4.10 | test-succeed-old-gradle | true | 5 | 1 ", "succeed-legacy | 7.6.4 | test-succeed-legacy-instrumentation | true | 5 | 1 ", "succeed-multi-module-legacy | 7.6.4 | test-succeed-multi-module-legacy-instrumentation | true | 7 | 2 ", "succeed-multi-forks-legacy | 7.6.4 | test-succeed-multi-forks-legacy-instrumentation | true | 6 | 2 ",