From 914c7809ac543b1eaaa73bcecb156de6b01725f5 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Fri, 24 Oct 2025 12:13:03 +0200 Subject: [PATCH 01/18] chore: Starts extracting testJvm configuration to another script plugin --- gradle/java_no_deps.gradle | 8 ++-- gradle/test-jvm-contraints.gradle.kts | 55 +++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 gradle/test-jvm-contraints.gradle.kts diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 4a4e93f7667..707bf4fdf2d 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -242,7 +242,7 @@ def configureTestJvm(Project project, boolean applyCodeCoverage) { javaLauncher = javaTestLauncher onlyIf("Allowed or forced JDK") { !isJdkExcluded(normalizedTestJvm.get()) && - (isJavaLanguageVersionAllowed(javaTestLauncher.get().metadata.languageVersion, it.name) || isJdkForced(normalizedTestJvm.get())) + (isJavaLauncherAllowed(javaTestLauncher.get(), it.name) || isJdkForced(normalizedTestJvm.get())) } // Disable jacoco for additional 'testJvm' tests to speed things up a bit @@ -450,9 +450,9 @@ def isJavaVersionAllowed(JavaVersion version, String testTaskName) { return isJavaVersionAllowedForProperty(version, testTaskName) } -def isJavaLanguageVersionAllowed(JavaLanguageVersion languageVersion, String testTaskName) { - def version = JavaVersion.toVersion(languageVersion.asInt()) - return isJavaVersionAllowed(version, testTaskName) +def isJavaLauncherAllowed(JavaLauncher javaLauncher, String testTaskName) { + def launcherVersion = JavaVersion.toVersion(javaLauncher.metadata.languageVersion.asInt()) + return isJavaVersionAllowed(launcherVersion, testTaskName) } def isJdkForced(String javaName) { diff --git a/gradle/test-jvm-contraints.gradle.kts b/gradle/test-jvm-contraints.gradle.kts new file mode 100644 index 00000000000..747de19a3b3 --- /dev/null +++ b/gradle/test-jvm-contraints.gradle.kts @@ -0,0 +1,55 @@ +import org.gradle.api.model.ObjectFactory +import org.gradle.api.provider.ProviderFactory +import org.gradle.kotlin.dsl.* + +apply(plugin = "java-library") + +abstract class TestJvmConstraintExtension @javax.inject.Inject constructor( + private val taskName: String, + private val objects: ObjectFactory, + private val providers: ProviderFactory, + private val project: Project, +) { + val minJavaVersionForTests = objects.property() + .convention( + providers.provider { project.extra["${taskName}MinJavaVersionForTests"] as JavaVersion }.orElse( + providers.provider { project.extra["minJavaVersionForTests"] as JavaVersion } + ) + ) + val maxJavaVersionForTests = objects.property() + .convention( + providers.provider { project.extra["${taskName}MaxJavaVersionForTests"] as JavaVersion }.orElse( + providers.provider { project.extra["maxJavaVersionForTests"] as JavaVersion } + ) + ) + val forceJdk = objects.listProperty().convention(emptyList()) + .convention(providers.provider { project.extra["forceJdk"] as List }) + val excludeJdk = objects.listProperty().convention(emptyList()) + .convention(providers.provider { project.extra["excludeJdk"] as List }) + + companion object { + const val NAME = "jvmConstraint" + } +} + + +tasks.withType().configureEach { + if (extensions.findByName(TestJvmConstraintExtension.NAME) != null) { + return@configureEach + } + + val extension = project.objects.newInstance(name, project.objects, project.providers, project) + + // todo add testJvm ? + + inputs.property("jvmConstraint.minJavaVersionForTests", extension.minJavaVersionForTests) + inputs.property("jvmConstraint.maxJavaVersionForTests", extension.maxJavaVersionForTests) + inputs.property("jvmConstraint.skipSettingTestJavaVersion", extension.skipSettingTestJavaVersion) + inputs.property("jvmConstraint.forceJdk", extension.forceJdk) + inputs.property("jvmConstraint.excludeJdk", extension.excludeJdk) + + extensions.add(TestJvmConstraintExtension.NAME, extension) +} + + + From 770111c6cea843957a12ac38f44a31827f7d57fa Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Fri, 24 Oct 2025 17:56:26 +0200 Subject: [PATCH 02/18] chore: Moved test jvm constraint logic to convention plugin --- .../datadog.test-jvm-contraints.gradle.kts | 85 +++++++ .../ProvideJvmArgsOnJvmLauncherVersion.kt | 36 +++ .../TestJvmConstraintsExtension.kt | 47 ++++ .../TestJvmConstraintsUtils.kt | 44 ++++ .../testJvmConstraints/TestJvmJavaLauncher.kt | 80 ++++++ gradle/java_no_deps.gradle | 232 +++++------------- gradle/test-jvm-contraints.gradle.kts | 55 ----- 7 files changed, 351 insertions(+), 228 deletions(-) create mode 100644 buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts create mode 100644 buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/ProvideJvmArgsOnJvmLauncherVersion.kt create mode 100644 buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt create mode 100644 buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt create mode 100644 buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt delete mode 100644 gradle/test-jvm-contraints.gradle.kts diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts new file mode 100644 index 00000000000..6f83149333b --- /dev/null +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -0,0 +1,85 @@ +import datadog.gradle.plugin.testJvmConstraints.ProvideJvmArgsOnJvmLauncherVersion +import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension +import datadog.gradle.plugin.testJvmConstraints.TestJvmJavaLauncher +import datadog.gradle.plugin.testJvmConstraints.* +import org.gradle.api.JavaVersion +import org.gradle.api.provider.Provider +import org.gradle.kotlin.dsl.* + +plugins { + java + jacoco apply false +} + +val testJvmJavaLauncher = TestJvmJavaLauncher(project) + +tasks.withType().configureEach { + if (extensions.findByName(TestJvmConstraintsExtension.NAME) != null) { + return@configureEach + } + + inputs.property("testJvm", providers.gradleProperty("testJvm")) + + val extension = project.objects.newInstance(name, project.objects, project.providers, project) + inputs.property("${TestJvmConstraintsExtension.NAME}.allowReflectiveAccessToJdk", extension.allowReflectiveAccessToJdk) + inputs.property("${TestJvmConstraintsExtension.NAME}.excludeJdk", extension.excludeJdk) + inputs.property("${TestJvmConstraintsExtension.NAME}.forceJdk", extension.forceJdk) + inputs.property("${TestJvmConstraintsExtension.NAME}.minJavaVersionForTests", extension.minJavaVersionForTests) + inputs.property("${TestJvmConstraintsExtension.NAME}.maxJavaVersionForTests", extension.maxJavaVersionForTests) + + extensions.add(TestJvmConstraintsExtension.NAME, extension) + + configureTestJvm(extension) +} + +// TODO make this part of the testJvm test task extension +fun Test.configureJvmArgs( + applyFromVersion: JavaVersion, + jvmArgsToApply: List, + additionalCondition: Provider? = null +) { + jvmArgumentProviders.add( + ProvideJvmArgsOnJvmLauncherVersion( + this, + applyFromVersion, + jvmArgsToApply, + additionalCondition ?: project.providers.provider { true } + ) + ) +} + +fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { + if (testJvmJavaLauncher.javaTestLauncher.isPresent) { + javaLauncher = testJvmJavaLauncher.javaTestLauncher + onlyIf("Allowed or forced JDK") { + !extension.isJdkExcluded(testJvmJavaLauncher.normalizedTestJvm.get()) && + (extension.isJavaLauncherAllowed(testJvmJavaLauncher.javaTestLauncher.get()) || + extension.isJdkForced(testJvmJavaLauncher.normalizedTestJvm.get())) + } + + // TODO refactor out ? + // Disable jacoco for additional 'testJvm' tests to speed things up a bit + extensions.configure { + val hasCoverage: Boolean by project.extra + // TODO read enabled ? + if (hasCoverage) { + isEnabled = false + } + } + } else { + onlyIf("Is current Daemon JVM allowed") { + extension.isJavaVersionAllowed(JavaVersion.current()) + } + } + + // temporary workaround when using Java16+: some tests require reflective access to java.lang/java.util + configureJvmArgs( + JavaVersion.VERSION_16, + listOf( + "--add-opens=java.base/java.lang=ALL-UNNAMED", + "--add-opens=java.base/java.util=ALL-UNNAMED" + ), + extension.allowReflectiveAccessToJdk + ) +} + diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/ProvideJvmArgsOnJvmLauncherVersion.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/ProvideJvmArgsOnJvmLauncherVersion.kt new file mode 100644 index 00000000000..9820b454c7e --- /dev/null +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/ProvideJvmArgsOnJvmLauncherVersion.kt @@ -0,0 +1,36 @@ +package datadog.gradle.plugin.testJvmConstraints + +import org.gradle.api.JavaVersion +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.testing.Test +import org.gradle.process.CommandLineArgumentProvider + +class ProvideJvmArgsOnJvmLauncherVersion( + @get:Internal + val test: Test, + + @get:Input + val applyFromVersion: JavaVersion, + + @get:Input + val jvmArgsToApply: List, + + @get:Input + val additionalCondition: Provider +) : CommandLineArgumentProvider { + + override fun asArguments(): Iterable { + val launcherVersion = test.javaLauncher + .map { JavaVersion.toVersion(it.metadata.languageVersion.asInt()) } + .orElse(JavaVersion.current()) + .get() + + return if (launcherVersion.isCompatibleWith(applyFromVersion) && additionalCondition.getOrElse(true)) { + jvmArgsToApply + } else { + emptyList() + } + } +} diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt new file mode 100644 index 00000000000..c3a8ecd74ba --- /dev/null +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt @@ -0,0 +1,47 @@ +package datadog.gradle.plugin.testJvmConstraints + +import org.gradle.api.JavaVersion +import org.gradle.api.Project +import org.gradle.api.model.ObjectFactory +import org.gradle.api.provider.ProviderFactory +import org.gradle.kotlin.dsl.extra +import org.gradle.kotlin.dsl.listProperty +import org.gradle.kotlin.dsl.property +import javax.inject.Inject + +abstract class TestJvmConstraintsExtension @Inject constructor( + private val taskName: String, + private val objects: ObjectFactory, + private val providers: ProviderFactory, + private val project: Project, +) { + val minJavaVersionForTests = objects.property() + .convention( + providers.provider { project.extra["${taskName}MinJavaVersionForTests"] as JavaVersion }.orElse( + providers.provider { project.extra["minJavaVersionForTests"] as? JavaVersion } + ) + ) + val maxJavaVersionForTests = objects.property() + .convention( + providers.provider { project.extra["${taskName}MaxJavaVersionForTests"] as JavaVersion }.orElse( + providers.provider { project.extra["maxJavaVersionForTests"] as? JavaVersion } + ) + ) + val forceJdk = objects.listProperty().convention(emptyList()) + .convention(providers.provider { + @Suppress("UNCHECKED_CAST") + project.extra["forceJdk"] as? List ?: emptyList() + }) + val excludeJdk = objects.listProperty().convention(emptyList()) + .convention(providers.provider { + @Suppress("UNCHECKED_CAST") + project.extra["excludeJdk"] as? List ?: emptyList() + }) + val allowReflectiveAccessToJdk = objects.property().convention( + providers.provider { project.extra["allowReflectiveAccessToJdk"] as? Boolean ?: false } + ) + + companion object { + const val NAME = "jvmConstraint" + } +} diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt new file mode 100644 index 00000000000..cf22dcdf475 --- /dev/null +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt @@ -0,0 +1,44 @@ +package datadog.gradle.plugin.testJvmConstraints + +import org.gradle.api.JavaVersion +import org.gradle.api.logging.Logging +import org.gradle.jvm.toolchain.JavaLauncher + +private val logger = Logging.getLogger("TestJvmConstraintsUtils") + +private fun TestJvmConstraintsExtension.isJavaVersionAllowedForProperty(currentJvmVersion: JavaVersion): Boolean { + val definedMin = minJavaVersionForTests.isPresent + val definedMax = maxJavaVersionForTests.isPresent + + if (definedMin && (minJavaVersionForTests.get()) > currentJvmVersion) { + logger.info("isJavaVersionAllowedForProperty returns false b/o minProp=${minJavaVersionForTests.get()} is defined and greater than version=$currentJvmVersion") + return false + } + + if (definedMax && (maxJavaVersionForTests.get()) < currentJvmVersion) { + logger.info("isJavaVersionAllowedForProperty returns false b/o maxProp=${maxJavaVersionForTests.get()} is defined and lower than version=$currentJvmVersion") + return false + } + + return true +} + +internal fun TestJvmConstraintsExtension.isJavaVersionAllowed(version: JavaVersion): Boolean { + return isJavaVersionAllowedForProperty(version) +} + +/** + * Convenience method to call [isJavaVersionAllowed] + */ +internal fun TestJvmConstraintsExtension.isJavaLauncherAllowed(javaLauncher: JavaLauncher): Boolean { + val launcherVersion = JavaVersion.toVersion(javaLauncher.metadata.languageVersion.asInt()) + return isJavaVersionAllowed(launcherVersion) +} + +internal fun TestJvmConstraintsExtension.isJdkForced(javaName: String): Boolean { + return forceJdk.get().any { it.equals(javaName, ignoreCase = true) } +} + +internal fun TestJvmConstraintsExtension.isJdkExcluded(javaName: String): Boolean { + return excludeJdk.get().any { it.equals(javaName, ignoreCase = true) } +} diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt new file mode 100644 index 00000000000..17977fc15f6 --- /dev/null +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt @@ -0,0 +1,80 @@ +package datadog.gradle.plugin.testJvmConstraints + +import org.gradle.kotlin.dsl.support.serviceOf +import org.gradle.api.GradleException +import org.gradle.api.Project +import org.gradle.jvm.toolchain.JavaLauncher +import org.gradle.jvm.toolchain.JavaToolchainService +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.Paths + +class TestJvmJavaLauncher(val project: Project) { + val currentJavaHomePath = System.getProperty("java.home").normalizeToJDKJavaHome() + val normalizedTestJvm = project.providers.gradleProperty("testJvm").map { testJvm -> + if (testJvm.isBlank()) { + throw GradleException("testJvm property is blank") + } + + // "stable" is calculated as the largest X found in JAVA_X_HOME + if (testJvm == "stable") { + val javaVersions = project.providers.environmentVariablesPrefixedBy("JAVA_").map { javaHomes -> + javaHomes + .filter { it.key.matches(Regex("^JAVA_[0-9]+_HOME$")) } + .map { Regex("^JAVA_(\\d+)_HOME$").find(it.key)!!.groupValues[1].toInt() } + }.get() + + if (javaVersions.isEmpty()) { + throw GradleException("No valid JAVA_X_HOME environment variables found.") + } + + javaVersions.max().toString() + } else { + testJvm + } + }.map { project.logger.info("normalized testJvm: $it"); it } + + val testJvmHomePath = normalizedTestJvm.map { + if (Files.exists(Paths.get(it))) { + it.normalizeToJDKJavaHome() + } else { + val matcher = Regex("([a-zA-Z]*)([0-9]+)").find(it) + if (matcher == null) { + throw GradleException("Unable to find launcher for Java '$it'. It needs to match '([a-zA-Z]*)([0-9]+)'.") + } + val testJvmEnv = "JAVA_${it}_HOME" + val testJvmHome = project.providers.environmentVariable(testJvmEnv).orNull + if (testJvmHome == null) { + throw GradleException("Unable to find launcher for Java '$it'. Have you set '$testJvmEnv'?") + } + + testJvmHome.normalizeToJDKJavaHome() + } + }.map { project.logger.info("testJvm home path: $it"); it } + + val javaTestLauncher = project.providers.zip(testJvmHomePath, normalizedTestJvm) { testJvmHome, testJvm -> + // Only change test JVM if it's not the one we are running the gradle build with + if (currentJavaHomePath == testJvmHome) { + project.providers.provider { null } + } else { + // This is using internal APIs + val jvmSpec = org.gradle.jvm.toolchain.internal.SpecificInstallationToolchainSpec( + project.serviceOf(), + project.file(testJvmHome) + ) + + // The provider always says that a value is present so we need to wrap it for proper error messages + project.javaToolchains.launcherFor(jvmSpec).orElse(project.providers.provider { + throw GradleException("Unable to find launcher for Java $testJvm. Does '$testJvmHome' point to a JDK?") + }) + } + }.flatMap { it }.map { project.logger.info("testJvm launcher: ${it.executablePath}"); it } + + private fun String.normalizeToJDKJavaHome(): Path { + val javaHome = project.file(this).toPath().toRealPath() + return if (javaHome.endsWith("jre")) javaHome.parent else javaHome + } + + private val Project.javaToolchains: JavaToolchainService get() = + extensions.getByName("javaToolchains") as JavaToolchainService +} diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 707bf4fdf2d..117a013bb20 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -1,9 +1,8 @@ -import java.nio.file.Files -import java.nio.file.Paths -import org.gradle.api.internal.provider.PropertyFactory -import org.gradle.jvm.toolchain.internal.SpecificInstallationToolchainSpec +import groovy.transform.CompileStatic +import datadog.gradle.plugin.testJvmConstraints.ProvideJvmArgsOnJvmLauncherVersion apply plugin: 'java-library' +apply plugin: 'datadog.test-jvm-contraints' apply from: "$rootDir/gradle/codenarc.gradle" apply from: "$rootDir/gradle/forbiddenapis.gradle" @@ -12,6 +11,40 @@ apply from: "$rootDir/gradle/spotbugs.gradle" apply from: "$rootDir/gradle/repositories.gradle" apply from: "$rootDir/gradle/test-suites.gradle" + +@CompileStatic +class TracerJavaExtension { + // TODO handle this style as well + // ext { + // forkedTestMaxJavaVersionForTests = JavaVersion.VERSION_11 + // mule46ForkedTestMaxJavaVersionForTests = JavaVersion.VERSION_11 + // latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 + // latestDepForkedTestMaxJavaVersionForTests = JavaVersion.VERSION_17 + // } + + Property skipSettingTestJavaVersion + // Property minJavaVersionForTests + // Property maxJavaVersionForTests + // MapProperty minJavaVersionForTestTasks + // ListProperty forceJdk + // ListProperty excludeJdk + + TracerJavaExtension(ObjectFactory objects, ProviderFactory providers, Project project) { + skipSettingTestJavaVersion = objects.property(Boolean)//.convention(providers.provider { project.findProperty('skipSettingTestJavaVersion') as Boolean }) + // minJavaVersionForTests = objects.property(JavaVersion) //.convention(providers.provider { project.findProperty('minJavaVersionForTests') as JavaVersion }) + // maxJavaVersionForTests = objects.property(JavaVersion)//.convention(providers.provider { project.findProperty('maxJavaVersionForTests') as JavaVersion }) + // forceJdk = objects.listProperty(String).convention([]) //.convention(providers.provider { project.findProperty('forceJdk') as List }) + // excludeJdk = objects.listProperty(String).convention([]) //.convention(providers.provider { project.findProperty('excludeJdk') as List }) + } + + def configureSourceSet(JavaVersion javaVersion) { + // TODO configure source sets and co + } +} +def tracerJavaExtension = extensions.create("tracerJava", TracerJavaExtension, objects, providers, project) + + + // Only run one testcontainers test at a time ext.testcontainersLimit = gradle.sharedServices.registerIfAbsent("testcontainersLimit", BuildService) { maxParallelUsages = 1 @@ -32,6 +65,8 @@ def applyCodeCoverage = !( project.path.startsWith(":dd-java-agent:instrumentation") || project.path.startsWith(":dd-java-agent:appsec:weblog:")) +ext.applyCodeCoverage = applyCodeCoverage + if (applyCodeCoverage) { apply from: "$rootDir/gradle/jacoco.gradle" } @@ -47,6 +82,18 @@ java { withSourcesJar() } +// TODO source set config, below is pseudo code based on tracerJavaExtension.minJavaVersionForTests +// sourceSets { +// def wanted_version = tracerJavaExtension.minJavaVersionForTests.orNull +// if (wanted_version) { +// println("source set config ${project.path}") +// register("${SourceSet.MAIN_SOURCE_SET_NAME}2_java${wanted_version.majorVersion}") { +// java.srcDirs = ["${project.projectDir}/src/main/yaj${wanted_version.majorVersion}"] +// } +// } +// } + +// TODO configures the source sets via the extension if (project.hasProperty('minJavaVersionForTests') && project.findProperty('minJavaVersionForTests') != JavaVersion.VERSION_1_7) { def version = JavaVersion.toVersion(project.findProperty('minJavaVersionForTests')) def name = "java${version.majorVersion}" @@ -74,6 +121,7 @@ if (project.hasProperty('minJavaVersionForTests') && project.findProperty('minJa from sourceSets."main_$name".output } + // TODO configure this via extension // In some cases we would like to avoid setting java version to `minJavaVersionForTests`. // For example we would like to be able to run profiling tests with ZULU8, but we cannot run it with other JDK8 implementations at the moment def skipSettingTestJavaVersion = project.hasProperty('skipSettingTestJavaVersion') && project.findProperty('skipSettingTestJavaVersion') @@ -138,36 +186,6 @@ tasks.named("javadoc", Javadoc) { } } -class ProvideJvmArgsOnJvmLauncherVersion implements CommandLineArgumentProvider { - @Internal - Test test - @Input - JavaVersion applyFromVersion - @Input - List jvmArgsToApply - @Input - Provider additionalCondition - - ProvideJvmArgsOnJvmLauncherVersion(Test test, JavaVersion applyFromVersion, List jvmArgsToApply, Provider additionalCondition) { - this.test = test - this.applyFromVersion = applyFromVersion - this.jvmArgsToApply = jvmArgsToApply - this.additionalCondition = additionalCondition - } - - @Override - Iterable asArguments() { - def launcherVersion = test.javaLauncher.map { JavaVersion.toVersion(it.metadata.languageVersion.asInt()) } - .orElse(JavaVersion.current()) - .get() - - if (launcherVersion.isCompatibleWith(applyFromVersion) && additionalCondition.getOrElse(true)) { - jvmArgsToApply - } else { - [] - } - } -} ext.configureJvmArgs = (Test testTask, JavaVersion applyFromVersion, List jvmArgsToApply, Provider additionalCondition = null) -> { testTask.jvmArgumentProviders.add(new ProvideJvmArgsOnJvmLauncherVersion( testTask, @@ -177,102 +195,16 @@ ext.configureJvmArgs = (Test testTask, JavaVersion applyFromVersion, List - if (testJvm.isBlank()) { - throw new GradleException("testJvm property is blank") - } - - // "stable" is calculated as the largest X found in JAVA_X_HOME - if (testJvm == "stable") { - def javaVersions = providers.environmentVariablesPrefixedBy("JAVA_").map { javaHomes -> - javaHomes - .findAll { it.key =~ /^JAVA_[0-9]+_HOME$/ } - .collect { (it.key =~ /^JAVA_(\d+)_HOME$/)[0][1] as Integer } - }.get() - - if (javaVersions.isEmpty()) { - throw new GradleException("No valid JAVA_X_HOME environment variables found.") - } - - javaVersions.max().toString() - } else { - testJvm - } - }.map { logger.info("normalized testJvm: " + it); it } - - def testJvmHomePath = normalizedTestJvm.map { - if (Files.exists(Paths.get(it))) { - getJavaHomePath(it) - } else { - def matcher = it =~ /([a-zA-Z]*)([0-9]+)/ - if (!matcher.matches()) { - throw new GradleException("Unable to find launcher for Java '$it'. It needs to match '([a-zA-Z]*)([0-9]+)'.") - } - def testJvmLanguageVersion = matcher.group(2) as Integer - def testJvmEnv = "JAVA_${it}_HOME" - def testJvmHome = providers.environmentVariable(testJvmEnv).orNull - if (!testJvmHome) { - throw new GradleException("Unable to find launcher for Java '$it'. Have you set '$testJvmEnv'?") - } - - getJavaHomePath(testJvmHome) - } - }.map { logger.info("testJvm home path: " + it); it } - - def javaTestLauncher = testJvmHomePath.zip(normalizedTestJvm) { testJvmHome, testJvm -> - // Only change test JVM if it's not the one we are running the gradle build with - if (currentJavaHomePath == testJvmHome) { - null - } else { - def jvmSpec = new SpecificInstallationToolchainSpec(project.services.get(PropertyFactory), file(testJvmHome)) - // The provider always says that a value is present so we need to wrap it for proper error messages - - javaToolchains.launcherFor(jvmSpec).orElse(providers.provider { - throw new GradleException("Unable to find launcher for Java $testJvm. Does '$testJvmHome' point to a JDK?") - }) - } - }.flatMap { it }.map { logger.info("testJvm launcher: " + it.executablePath); it } - - // Apply the launcher - tasks.withType(Test).configureEach { Test testTask -> - if (javaTestLauncher.isPresent()) { - javaLauncher = javaTestLauncher - onlyIf("Allowed or forced JDK") { - !isJdkExcluded(normalizedTestJvm.get()) && - (isJavaLauncherAllowed(javaTestLauncher.get(), it.name) || isJdkForced(normalizedTestJvm.get())) - } - - // Disable jacoco for additional 'testJvm' tests to speed things up a bit - if (applyCodeCoverage) { - jacoco { - enabled = false - } - } - } else { - onlyIf("is current Daemon JVM allowed") { isJavaVersionAllowed(JavaVersion.current(), testTask.name) } - } - - // temporary workaround when using Java16+: some tests require reflective access to java.lang/java.util - configureJvmArgs( - testTask, - JavaVersion.VERSION_16, - ['--add-opens=java.base/java.lang=ALL-UNNAMED', '--add-opens=java.base/java.util=ALL-UNNAMED'], - project.providers.provider { project.properties['allowReflectiveAccessToJdk'] as Boolean }.orElse(true) - ) - - if (configurations.hasProperty("latestDepTestRuntimeClasspath")) { - doFirst { - def testArtifacts = configurations.testRuntimeClasspath.resolvedConfiguration.resolvedArtifacts - def latestTestArtifacts = configurations.latestDepTestRuntimeClasspath.resolvedConfiguration.resolvedArtifacts - assert testArtifacts != latestTestArtifacts: "latestDepTest dependencies are identical to test" - } +// TODO move to test-suites config ? +tasks.withType(Test).configureEach { Test testTask -> + if (configurations.hasProperty("latestDepTestRuntimeClasspath")) { + doFirst { + def testArtifacts = configurations.testRuntimeClasspath.resolvedConfiguration.resolvedArtifacts + def latestTestArtifacts = configurations.latestDepTestRuntimeClasspath.resolvedConfiguration.resolvedArtifacts + assert testArtifacts != latestTestArtifacts: "latestDepTest dependencies are identical to test" } } } -configureTestJvm(project, applyCodeCoverage) [JavaCompile, ScalaCompile, GroovyCompile].each { type -> @@ -421,52 +353,6 @@ ext.getJavaLauncherFor = (javaVersionInteger) -> { return launcher } as Closure> -def isJavaVersionAllowedForProperty(JavaVersion version, String propertyPrefix = "") { - def minProp = propertyPrefix.isEmpty() ? 'minJavaVersionForTests' : "${propertyPrefix}MinJavaVersionForTests" - def maxProp = propertyPrefix.isEmpty() ? 'maxJavaVersionForTests' : "${propertyPrefix}MaxJavaVersionForTests" - def definedMin = project.hasProperty(minProp) - def definedMax = project.hasProperty(maxProp) - if (definedMin && project.findProperty(minProp).compareTo(version) > 0) { - logger.info("isJavaVersionAllowedForProperty is false b/o minProp=${minProp} is defined and greater than version=${version}") - return false - } - //default to the general min if defined and specific one is was not defined - if (!propertyPrefix.isEmpty() && !definedMin && project.hasProperty('minJavaVersionForTests') && project.findProperty('minJavaVersionForTests').compareTo(version) > 0) { - logger.info("isJavaVersionAllowedForProperty is false b/o minJavaVersionForTests=${project.findProperty('minJavaVersionForTests')} is defined and greater than version=${version}") - return false - } - if (definedMax && project.findProperty(maxProp).compareTo(version) < 0) { - logger.info("isJavaVersionAllowedForProperty is false b/o maxProp=${project.findProperty(maxProp)} is defined and lower than version=${version}") - return false - } - if (!propertyPrefix.isEmpty() && !definedMax && project.hasProperty('maxJavaVersionForTests') && project.findProperty('maxJavaVersionForTests').compareTo(version) < 0) { - logger.info("isJavaVersionAllowedForProperty is false b/o maxJavaVersionForTests=${project.findProperty('maxJavaVersionForTests')} is defined and lower than version=${version}") - return false - } - return true -} - -def isJavaVersionAllowed(JavaVersion version, String testTaskName) { - return isJavaVersionAllowedForProperty(version, testTaskName) -} - -def isJavaLauncherAllowed(JavaLauncher javaLauncher, String testTaskName) { - def launcherVersion = JavaVersion.toVersion(javaLauncher.metadata.languageVersion.asInt()) - return isJavaVersionAllowed(launcherVersion, testTaskName) -} - -def isJdkForced(String javaName) { - return (project.hasProperty('forceJdk') && project.findProperty('forceJdk').any { it.equalsIgnoreCase(javaName) }) -} - -def isJdkExcluded(String javaName) { - return (project.hasProperty('excludeJdk') && project.findProperty('excludeJdk').any { it.equalsIgnoreCase(javaName) }) -} - -def getJavaHomePath(String path) { - def javaHome = new File(path).toPath().toRealPath() - return javaHome.endsWith("jre") ? javaHome.parent : javaHome -} tasks.register('testJar', Jar) { dependsOn(testClasses) diff --git a/gradle/test-jvm-contraints.gradle.kts b/gradle/test-jvm-contraints.gradle.kts deleted file mode 100644 index 747de19a3b3..00000000000 --- a/gradle/test-jvm-contraints.gradle.kts +++ /dev/null @@ -1,55 +0,0 @@ -import org.gradle.api.model.ObjectFactory -import org.gradle.api.provider.ProviderFactory -import org.gradle.kotlin.dsl.* - -apply(plugin = "java-library") - -abstract class TestJvmConstraintExtension @javax.inject.Inject constructor( - private val taskName: String, - private val objects: ObjectFactory, - private val providers: ProviderFactory, - private val project: Project, -) { - val minJavaVersionForTests = objects.property() - .convention( - providers.provider { project.extra["${taskName}MinJavaVersionForTests"] as JavaVersion }.orElse( - providers.provider { project.extra["minJavaVersionForTests"] as JavaVersion } - ) - ) - val maxJavaVersionForTests = objects.property() - .convention( - providers.provider { project.extra["${taskName}MaxJavaVersionForTests"] as JavaVersion }.orElse( - providers.provider { project.extra["maxJavaVersionForTests"] as JavaVersion } - ) - ) - val forceJdk = objects.listProperty().convention(emptyList()) - .convention(providers.provider { project.extra["forceJdk"] as List }) - val excludeJdk = objects.listProperty().convention(emptyList()) - .convention(providers.provider { project.extra["excludeJdk"] as List }) - - companion object { - const val NAME = "jvmConstraint" - } -} - - -tasks.withType().configureEach { - if (extensions.findByName(TestJvmConstraintExtension.NAME) != null) { - return@configureEach - } - - val extension = project.objects.newInstance(name, project.objects, project.providers, project) - - // todo add testJvm ? - - inputs.property("jvmConstraint.minJavaVersionForTests", extension.minJavaVersionForTests) - inputs.property("jvmConstraint.maxJavaVersionForTests", extension.maxJavaVersionForTests) - inputs.property("jvmConstraint.skipSettingTestJavaVersion", extension.skipSettingTestJavaVersion) - inputs.property("jvmConstraint.forceJdk", extension.forceJdk) - inputs.property("jvmConstraint.excludeJdk", extension.excludeJdk) - - extensions.add(TestJvmConstraintExtension.NAME, extension) -} - - - From c6cda9f0b7fde21d1a9a092dcf8ef4b9ea3011c1 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Fri, 24 Oct 2025 18:13:50 +0200 Subject: [PATCH 03/18] chore: Moved additional test suite constraints to new test task extension # Conflicts: # dd-java-agent/instrumentation/aerospike-4.0/build.gradle # dd-java-agent/instrumentation/armeria/armeria-jetty-1.24/build.gradle --- .../aerospike-4.0/build.gradle | 16 +++++++--- .../akka-http/akka-http-10.0/build.gradle | 11 ++++--- .../armeria/armeria-jetty-1.24/build.gradle | 10 +++--- .../instrumentation/avro/build.gradle | 10 ++++-- .../instrumentation/axis2-1.3/build.gradle | 17 +++++++--- .../instrumentation/cxf-2.1/build.gradle | 16 +++++++--- .../graphql-java-20.0/build.gradle | 19 +++++++---- .../instrumentation/ignite-2.0/build.gradle | 16 ++++++++-- .../instrumentation/jdbc/build.gradle | 11 ++++--- .../junit/junit-5.3/build.gradle | 10 +++--- .../junit/junit-5.3/junit-5.8/build.gradle | 9 +++--- .../instrumentation/karate/build.gradle | 13 +++++--- .../instrumentation/mule-4.5/build.gradle | 25 +++++++++++---- .../instrumentation/quartz-2.0/build.gradle | 17 +++++++--- .../instrumentation/selenium/build.gradle | 11 ++++--- .../spring/spring-boot-1.3/build.gradle | 30 +++++++++++++---- .../spring/spring-scheduling-3.1/build.gradle | 24 ++++++++++---- .../testng/testng-7/build.gradle | 14 ++++---- .../tomcat/tomcat-5.5/build.gradle | 32 ++++++++++++++----- .../undertow/undertow-2.2/build.gradle | 18 ++++++++--- .../vertx-web/vertx-web-4.0/build.gradle | 20 +++++++++--- .../instrumentation/wildfly-9.0/build.gradle | 12 +++---- 22 files changed, 255 insertions(+), 106 deletions(-) diff --git a/dd-java-agent/instrumentation/aerospike-4.0/build.gradle b/dd-java-agent/instrumentation/aerospike-4.0/build.gradle index 92d6ed2b6db..35444ad5202 100644 --- a/dd-java-agent/instrumentation/aerospike-4.0/build.gradle +++ b/dd-java-agent/instrumentation/aerospike-4.0/build.gradle @@ -1,7 +1,3 @@ -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_21 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_21 -} muzzle { pass { group = 'com.aerospike' @@ -18,6 +14,18 @@ addTestSuiteForDir("latest7DepTest", "test") addTestSuiteExtendingForDir("latestDepForkedTest", "latestDepTest", "test") addTestSuiteExtendingForDir("latest7DepForkedTest", "latest7DepTest", "test") +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_21 + } +} + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_21 + } +} + dependencies { compileOnly group: 'com.aerospike', name: 'aerospike-client', version: '4.0.0' 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 e06f03e1f54..81db8373038 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 @@ -1,8 +1,3 @@ -// Set properties before any plugins get loaded -ext { - lagomTestMaxJavaVersionForTests = JavaVersion.VERSION_1_8 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' apply plugin: 'call-site-instrumentation' @@ -22,6 +17,12 @@ addTestSuiteForDir 'version101IastTest', 'iastTest' addTestSuiteForDir 'version102IastTest', 'iastTest' addTestSuiteForDir 'latestDepIastTest', 'iastTest' +tasks.named("lagomTest", Test) { + jvmConstraint { + maxJavaVersionForTests = JavaVersion.VERSION_1_8 + } +} + tasks.named("compileLagomTestJava", JavaCompile) { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 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 07e1be55c5c..68c9e7c91df 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,7 +1,3 @@ -ext { - jetty11TestMinJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { pass { group = "com.linecorp.armeria" @@ -25,6 +21,12 @@ addTestSuiteForDir("jetty11Test", "test/jetty11") addTestSuiteExtendingForDir("jetty9LatestDepTest", "latestDepTest", "test/jetty9") addTestSuiteExtendingForDir("jetty11LatestDepTest", "latestDepTest", "test/jetty11") +tasks.named("jetty11Test", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + configureGroovyCompiler(11, "compileJetty11TestGroovy", "compileJetty11LatestDepTestGroovy") ["jetty11Test", "jetty11LatestDepTest"].each { name -> diff --git a/dd-java-agent/instrumentation/avro/build.gradle b/dd-java-agent/instrumentation/avro/build.gradle index e32b22e1416..8043903f6e0 100644 --- a/dd-java-agent/instrumentation/avro/build.gradle +++ b/dd-java-agent/instrumentation/avro/build.gradle @@ -1,6 +1,3 @@ -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 -} muzzle { pass { group = 'org.apache.avro' @@ -14,6 +11,13 @@ apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest','test') addTestSuiteForDir('latestDepTest8','test') + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + dependencies { compileOnly group: 'org.apache.avro', name: 'avro', version: '1.11.3' testImplementation group: 'org.apache.avro', name: 'avro', version: '1.11.3' diff --git a/dd-java-agent/instrumentation/axis2-1.3/build.gradle b/dd-java-agent/instrumentation/axis2-1.3/build.gradle index ec5142724fa..1a58b2a6fc5 100644 --- a/dd-java-agent/instrumentation/axis2-1.3/build.gradle +++ b/dd-java-agent/instrumentation/axis2-1.3/build.gradle @@ -1,7 +1,3 @@ -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_11 -} muzzle { pass { group = "org.apache.axis2" @@ -14,6 +10,19 @@ apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest', 'test') addTestSuiteForDir('latestDepForkedTest', 'test') + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + configurations.configureEach { // the version used by axis2 isn't available in a public repository - we don't need it, so exclude it exclude group: 'org.apache.woden', module: 'woden' diff --git a/dd-java-agent/instrumentation/cxf-2.1/build.gradle b/dd-java-agent/instrumentation/cxf-2.1/build.gradle index eb44a71c5eb..b677cee2a74 100644 --- a/dd-java-agent/instrumentation/cxf-2.1/build.gradle +++ b/dd-java-agent/instrumentation/cxf-2.1/build.gradle @@ -1,7 +1,3 @@ -ext { - cxf3LatestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 -} muzzle { pass { group = "org.apache.cxf" @@ -23,6 +19,18 @@ apply from: "${rootDir}/gradle/java.gradle" addTestSuite('latestDepTest') addTestSuiteForDir('cxf3LatestDepTest', 'test') +tasks.named("cxf3LatestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} + tasks.named("compileCxf3LatestDepTestJava", JavaCompile) { configureCompiler(it, 11, JavaVersion.VERSION_1_8) } diff --git a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle index 8cba6df1444..8031f486fd2 100644 --- a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle +++ b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle @@ -1,9 +1,3 @@ -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_11 - graphql21LatestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 - graphql21LatestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_11 -} // there are a lot of invalid version using dates (i.e. com.graphql-java-graphql-java-2018-06-04T04-23-07) // so we limit by chunks muzzle { @@ -67,3 +61,16 @@ dependencies { configureCompiler(it, 11) } } + +tasks.matching { + it.name in [ + "latestDepTest", + "latestDepForkedTest", + "graphql21LatestDepTest", + "graphql21LatestDepForkedTest" + ] +}.configureEach { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} diff --git a/dd-java-agent/instrumentation/ignite-2.0/build.gradle b/dd-java-agent/instrumentation/ignite-2.0/build.gradle index 69be7f06472..1b4dbe24ded 100644 --- a/dd-java-agent/instrumentation/ignite-2.0/build.gradle +++ b/dd-java-agent/instrumentation/ignite-2.0/build.gradle @@ -2,9 +2,6 @@ ext { // See https://ignite.apache.org/docs/latest/quick-start/java#running-ignite-with-java-11-or-later // FIXME: Because of this condition, tests only run in Java 8, and latestDepTest never run, as they require Java 11+. maxJavaVersionForTests = JavaVersion.VERSION_1_8 - // ignite 2.17.0+ requires Java 11+ - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_11 } muzzle { @@ -48,3 +45,16 @@ for (task in ['compileLatestDepTestGroovy', 'compileLatestDepForkedTestGroovy']) configureCompiler(it, 11) } } + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + diff --git a/dd-java-agent/instrumentation/jdbc/build.gradle b/dd-java-agent/instrumentation/jdbc/build.gradle index 9c1d1d2711e..38d1d290783 100644 --- a/dd-java-agent/instrumentation/jdbc/build.gradle +++ b/dd-java-agent/instrumentation/jdbc/build.gradle @@ -3,10 +3,6 @@ plugins { id 'me.champeau.jmh' } -ext { - latestDepJava11TestMinJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { pass { coreJdk() @@ -99,3 +95,10 @@ tasks.withType(GroovyCompile).configureEach { tasks.withType(Test).configureEach { usesService(testcontainersLimit) } + +tasks.named("latestDepJava11Test", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle index fbffbe3af73..a412af5acaa 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle @@ -22,10 +22,6 @@ muzzle { } } -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 -} - addTestSuiteForDir('v513Test', 'test') addTestSuiteForDir('latest5Test', 'test') addTestSuiteForDir('latestDepTest', 'test') @@ -66,3 +62,9 @@ configurations.matching { it.name.startsWith('test') }.configureEach { tasks.named("compileLatestDepTestJava", JavaCompile) { configureCompiler(it, 17, JavaVersion.VERSION_1_8) } + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle index 4129d7ce857..a769beb8482 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle @@ -23,10 +23,6 @@ muzzle { } } -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 -} - addTestSuiteForDir('latestDepTest', 'test') dependencies { @@ -61,3 +57,8 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { configureCompiler(it, 17, JavaVersion.VERSION_1_8) } +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} diff --git a/dd-java-agent/instrumentation/karate/build.gradle b/dd-java-agent/instrumentation/karate/build.gradle index 3b0ce1a8d97..a03b3b5bc2b 100644 --- a/dd-java-agent/instrumentation/karate/build.gradle +++ b/dd-java-agent/instrumentation/karate/build.gradle @@ -1,8 +1,3 @@ -ext { - // karate 1.4.0+ requires Java 11 or higher. - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 -} - apply from: "$rootDir/gradle/java.gradle" muzzle { @@ -84,3 +79,11 @@ sourceSets { tasks.named("compileLatestDepTestJava", JavaCompile) { configureCompiler(it, 11, JavaVersion.VERSION_1_8) } + +tasks.named("latestDepTest", Test) { + // karate 1.4.0+ requires Java 11 or higher. + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + diff --git a/dd-java-agent/instrumentation/mule-4.5/build.gradle b/dd-java-agent/instrumentation/mule-4.5/build.gradle index 0064cf9caa1..f3b3d278b4e 100644 --- a/dd-java-agent/instrumentation/mule-4.5/build.gradle +++ b/dd-java-agent/instrumentation/mule-4.5/build.gradle @@ -1,9 +1,3 @@ -ext { - forkedTestMaxJavaVersionForTests = JavaVersion.VERSION_11 - mule46ForkedTestMaxJavaVersionForTests = JavaVersion.VERSION_11 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 - latestDepForkedTestMaxJavaVersionForTests = JavaVersion.VERSION_17 -} def muleVersion = '4.5.0' def appDir = "$projectDir/application" @@ -112,6 +106,12 @@ tasks.named("forbiddenApisMain_java11") { failOnMissingClasses = false } +tasks.named("forkedTest", Test) { + jvmConstraint { + maxJavaVersionForTests = JavaVersion.VERSION_11 + } +} + tasks.named("compileTestGroovy", GroovyCompile) { dependsOn 'mvnPackage', 'extractMuleServices' } @@ -129,6 +129,19 @@ tasks.named("compileLatestDepForkedTestJava", JavaCompile) { configureCompiler(it, 17) } +tasks.named("mule46ForkedTest", Test) { + jvmConstraint { + maxJavaVersionForTests = JavaVersion.VERSION_11 + } +} + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + maxJavaVersionForTests = JavaVersion.VERSION_17 + } +} + dependencies { compileOnly group: 'org.mule.runtime', name: 'mule-core', version: muleVersion compileOnly group: 'org.mule.runtime', name: 'mule-tracer-customization-impl', version: muleVersion diff --git a/dd-java-agent/instrumentation/quartz-2.0/build.gradle b/dd-java-agent/instrumentation/quartz-2.0/build.gradle index b2798c9d115..00ceabc3562 100644 --- a/dd-java-agent/instrumentation/quartz-2.0/build.gradle +++ b/dd-java-agent/instrumentation/quartz-2.0/build.gradle @@ -1,7 +1,3 @@ -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 - version40TestMinJavaVersionForTests = JavaVersion.VERSION_11 -} muzzle { pass { group = 'org.quartz-scheduler' @@ -17,7 +13,6 @@ apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest', 'test') addTestSuiteForDir('version40Test', 'test') - dependencies { compileOnly group: 'org.quartz-scheduler', name: 'quartz', version: '2.0.0' testImplementation group: 'org.quartz-scheduler', name: 'quartz', version: '2.0.0' @@ -42,3 +37,15 @@ dependencies { configureCompiler(it, 11) } } + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + +tasks.named("version40Test", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} diff --git a/dd-java-agent/instrumentation/selenium/build.gradle b/dd-java-agent/instrumentation/selenium/build.gradle index 7c5c008d4d7..b7ba9128ef1 100644 --- a/dd-java-agent/instrumentation/selenium/build.gradle +++ b/dd-java-agent/instrumentation/selenium/build.gradle @@ -2,10 +2,6 @@ plugins { id 'java-test-fixtures' } -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 -} - apply from: "$rootDir/gradle/java.gradle" muzzle { @@ -45,3 +41,10 @@ configurations.matching({ it.name.startsWith('test') || it.name.startsWith('late tasks.named("compileLatestDepTestJava", JavaCompile) { configureCompiler(it, 11, JavaVersion.VERSION_1_8) } + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + diff --git a/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle b/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle index 4c11d333d7d..c7da6fd04ba 100644 --- a/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle @@ -1,9 +1,3 @@ -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 - boot3TestMinJavaVersionForTests = JavaVersion.VERSION_17 - boot3ForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 -} muzzle { pass { group = 'org.springframework.boot' @@ -51,3 +45,27 @@ dependencies { latestDepTestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: '+' latestDepForkedTestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: '+' } + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} + +tasks.named("boot3Test", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} + +tasks.named("boot3ForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} diff --git a/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle b/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle index 6a17318430c..efa8302fc0d 100644 --- a/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle @@ -1,9 +1,3 @@ -ext { - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 - spring6TestMinJavaVersionForTests = JavaVersion.VERSION_17 -} - muzzle { pass { group = 'org.springframework' @@ -76,3 +70,21 @@ dependencies { latestDepTestImplementation group: 'org.springframework', name: 'spring-context', version: '6.+' latestDepTestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '3.+' } + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} + +tasks.named("spring6Test", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} diff --git a/dd-java-agent/instrumentation/testng/testng-7/build.gradle b/dd-java-agent/instrumentation/testng/testng-7/build.gradle index 6385a574129..728476eb0dc 100644 --- a/dd-java-agent/instrumentation/testng/testng-7/build.gradle +++ b/dd-java-agent/instrumentation/testng/testng-7/build.gradle @@ -2,11 +2,6 @@ plugins { id 'java-test-fixtures' } -ext { - // testng 7.6.0+ requires Java 11 or higher. - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 -} - apply from: "$rootDir/gradle/java.gradle" muzzle { @@ -25,9 +20,16 @@ muzzle { } } -addTestSuiteForDir('latestDepTest', 'test') // testng 7.5.1 is the latest version compatible with Java 8 addTestSuiteForDir('testng751Test', 'test') +addTestSuiteForDir('latestDepTest', 'test') + +tasks.named("latestDepTest", Test) { + // testng 7.6.0+ requires Java 11 or higher. + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} dependencies { compileOnly group: 'org.testng', name: 'testng', version: '7.0.0' diff --git a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle index 16c25302bbb..0445358688f 100644 --- a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle +++ b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle @@ -1,10 +1,3 @@ -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 - latest10TestMinJavaVersionForTests = JavaVersion.VERSION_11 - latest10ForkedTestMinJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { // Catalina doesn't reliably depend on coyote, so we use a different dependency that does. pass { @@ -62,7 +55,6 @@ addTestSuite("tomcat9Test") addTestSuiteForDir('latest10Test', 'latestDepTest') addTestSuiteExtendingForDir('latest10ForkedTest', 'latest10Test', 'latestDepTest') - def tomcatVersion = '5.5.12' // earliest 5.5.x available in maven central (with all needed dependencies). configurations.configureEach { @@ -168,3 +160,27 @@ tasks.withType(Test).configureEach { it.exclude group: 'javax.servlet', module: 'servlet-api' } } + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} + +tasks.named("latest10Test", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + +tasks.named("latest10ForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} diff --git a/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle b/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle index e5e8b6b3d99..3520a6f2bbe 100644 --- a/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle +++ b/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle @@ -1,7 +1,3 @@ -ext { - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_11 -} muzzle { pass { group = "io.undertow" @@ -24,6 +20,7 @@ addTestSuiteForDir('latestDepTest', 'test') addTestSuiteExtendingForDir('latestDepForkedTest', 'latestDepTest', 'test') addTestSuiteForDir('latest22Test', 'test') addTestSuiteExtendingForDir('latest22ForkedTest', 'latest22Test', 'test') + dependencies { compileOnly group: 'io.undertow', name: 'undertow-servlet-jakarta', version: '2.2.14.Final' implementation project(':dd-java-agent:instrumentation:undertow') @@ -48,3 +45,16 @@ dependencies { exclude group: 'io.undertow', module: 'undertow-websocket-jsr-jakarta' } } + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + } +} + 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 973810b24c5..66f3b75564e 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 @@ -2,11 +2,6 @@ ext { // vertx-web doesn't support Java 17 until v4.2 maxJavaVersionForTests = JavaVersion.VERSION_15 - // unbound it for latest - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_11 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_11 - latestDepTestMaxJavaVersionForTests = JavaVersion.VERSION_25 - latestDepForkedTestMaxJavaVersionForTests = JavaVersion.VERSION_25 } apply from: "$rootDir/gradle/java.gradle" @@ -68,3 +63,18 @@ dependencies { configureCompiler(it, 11) } } + +tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersionForTests = JavaVersion.VERSION_25 + } +} + +tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersionForTests = JavaVersion.VERSION_25 + } +} + diff --git a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle index 3d31584c469..eea061bef2a 100644 --- a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle +++ b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle @@ -1,7 +1,5 @@ ext { minJavaVersionForTests = JavaVersion.VERSION_11 - latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 - latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 } repositories { @@ -109,11 +107,10 @@ tasks.named("forkedTest", Test) { dependsOn 'extractWildfly' } -tasks.named("latestDepForkedTest", Test) { - dependsOn 'extractLatestWildfly' -} - tasks.named("latestDepTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } dependsOn 'extractLatestWildfly' } @@ -174,6 +171,9 @@ tasks.named("forkedTest", Test) { } tasks.named("latestDepForkedTest", Test) { + jvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } jvmArgumentProviders.add( objects.newInstance(DistributionLocationProvider).tap { distribution = extractLatestWildfly.map { it.destinationDir } From dfefaea17a702e0ea4681bd5c05fcd203f1a3149 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Wed, 29 Oct 2025 11:29:51 -0400 Subject: [PATCH 04/18] chore: Configure test jvm constraint on test task, added project wide test jvm constraints --- .../datadog.test-jvm-contraints.gradle.kts | 88 ++++++++++++++----- .../ProvideJvmArgsOnJvmLauncherVersion.kt | 2 + .../TestJvmConstraintsExtension.kt | 39 ++------ .../testJvmConstraints/TestJvmJavaLauncher.kt | 4 +- gradle/java_no_deps.gradle | 42 ++------- 5 files changed, 88 insertions(+), 87 deletions(-) diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts index 6f83149333b..998e3d697d5 100644 --- a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -8,9 +8,10 @@ import org.gradle.kotlin.dsl.* plugins { java - jacoco apply false } +val projectExtension = extensions.create(TestJvmConstraintsExtension.NAME) + val testJvmJavaLauncher = TestJvmJavaLauncher(project) tasks.withType().configureEach { @@ -20,34 +21,44 @@ tasks.withType().configureEach { inputs.property("testJvm", providers.gradleProperty("testJvm")) - val extension = project.objects.newInstance(name, project.objects, project.providers, project) - inputs.property("${TestJvmConstraintsExtension.NAME}.allowReflectiveAccessToJdk", extension.allowReflectiveAccessToJdk) - inputs.property("${TestJvmConstraintsExtension.NAME}.excludeJdk", extension.excludeJdk) - inputs.property("${TestJvmConstraintsExtension.NAME}.forceJdk", extension.forceJdk) - inputs.property("${TestJvmConstraintsExtension.NAME}.minJavaVersionForTests", extension.minJavaVersionForTests) - inputs.property("${TestJvmConstraintsExtension.NAME}.maxJavaVersionForTests", extension.maxJavaVersionForTests) + val taskExtension = project.objects.newInstance().also { + configureConventions(it, projectExtension) + } + + inputs.property("${TestJvmConstraintsExtension.NAME}.allowReflectiveAccessToJdk", taskExtension.allowReflectiveAccessToJdk).optional(true) + inputs.property("${TestJvmConstraintsExtension.NAME}.excludeJdk", taskExtension.excludeJdk) + inputs.property("${TestJvmConstraintsExtension.NAME}.forceJdk", taskExtension.forceJdk) + inputs.property("${TestJvmConstraintsExtension.NAME}.minJavaVersionForTests", taskExtension.minJavaVersionForTests).optional(true) + inputs.property("${TestJvmConstraintsExtension.NAME}.maxJavaVersionForTests", taskExtension.maxJavaVersionForTests).optional(true) - extensions.add(TestJvmConstraintsExtension.NAME, extension) + extensions.add(TestJvmConstraintsExtension.NAME, taskExtension) - configureTestJvm(extension) + configureTestJvm(taskExtension) } // TODO make this part of the testJvm test task extension +/** + * Provide arguments if condition is met. + */ fun Test.configureJvmArgs( applyFromVersion: JavaVersion, jvmArgsToApply: List, - additionalCondition: Provider? = null + additionalCondition: Provider = project.providers.provider { true } ) { jvmArgumentProviders.add( ProvideJvmArgsOnJvmLauncherVersion( this, applyFromVersion, jvmArgsToApply, - additionalCondition ?: project.providers.provider { true } + additionalCondition ) ) } +/** + * Configure the jvm launcher of the test task and ensure the test task + * can be run with the test task launcher. + */ fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { if (testJvmJavaLauncher.javaTestLauncher.isPresent) { javaLauncher = testJvmJavaLauncher.javaTestLauncher @@ -56,16 +67,6 @@ fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { (extension.isJavaLauncherAllowed(testJvmJavaLauncher.javaTestLauncher.get()) || extension.isJdkForced(testJvmJavaLauncher.normalizedTestJvm.get())) } - - // TODO refactor out ? - // Disable jacoco for additional 'testJvm' tests to speed things up a bit - extensions.configure { - val hasCoverage: Boolean by project.extra - // TODO read enabled ? - if (hasCoverage) { - isEnabled = false - } - } } else { onlyIf("Is current Daemon JVM allowed") { extension.isJavaVersionAllowed(JavaVersion.current()) @@ -83,3 +84,48 @@ fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { ) } +// Jacoco plugin is not applied on every project +pluginManager.withPlugin("org.gradle.jacoco") { + tasks.withType().configureEach { + // Disable jacoco for additional 'testJvm' tests to speed things up a bit + if (testJvmJavaLauncher.javaTestLauncher.isPresent) { + extensions.configure { + isEnabled = false + } + } + } +} + +/** + * Configures the convention, this tells Gradle where to look for values. + * + * Currently, the extension is still configured to look at project's _extra_ properties. + */ +private fun Test.configureConventions( + taskExtension: TestJvmConstraintsExtension, + projectExtension: TestJvmConstraintsExtension +) { + taskExtension.minJavaVersionForTests.convention(projectExtension.minJavaVersionForTests + .orElse(providers.provider { project.findProperty("${name}MinJavaVersionForTests") as? JavaVersion }) + .orElse(providers.provider { project.findProperty("minJavaVersionForTests") as? JavaVersion }) + ) + taskExtension.maxJavaVersionForTests.convention(projectExtension.maxJavaVersionForTests + .orElse(providers.provider { project.findProperty("${name}MaxJavaVersionForTests") as? JavaVersion }) + .orElse(providers.provider { project.findProperty("maxJavaVersionForTests") as? JavaVersion }) + ) + taskExtension.forceJdk.convention(projectExtension.forceJdk + .orElse(providers.provider { + @Suppress("UNCHECKED_CAST") + project.findProperty("forceJdk") as? List ?: emptyList() + }) + ) + taskExtension.excludeJdk.convention(projectExtension.excludeJdk + .orElse(providers.provider { + @Suppress("UNCHECKED_CAST") + project.findProperty("excludeJdk") as? List ?: emptyList() + }) + ) + taskExtension.allowReflectiveAccessToJdk.convention(projectExtension.allowReflectiveAccessToJdk + .orElse(providers.provider { project.findProperty("allowReflectiveAccessToJdk") as? Boolean }) + ) +} diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/ProvideJvmArgsOnJvmLauncherVersion.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/ProvideJvmArgsOnJvmLauncherVersion.kt index 9820b454c7e..52443474337 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/ProvideJvmArgsOnJvmLauncherVersion.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/ProvideJvmArgsOnJvmLauncherVersion.kt @@ -4,6 +4,7 @@ import org.gradle.api.JavaVersion import org.gradle.api.provider.Provider import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.Optional import org.gradle.api.tasks.testing.Test import org.gradle.process.CommandLineArgumentProvider @@ -18,6 +19,7 @@ class ProvideJvmArgsOnJvmLauncherVersion( val jvmArgsToApply: List, @get:Input + @get:Optional val additionalCondition: Provider ) : CommandLineArgumentProvider { diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt index c3a8ecd74ba..bc5cb76cbb7 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt @@ -3,43 +3,20 @@ package datadog.gradle.plugin.testJvmConstraints import org.gradle.api.JavaVersion import org.gradle.api.Project import org.gradle.api.model.ObjectFactory +import org.gradle.api.provider.ListProperty +import org.gradle.api.provider.Property import org.gradle.api.provider.ProviderFactory import org.gradle.kotlin.dsl.extra import org.gradle.kotlin.dsl.listProperty import org.gradle.kotlin.dsl.property import javax.inject.Inject -abstract class TestJvmConstraintsExtension @Inject constructor( - private val taskName: String, - private val objects: ObjectFactory, - private val providers: ProviderFactory, - private val project: Project, -) { - val minJavaVersionForTests = objects.property() - .convention( - providers.provider { project.extra["${taskName}MinJavaVersionForTests"] as JavaVersion }.orElse( - providers.provider { project.extra["minJavaVersionForTests"] as? JavaVersion } - ) - ) - val maxJavaVersionForTests = objects.property() - .convention( - providers.provider { project.extra["${taskName}MaxJavaVersionForTests"] as JavaVersion }.orElse( - providers.provider { project.extra["maxJavaVersionForTests"] as? JavaVersion } - ) - ) - val forceJdk = objects.listProperty().convention(emptyList()) - .convention(providers.provider { - @Suppress("UNCHECKED_CAST") - project.extra["forceJdk"] as? List ?: emptyList() - }) - val excludeJdk = objects.listProperty().convention(emptyList()) - .convention(providers.provider { - @Suppress("UNCHECKED_CAST") - project.extra["excludeJdk"] as? List ?: emptyList() - }) - val allowReflectiveAccessToJdk = objects.property().convention( - providers.provider { project.extra["allowReflectiveAccessToJdk"] as? Boolean ?: false } - ) +interface TestJvmConstraintsExtension { + val minJavaVersionForTests: Property + val maxJavaVersionForTests: Property + val forceJdk: ListProperty + val excludeJdk: ListProperty + val allowReflectiveAccessToJdk: Property companion object { const val NAME = "jvmConstraint" diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt index 17977fc15f6..52bd1e32701 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt @@ -10,7 +10,7 @@ import java.nio.file.Path import java.nio.file.Paths class TestJvmJavaLauncher(val project: Project) { - val currentJavaHomePath = System.getProperty("java.home").normalizeToJDKJavaHome() + private val currentJavaHomePath = project.providers.systemProperty("java.home").map { it.normalizeToJDKJavaHome() } val normalizedTestJvm = project.providers.gradleProperty("testJvm").map { testJvm -> if (testJvm.isBlank()) { throw GradleException("testJvm property is blank") @@ -54,7 +54,7 @@ class TestJvmJavaLauncher(val project: Project) { val javaTestLauncher = project.providers.zip(testJvmHomePath, normalizedTestJvm) { testJvmHome, testJvm -> // Only change test JVM if it's not the one we are running the gradle build with - if (currentJavaHomePath == testJvmHome) { + if (currentJavaHomePath.get() == testJvmHome) { project.providers.provider { null } } else { // This is using internal APIs diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 117a013bb20..de50670ed1a 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -14,34 +14,17 @@ apply from: "$rootDir/gradle/test-suites.gradle" @CompileStatic class TracerJavaExtension { - // TODO handle this style as well - // ext { - // forkedTestMaxJavaVersionForTests = JavaVersion.VERSION_11 - // mule46ForkedTestMaxJavaVersionForTests = JavaVersion.VERSION_11 - // latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 - // latestDepForkedTestMaxJavaVersionForTests = JavaVersion.VERSION_17 - // } + public static String NAME = "tracerJava"; + private Project project Property skipSettingTestJavaVersion - // Property minJavaVersionForTests - // Property maxJavaVersionForTests - // MapProperty minJavaVersionForTestTasks - // ListProperty forceJdk - // ListProperty excludeJdk TracerJavaExtension(ObjectFactory objects, ProviderFactory providers, Project project) { - skipSettingTestJavaVersion = objects.property(Boolean)//.convention(providers.provider { project.findProperty('skipSettingTestJavaVersion') as Boolean }) - // minJavaVersionForTests = objects.property(JavaVersion) //.convention(providers.provider { project.findProperty('minJavaVersionForTests') as JavaVersion }) - // maxJavaVersionForTests = objects.property(JavaVersion)//.convention(providers.provider { project.findProperty('maxJavaVersionForTests') as JavaVersion }) - // forceJdk = objects.listProperty(String).convention([]) //.convention(providers.provider { project.findProperty('forceJdk') as List }) - // excludeJdk = objects.listProperty(String).convention([]) //.convention(providers.provider { project.findProperty('excludeJdk') as List }) - } - - def configureSourceSet(JavaVersion javaVersion) { - // TODO configure source sets and co + this.project = project + this.skipSettingTestJavaVersion = objects.property(Boolean).convention(providers.provider { project.findProperty('skipSettingTestJavaVersion') as Boolean }) } } -def tracerJavaExtension = extensions.create("tracerJava", TracerJavaExtension, objects, providers, project) +def tracerJavaExtension = extensions.create(TracerJavaExtension.NAME, TracerJavaExtension, objects, providers, project) @@ -67,6 +50,8 @@ def applyCodeCoverage = !( ext.applyCodeCoverage = applyCodeCoverage +// https://stackoverflow.com/questions/42501869/gradle-skip-jacoco-during-test +// https://poetengineer.postach.io/post/how-to-conditionally-enable-disable-jacoco-in-gradle-build if (applyCodeCoverage) { apply from: "$rootDir/gradle/jacoco.gradle" } @@ -82,17 +67,6 @@ java { withSourcesJar() } -// TODO source set config, below is pseudo code based on tracerJavaExtension.minJavaVersionForTests -// sourceSets { -// def wanted_version = tracerJavaExtension.minJavaVersionForTests.orNull -// if (wanted_version) { -// println("source set config ${project.path}") -// register("${SourceSet.MAIN_SOURCE_SET_NAME}2_java${wanted_version.majorVersion}") { -// java.srcDirs = ["${project.projectDir}/src/main/yaj${wanted_version.majorVersion}"] -// } -// } -// } - // TODO configures the source sets via the extension if (project.hasProperty('minJavaVersionForTests') && project.findProperty('minJavaVersionForTests') != JavaVersion.VERSION_1_7) { def version = JavaVersion.toVersion(project.findProperty('minJavaVersionForTests')) @@ -122,6 +96,8 @@ if (project.hasProperty('minJavaVersionForTests') && project.findProperty('minJa } // TODO configure this via extension + // If unset (hasProperty is false), or value is explicitly set to false (case not seen), then + // sets the compiler to `minJavaVersionForTests` version // In some cases we would like to avoid setting java version to `minJavaVersionForTests`. // For example we would like to be able to run profiling tests with ZULU8, but we cannot run it with other JDK8 implementations at the moment def skipSettingTestJavaVersion = project.hasProperty('skipSettingTestJavaVersion') && project.findProperty('skipSettingTestJavaVersion') From 9f643d489f70d586b3fd76e1a21698dcfe440b78 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Wed, 29 Oct 2025 11:34:25 -0400 Subject: [PATCH 05/18] chore: configure source set via extension method --- dd-java-agent/instrumentation/build.gradle | 21 +++--- gradle/java_no_deps.gradle | 76 ++++++++++++++-------- 2 files changed, 58 insertions(+), 39 deletions(-) diff --git a/dd-java-agent/instrumentation/build.gradle b/dd-java-agent/instrumentation/build.gradle index 897b96c6ce1..9903e5449e1 100644 --- a/dd-java-agent/instrumentation/build.gradle +++ b/dd-java-agent/instrumentation/build.gradle @@ -33,12 +33,16 @@ subprojects { Project subProj -> if (!plugins.hasPlugin("java")) { return } - String jdkCompile = null - if (project.hasProperty('minJavaVersionForTests') && project.getProperty('minJavaVersionForTests') != JavaVersion.VERSION_1_8) { - def version = JavaVersion.toVersion(project.getProperty('minJavaVersionForTests')) - def name = "java$version.majorVersion" - jdkCompile = "main_${name}Implementation" - } + + // Configures base dependencies for additional sourceSet + configurations + .matching { it.name.matches("${SourceSet.MAIN_SOURCE_SET_NAME}_java\\d+${JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME.capitalize()}") } + .configureEach { + it.dependencies.add(project.dependencyFactory.create(project(':dd-trace-api'))) + it.dependencies.add(project.dependencyFactory.create(project(':dd-java-agent:agent-tooling'))) + it.dependencies.addLater(libs.bytebuddy) + } + configurations.named('muzzleBootstrap') { exclude group: 'org.snakeyaml', module: 'snakeyaml-engine' // we vendor this in the agent jar } @@ -47,11 +51,6 @@ subprojects { Project subProj -> implementation project(':dd-trace-api') implementation project(':dd-java-agent:agent-tooling') implementation libs.bytebuddy - if (jdkCompile) { - "$jdkCompile" project(':dd-trace-api') - "$jdkCompile" project(':dd-java-agent:agent-tooling') - "$jdkCompile" libs.bytebuddy - } annotationProcessor project(':dd-java-agent:instrumentation-annotation-processor') annotationProcessor libs.autoservice.processor diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index de50670ed1a..993246603a6 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -11,6 +11,11 @@ apply from: "$rootDir/gradle/spotbugs.gradle" apply from: "$rootDir/gradle/repositories.gradle" apply from: "$rootDir/gradle/test-suites.gradle" +// Glue code for Groovy DSL. +// TODO this extension need to go away once we move to convention plugins +ext.configureCompiler = (AbstractCompile it, int toolchainVersion, JavaVersion compatibilityVersion = null, String unsetReleaseFlagReason = null) -> { + configureCompiler(it, toolchainVersion, compatibilityVersion, unsetReleaseFlagReason) +} as Closure @CompileStatic class TracerJavaExtension { @@ -23,6 +28,44 @@ class TracerJavaExtension { this.project = project this.skipSettingTestJavaVersion = objects.property(Boolean).convention(providers.provider { project.findProperty('skipSettingTestJavaVersion') as Boolean }) } + + /** + * Adds the source set `src/main/javaXX`, configures its compilation and its test jvm constraints. + * + * @param javaVersion The wanted java version for these source. + * @param compileOnly Whether the compilation output is added as compileOnly. + * @return + */ + def addSourceSetFor(JavaVersion javaVersion, Boolean compileOnly = false) { + project.extensions.getByType(TestJvmConstraintsExtension).minJavaVersionForTests.set(javaVersion) + + def version = javaVersion + def name = "java${version.majorVersion}" + def sourceSets = project.extensions.getByType(SourceSetContainer) + + def mainForJavaVersionSourceSet = sourceSets.create("${SourceSet.MAIN_SOURCE_SET_NAME}_$name") { + (it as SourceSet).java.srcDirs = ["${project.projectDir}/src/${SourceSet.MAIN_SOURCE_SET_NAME}/$name"] + } + + project.tasks.named(mainForJavaVersionSourceSet.compileJavaTaskName, JavaCompile) { + // TODO Make 'configureCompiler' a general utility method + def cl = project.extensions.getByType(ExtraPropertiesExtension).get("configureCompiler") as Closure + cl.call(it, version.majorVersion.toInteger().intValue(), version) + } + + // "socket-utils" is only set to compileOnly because the implementation dependency incorrectly adds Java17 classes to all jar prefixes. + // This causes the AgentJarIndex to search for other non-Java17 classes in the wrong prefix location and fail to resolve class names. + if (compileOnly) { + project.dependencies.add("compileOnly", mainForJavaVersionSourceSet.output) + } else { + project.dependencies.add("compileOnly", project.files(mainForJavaVersionSourceSet.compileClasspath)) + project.dependencies.add("implementation", mainForJavaVersionSourceSet.output) + } + + project.tasks.named("jar", Jar) { + it.from(mainForJavaVersionSourceSet.output) + } + } } def tracerJavaExtension = extensions.create(TracerJavaExtension.NAME, TracerJavaExtension, objects, providers, project) @@ -67,33 +110,8 @@ java { withSourcesJar() } -// TODO configures the source sets via the extension if (project.hasProperty('minJavaVersionForTests') && project.findProperty('minJavaVersionForTests') != JavaVersion.VERSION_1_7) { - def version = JavaVersion.toVersion(project.findProperty('minJavaVersionForTests')) - def name = "java${version.majorVersion}" - def mainForJavaVersionSourceSet = sourceSets.create("main_$name") { - java.srcDirs = ["${project.projectDir}/src/main/$name"] - } - - // Task name is registered when source set was created - tasks.named(mainForJavaVersionSourceSet.compileJavaTaskName, JavaCompile) { - configureCompiler(it, version.majorVersion.toInteger().intValue(), version) - } - - // "socket-utils" is only set to compileOnly because the implementation dependency incorrectly adds Java17 classes to all jar prefixes. - // This causes the AgentJarIndex to search for other non-Java17 classes in the wrong prefix location and fail to resolve class names. - dependencies { - if ("${project.projectDir}".endsWith("socket-utils")) { - compileOnly(files(project.sourceSets."main_$name".output)) - } else { - compileOnly(files(project.sourceSets."main_$name".compileClasspath)) - implementation(files(project.sourceSets."main_$name".output)) - } - } - - tasks.named("jar", Jar) { - from sourceSets."main_$name".output - } + tracerJavaExtension.addSourceSetFor(project.findProperty('minJavaVersionForTests')) // TODO configure this via extension // If unset (hasProperty is false), or value is explicitly set to false (case not seen), then @@ -259,8 +277,10 @@ tasks.withType(JavaCompile).configureEach { * For java changes the compiler from the toolchain, and adapts its configuration. * * For Groovy and Scala compile tasks only sets the launcher. + * + * NOTE: This function is exposed via a closure */ -ext.configureCompiler = (AbstractCompile it, int toolchainVersion, JavaVersion compatibilityVersion = null, String unsetReleaseFlagReason = null) -> { +def configureCompiler(AbstractCompile it, int toolchainVersion, JavaVersion compatibilityVersion = null, String unsetReleaseFlagReason = null) { Provider compiler = javaToolchains.compilerFor { languageVersion = JavaLanguageVersion.of(toolchainVersion) } @@ -309,7 +329,7 @@ ext.configureCompiler = (AbstractCompile it, int toolchainVersion, JavaVersion c } catch (NoSuchElementException ignored) { throw new GradleException("Unable to find compiler for Java $toolchainVersion. Have you set JAVA_${toolchainVersion}_HOME?") } -} as Closure +} ext.configureGroovyCompiler = (int toolchainVersion, String... taskNames) -> { taskNames.each { taskName -> From 594cbb1574ac0ea5d78c2f614d171aae2bd4f7fc Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Wed, 29 Oct 2025 16:26:22 -0400 Subject: [PATCH 06/18] chore: Use source set configuration --- .../akka/akka-http/akka-http-10.6/build.gradle | 9 ++++----- .../instrumentation/exception-profiling/build.gradle | 4 ++++ .../instrumentation/graal/native-image/build.gradle | 8 ++++---- .../java/java-net/java-net-11.0/build.gradle | 7 +++---- .../instrumentation/java/java-nio-1.8/build.gradle | 4 ++++ .../jetty/jetty-client/jetty-client-10.0/build.gradle | 7 ++++--- .../jetty/jetty-client/jetty-client-12.0/build.gradle | 7 ++++--- .../jetty/jetty-server/jetty-server-10.0/build.gradle | 8 ++++---- .../jetty/jetty-server/jetty-server-11.0/build.gradle | 8 ++++---- .../jetty/jetty-server/jetty-server-12.0/build.gradle | 8 ++++---- .../instrumentation/kafka/kafka-clients-3.8/build.gradle | 8 ++++---- .../micronaut/http-server-netty-4.0/build.gradle | 7 ++++--- .../servicetalk/servicetalk-0.42.0/build.gradle | 8 ++++---- .../spring/spring-webmvc/spring-webmvc-6.0/build.gradle | 8 ++++---- .../jetty-websocket/jetty-websocket-10/build.gradle | 8 ++++---- gradle/java_no_deps.gradle | 1 + internal-api/internal-api-9/build.gradle.kts | 6 ++++-- utils/socket-utils/build.gradle.kts | 6 ++++-- 18 files changed, 68 insertions(+), 54 deletions(-) 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 ffbc70668d3..94f1b6e90f6 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 @@ -1,11 +1,10 @@ -// Set properties before any plugins get loaded -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + muzzle { pass { group = 'com.typesafe.akka' diff --git a/dd-java-agent/instrumentation/exception-profiling/build.gradle b/dd-java-agent/instrumentation/exception-profiling/build.gradle index 6f90365731c..1a6126c8490 100644 --- a/dd-java-agent/instrumentation/exception-profiling/build.gradle +++ b/dd-java-agent/instrumentation/exception-profiling/build.gradle @@ -10,6 +10,10 @@ ext { apply from: "$rootDir/gradle/java.gradle" apply plugin: "idea" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + dependencies { testImplementation 'de.thetaphi:forbiddenapis:3.8' testImplementation libs.bundles.junit5 diff --git a/dd-java-agent/instrumentation/graal/native-image/build.gradle b/dd-java-agent/instrumentation/graal/native-image/build.gradle index 8ec10a8b617..00b23d34d99 100644 --- a/dd-java-agent/instrumentation/graal/native-image/build.gradle +++ b/dd-java-agent/instrumentation/graal/native-image/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { pass { group = "org.graalvm.nativeimage" @@ -13,6 +9,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" apply plugin: "idea" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + ["compileMain_java11Java", "compileTestJava"].each { tasks.named(it, JavaCompile) { configureCompiler(it, 11, JavaVersion.VERSION_11, "Needs access to module jdk.internal.vm.ci") diff --git a/dd-java-agent/instrumentation/java/java-net/java-net-11.0/build.gradle b/dd-java-agent/instrumentation/java/java-net/java-net-11.0/build.gradle index 16cac45bf41..5af9c672e94 100644 --- a/dd-java-agent/instrumentation/java/java-net/java-net-11.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-net/java-net-11.0/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { pass { coreJdk('11') @@ -11,6 +7,9 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" apply plugin: "idea" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} tasks.named("compileMain_java11Java", JavaCompile) { configureCompiler(it, 11, JavaVersion.VERSION_11) diff --git a/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle b/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle index 3646b9f5d83..ed8c1ec773f 100644 --- a/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle +++ b/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle @@ -11,6 +11,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" apply plugin: "idea" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + // Must use Java 11 to build JFR enabled code - there is no JFR in OpenJDK 8 (revisit once JFR in Java 8 is available) ["compileMain_java11Java", "compileTestJava"].each { name -> tasks.named(name, JavaCompile) { diff --git a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-10.0/build.gradle b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-10.0/build.gradle index 316435e75a2..00ddd8c272a 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-10.0/build.gradle +++ b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-10.0/build.gradle @@ -1,6 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} muzzle { pass { group = "org.eclipse.jetty" @@ -23,6 +20,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + addTestSuiteForDir('latestDepTest', 'test') addTestSuiteForDir('jetty11Test', 'test') addTestSuiteForDir('jetty10LatestDepTest', 'test') diff --git a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-12.0/build.gradle b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-12.0/build.gradle index 7e9852f8d7b..bcb1bd91020 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-12.0/build.gradle +++ b/dd-java-agent/instrumentation/jetty/jetty-client/jetty-client-12.0/build.gradle @@ -1,6 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} muzzle { pass { group = "org.eclipse.jetty" @@ -13,6 +10,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_17) +} + addTestSuiteForDir('latestDepTest', 'test') tasks.named("compileMain_java17Java", JavaCompile) { diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/build.gradle b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/build.gradle index 55e23c6fb6d..171fe756e58 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/build.gradle +++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { pass { name = "10_series" @@ -34,6 +30,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" apply plugin: "idea" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + addTestSuiteForDir("latestDepTest", "test") addTestSuiteExtendingForDir("latestDepForkedTest", "latestDepTest", "test") diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/build.gradle b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/build.gradle index 0de01c779fa..111367c055c 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/build.gradle +++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { pass { group = "org.eclipse.jetty" @@ -14,6 +10,10 @@ apply plugin: 'java-test-fixtures' apply from: "$rootDir/gradle/java.gradle" apply plugin: "idea" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + addTestSuiteForDir('latestDepTest', 'test') addTestSuiteForDir('latestDepForkedTest', 'test') diff --git a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/build.gradle b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/build.gradle index c7271771f4c..c7d83b3eac2 100644 --- a/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/build.gradle +++ b/dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} - muzzle { pass { group = "org.eclipse.jetty" @@ -19,6 +15,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_17) +} + addTestSuiteForDir('latestDepTest', 'test') // ee8 diff --git a/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/build.gradle b/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/build.gradle index d0e4201049a..29adf1431ee 100644 --- a/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/build.gradle +++ b/dd-java-agent/instrumentation/kafka/kafka-clients-3.8/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} - muzzle { pass { group = "org.apache.kafka" @@ -14,6 +10,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_17) +} + addTestSuiteForDir('latestDepTest', 'test') addTestSuiteExtendingForDir('latestDepForkedTest', 'latestDepTest', 'test') diff --git a/dd-java-agent/instrumentation/micronaut/http-server-netty-4.0/build.gradle b/dd-java-agent/instrumentation/micronaut/http-server-netty-4.0/build.gradle index 66bbda1af21..1699ecccf8a 100644 --- a/dd-java-agent/instrumentation/micronaut/http-server-netty-4.0/build.gradle +++ b/dd-java-agent/instrumentation/micronaut/http-server-netty-4.0/build.gradle @@ -1,6 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} muzzle { pass { group = "io.micronaut" @@ -12,6 +9,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_17) +} + addTestSuiteForDir('latestDepTest', 'test') ["compileMain_java17Java", "compileTestJava", "compileLatestDepTestJava"].each { diff --git a/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.0/build.gradle b/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.0/build.gradle index 8c8b4f1b6f7..2c7adbc93f1 100644 --- a/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.0/build.gradle +++ b/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.0/build.gradle @@ -15,12 +15,12 @@ muzzle { } } -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + addTestSuiteForDir('latestDepTest', 'test') dependencies { diff --git a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/build.gradle index d68949f6133..95377bf5c18 100644 --- a/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} - muzzle { pass { group = 'org.springframework' @@ -14,6 +10,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_17) +} + addTestSuiteForDir("latestDepTest", "test") ["compileMain_java17Java", "compileTestJava", "compileLatestDepTestJava"].each { diff --git a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-10/build.gradle b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-10/build.gradle index 2a012a08b81..b3b9ae3bad3 100644 --- a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-10/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-10/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { pass { name = 'jetty-websocket-10' @@ -15,6 +11,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + addTestSuite("latestDepTest") tasks.named("compileMain_java11Java", JavaCompile) { diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 993246603a6..7159b372181 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -1,3 +1,4 @@ +import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension import groovy.transform.CompileStatic import datadog.gradle.plugin.testJvmConstraints.ProvideJvmArgsOnJvmLauncherVersion diff --git a/internal-api/internal-api-9/build.gradle.kts b/internal-api/internal-api-9/build.gradle.kts index f8af68a73d9..fa799f17919 100644 --- a/internal-api/internal-api-9/build.gradle.kts +++ b/internal-api/internal-api-9/build.gradle.kts @@ -8,10 +8,12 @@ plugins { idea } -val minJavaVersionForTests by extra(JavaVersion.VERSION_11) - apply(from = "$rootDir/gradle/java.gradle") +extensions.getByName("tracerJava").withGroovyBuilder { + invokeMethod("addSourceSetFor", JavaVersion.VERSION_17) +} + java { toolchain { languageVersion = JavaLanguageVersion.of(11) diff --git a/utils/socket-utils/build.gradle.kts b/utils/socket-utils/build.gradle.kts index d76f3dd0b77..6ec943df382 100644 --- a/utils/socket-utils/build.gradle.kts +++ b/utils/socket-utils/build.gradle.kts @@ -7,10 +7,12 @@ plugins { idea } -val minJavaVersionForTests by extra(JavaVersion.VERSION_17) - apply(from = "$rootDir/gradle/java.gradle") +extensions.getByName("tracerJava").withGroovyBuilder { + this.invokeMethod("addSourceSetFor", arrayOf(JavaVersion.VERSION_17, true)) +} + dependencies { implementation(libs.slf4j) implementation(project(":internal-api")) From dcce4f231dd5d8ec172ea1ebeba90b204ef8af45 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 10:45:42 -0400 Subject: [PATCH 07/18] chore: Renames jvmConstraints to testJvmConstraints --- .../datadog.test-jvm-contraints.gradle.kts | 8 ++++---- .../TestJvmConstraintsExtension.kt | 2 +- .../profiling-controller-ddprof/build.gradle | 7 +++++-- .../profiling-controller-jfr/build.gradle | 9 ++++----- .../profiling-controller-openjdk/build.gradle | 11 +++++++---- .../profiling-controller-oracle/build.gradle | 2 -- .../instrumentation/aerospike-4.0/build.gradle | 4 ++-- .../akka/akka-http/akka-http-10.0/build.gradle | 2 +- .../armeria/armeria-jetty-1.24/build.gradle | 2 +- dd-java-agent/instrumentation/avro/build.gradle | 2 +- .../instrumentation/axis2-1.3/build.gradle | 4 ++-- .../instrumentation/cxf-2.1/build.gradle | 4 ++-- .../exception-profiling/build.gradle | 9 ++++++--- .../graphql-java/graphql-java-20.0/build.gradle | 2 +- .../instrumentation/ignite-2.0/build.gradle | 17 ++++------------- .../java-concurrent-21.0/build.gradle | 12 ++++++------ .../java/java-nio-1.8/build.gradle | 9 +++++---- dd-java-agent/instrumentation/jdbc/build.gradle | 2 +- .../junit/junit-5.3/build.gradle | 2 +- .../junit/junit-5.3/junit-5.8/build.gradle | 2 +- .../instrumentation/karate/build.gradle | 2 +- .../instrumentation/mule-4.5/build.gradle | 6 +++--- .../instrumentation/quartz-2.0/build.gradle | 4 ++-- .../instrumentation/selenium/build.gradle | 2 +- .../instrumentation/spark-executor/build.gradle | 2 +- .../spark/spark_2.12/build.gradle | 2 +- .../spark/spark_2.13/build.gradle | 4 +++- .../spring/spring-boot-1.3/build.gradle | 8 ++++---- .../spring/spring-scheduling-3.1/build.gradle | 6 +++--- .../testng/testng-7/build.gradle | 2 +- .../tomcat/tomcat-5.5/build.gradle | 8 ++++---- .../undertow/undertow-2.2/build.gradle | 4 ++-- .../vertx/vertx-web/vertx-web-4.0/build.gradle | 4 ++-- .../instrumentation/wildfly-9.0/build.gradle | 4 ++-- dd-smoke-tests/concurrent/java-25/build.gradle | 6 +++--- dd-smoke-tests/crashtracking/build.gradle | 6 +++--- dd-smoke-tests/java9-modules/build.gradle | 8 ++++---- dd-smoke-tests/jboss-modules/build.gradle | 7 +++---- .../profiling-integration-tests/build.gradle | 6 +++--- gradle/java_no_deps.gradle | 2 +- 40 files changed, 102 insertions(+), 103 deletions(-) diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts index 998e3d697d5..f8e2b3c60ed 100644 --- a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -1,10 +1,10 @@ import datadog.gradle.plugin.testJvmConstraints.ProvideJvmArgsOnJvmLauncherVersion import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension import datadog.gradle.plugin.testJvmConstraints.TestJvmJavaLauncher -import datadog.gradle.plugin.testJvmConstraints.* -import org.gradle.api.JavaVersion -import org.gradle.api.provider.Provider -import org.gradle.kotlin.dsl.* +import datadog.gradle.plugin.testJvmConstraints.isJavaLauncherAllowed +import datadog.gradle.plugin.testJvmConstraints.isJavaVersionAllowed +import datadog.gradle.plugin.testJvmConstraints.isJdkExcluded +import datadog.gradle.plugin.testJvmConstraints.isJdkForced plugins { java diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt index bc5cb76cbb7..79eb310b67c 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt @@ -19,6 +19,6 @@ interface TestJvmConstraintsExtension { val allowReflectiveAccessToJdk: Property companion object { - const val NAME = "jvmConstraint" + const val NAME = "testJvmConstraint" } } diff --git a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle index 2fb6e24f654..1c5e232cd09 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle @@ -1,15 +1,18 @@ // Set properties before any plugins get loaded ext { - minJavaVersionForTests = JavaVersion.VERSION_11 // By default tests with be compiled for `minJavaVersionForTests` version, // but in this case we would like to avoid this since we would like to run with ZULU8 skipSettingTestJavaVersion = true - excludeJdk = ['SEMERU11', 'SEMERU17'] } apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + excludeJdk = ['SEMERU11', 'SEMERU17'] +} + minimumBranchCoverage = 0.5 minimumInstructionCoverage = 0.7 diff --git a/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle index d581337fabc..72a66804140 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle @@ -1,7 +1,9 @@ import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis -// Set properties before any plugins get loaded -ext { +apply from: "$rootDir/gradle/java.gradle" +apply plugin: 'idea' + +testJvmConstraint { // the tests need Java 11 because the JFR writer got compiled with a version // of ByteBuffer.position(int) which is binary incompatible with Java 8 ¯\_(ツ)_/¯ minJavaVersionForTests = JavaVersion.VERSION_11 @@ -9,9 +11,6 @@ ext { excludeJdk = ['SEMERU11', 'SEMERU17'] } -apply from: "$rootDir/gradle/java.gradle" -apply plugin: 'idea' - dependencies { api project(':dd-java-agent:agent-profiling:profiling-controller') diff --git a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle index 6c2f5beb1fa..6f2db310771 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle @@ -1,9 +1,5 @@ // Set properties before any plugins get loaded ext { - minJavaVersionForTests = JavaVersion.VERSION_11 - // Zulu has backported profiling support - forceJdk = ['ZULU8'] - excludeJdk = ['SEMERU11', 'SEMERU17'] // By default tests with be compiled for `minJavaVersionForTests` version, // but in this case we would like to avoid this since we would like to run with ZULU8 skipSettingTestJavaVersion = true @@ -12,6 +8,13 @@ ext { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + // Zulu has backported profiling support + forceJdk = ['ZULU8'] + excludeJdk = ['SEMERU11', 'SEMERU17'] +} + dependencies { api libs.slf4j api project(':internal-api') diff --git a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle index 5302bc76cec..9f2a19fcadd 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle @@ -1,7 +1,5 @@ // Set properties before any plugins get loaded ext { - // Need to force Oracle JDK 8 since it is the only JDK compatible with this implementation - forceJdk = ['ORACLE8'] // By default tests with be compiled for `minJavaVersionForTests` version, // but in this case we would like to avoid this since we would like to run with ORACLE8 skipSettingTestJavaVersion = true diff --git a/dd-java-agent/instrumentation/aerospike-4.0/build.gradle b/dd-java-agent/instrumentation/aerospike-4.0/build.gradle index 35444ad5202..aefdb1eb227 100644 --- a/dd-java-agent/instrumentation/aerospike-4.0/build.gradle +++ b/dd-java-agent/instrumentation/aerospike-4.0/build.gradle @@ -15,13 +15,13 @@ addTestSuiteExtendingForDir("latestDepForkedTest", "latestDepTest", "test") addTestSuiteExtendingForDir("latest7DepForkedTest", "latest7DepTest", "test") tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_21 } } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_21 } } 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 81db8373038..0574e2b7e01 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 @@ -18,7 +18,7 @@ addTestSuiteForDir 'version102IastTest', 'iastTest' addTestSuiteForDir 'latestDepIastTest', 'iastTest' tasks.named("lagomTest", Test) { - jvmConstraint { + testJvmConstraint { maxJavaVersionForTests = JavaVersion.VERSION_1_8 } } 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 68c9e7c91df..9c694f7c214 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 @@ -22,7 +22,7 @@ addTestSuiteExtendingForDir("jetty9LatestDepTest", "latestDepTest", "test/jetty9 addTestSuiteExtendingForDir("jetty11LatestDepTest", "latestDepTest", "test/jetty11") tasks.named("jetty11Test", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/avro/build.gradle b/dd-java-agent/instrumentation/avro/build.gradle index 8043903f6e0..c37a04b6d95 100644 --- a/dd-java-agent/instrumentation/avro/build.gradle +++ b/dd-java-agent/instrumentation/avro/build.gradle @@ -13,7 +13,7 @@ addTestSuiteForDir('latestDepTest','test') addTestSuiteForDir('latestDepTest8','test') tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/axis2-1.3/build.gradle b/dd-java-agent/instrumentation/axis2-1.3/build.gradle index 1a58b2a6fc5..f5a767d1f13 100644 --- a/dd-java-agent/instrumentation/axis2-1.3/build.gradle +++ b/dd-java-agent/instrumentation/axis2-1.3/build.gradle @@ -12,13 +12,13 @@ addTestSuiteForDir('latestDepTest', 'test') addTestSuiteForDir('latestDepForkedTest', 'test') tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/cxf-2.1/build.gradle b/dd-java-agent/instrumentation/cxf-2.1/build.gradle index b677cee2a74..31f7c177e01 100644 --- a/dd-java-agent/instrumentation/cxf-2.1/build.gradle +++ b/dd-java-agent/instrumentation/cxf-2.1/build.gradle @@ -20,13 +20,13 @@ addTestSuite('latestDepTest') addTestSuiteForDir('cxf3LatestDepTest', 'test') tasks.named("cxf3LatestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/exception-profiling/build.gradle b/dd-java-agent/instrumentation/exception-profiling/build.gradle index 1a6126c8490..2f0cb38e6a8 100644 --- a/dd-java-agent/instrumentation/exception-profiling/build.gradle +++ b/dd-java-agent/instrumentation/exception-profiling/build.gradle @@ -1,7 +1,4 @@ ext { - minJavaVersionForTests = JavaVersion.VERSION_11 - // Zulu has backported profiling support - forceJdk = ['ZULU8'] // By default tests with be compiled for `minJavaVersionForTests` version, // but in this case we would like to avoid this since we would like to run with ZULU8 skipSettingTestJavaVersion = true @@ -14,6 +11,12 @@ tracerJava { addSourceSetFor(JavaVersion.VERSION_11) } +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + // Zulu has backported profiling support + forceJdk = ['ZULU8'] +} + dependencies { testImplementation 'de.thetaphi:forbiddenapis:3.8' testImplementation libs.bundles.junit5 diff --git a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle index 8031f486fd2..c801bc9ac79 100644 --- a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle +++ b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle @@ -70,7 +70,7 @@ tasks.matching { "graphql21LatestDepForkedTest" ] }.configureEach { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/ignite-2.0/build.gradle b/dd-java-agent/instrumentation/ignite-2.0/build.gradle index 1b4dbe24ded..48672e28b35 100644 --- a/dd-java-agent/instrumentation/ignite-2.0/build.gradle +++ b/dd-java-agent/instrumentation/ignite-2.0/build.gradle @@ -27,6 +27,10 @@ addTestSuiteExtendingForDir('latestDepForkedTest', 'latestDepTest', 'test') addTestSuiteForDir('ignite216Test', 'test') addTestSuiteExtendingForDir('ignite216ForkedTest', 'ignite216Test', 'test') +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 +} + dependencies { compileOnly group: 'org.apache.ignite', name: 'ignite-core', version: '2.0.0' @@ -45,16 +49,3 @@ for (task in ['compileLatestDepTestGroovy', 'compileLatestDepForkedTestGroovy']) configureCompiler(it, 11) } } - -tasks.named("latestDepTest", Test) { - jvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 - } -} - -tasks.named("latestDepForkedTest", Test) { - jvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 - } -} - diff --git a/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle b/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle index ceb9d380312..88e02ac3cf0 100644 --- a/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle @@ -1,15 +1,15 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" +// Use slf4j-simple as default; logback has a high chance of getting stuck in a deadlock on CI. +apply from: "$rootDir/gradle/slf4j-simple.gradle" +apply plugin: 'idea' + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_21 // Structured concurrency is a preview feature in Java 21. Methods (e.g. ShutdownOnFailure) used in this instrumentation test are no longer available in Java 25, so we set the max version to 24. // See: https://download.java.net/java/early_access/loom/docs/api/java.base/java/util/concurrent/StructuredTaskScope.html maxJavaVersionForTests = JavaVersion.VERSION_24 } -apply from: "$rootDir/gradle/java.gradle" -// Use slf4j-simple as default; logback has a high chance of getting stuck in a deadlock on CI. -apply from: "$rootDir/gradle/slf4j-simple.gradle" -apply plugin: 'idea' - muzzle { pass { coreJdk('21') diff --git a/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle b/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle index ed8c1ec773f..9e2494f5526 100644 --- a/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle +++ b/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 - excludeJdk = ['SEMERU11', 'SEMERU17'] -} muzzle { pass { coreJdk() @@ -15,6 +11,11 @@ tracerJava { addSourceSetFor(JavaVersion.VERSION_11) } +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 + excludeJdk = ['SEMERU11', 'SEMERU17'] +} + // Must use Java 11 to build JFR enabled code - there is no JFR in OpenJDK 8 (revisit once JFR in Java 8 is available) ["compileMain_java11Java", "compileTestJava"].each { name -> tasks.named(name, JavaCompile) { diff --git a/dd-java-agent/instrumentation/jdbc/build.gradle b/dd-java-agent/instrumentation/jdbc/build.gradle index 38d1d290783..8905054ad96 100644 --- a/dd-java-agent/instrumentation/jdbc/build.gradle +++ b/dd-java-agent/instrumentation/jdbc/build.gradle @@ -97,7 +97,7 @@ tasks.withType(Test).configureEach { } tasks.named("latestDepJava11Test", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle index a412af5acaa..702951385ce 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle @@ -64,7 +64,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle index a769beb8482..04ebdebafe6 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle @@ -58,7 +58,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/karate/build.gradle b/dd-java-agent/instrumentation/karate/build.gradle index a03b3b5bc2b..d9dfe17f470 100644 --- a/dd-java-agent/instrumentation/karate/build.gradle +++ b/dd-java-agent/instrumentation/karate/build.gradle @@ -82,7 +82,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { tasks.named("latestDepTest", Test) { // karate 1.4.0+ requires Java 11 or higher. - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/mule-4.5/build.gradle b/dd-java-agent/instrumentation/mule-4.5/build.gradle index f3b3d278b4e..69e6a7c9645 100644 --- a/dd-java-agent/instrumentation/mule-4.5/build.gradle +++ b/dd-java-agent/instrumentation/mule-4.5/build.gradle @@ -107,7 +107,7 @@ tasks.named("forbiddenApisMain_java11") { } tasks.named("forkedTest", Test) { - jvmConstraint { + testJvmConstraint { maxJavaVersionForTests = JavaVersion.VERSION_11 } } @@ -130,13 +130,13 @@ tasks.named("compileLatestDepForkedTestJava", JavaCompile) { } tasks.named("mule46ForkedTest", Test) { - jvmConstraint { + testJvmConstraint { maxJavaVersionForTests = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 maxJavaVersionForTests = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/quartz-2.0/build.gradle b/dd-java-agent/instrumentation/quartz-2.0/build.gradle index 00ceabc3562..818089a0e32 100644 --- a/dd-java-agent/instrumentation/quartz-2.0/build.gradle +++ b/dd-java-agent/instrumentation/quartz-2.0/build.gradle @@ -39,13 +39,13 @@ dependencies { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } tasks.named("version40Test", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/selenium/build.gradle b/dd-java-agent/instrumentation/selenium/build.gradle index b7ba9128ef1..cfed5200dd0 100644 --- a/dd-java-agent/instrumentation/selenium/build.gradle +++ b/dd-java-agent/instrumentation/selenium/build.gradle @@ -43,7 +43,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/spark-executor/build.gradle b/dd-java-agent/instrumentation/spark-executor/build.gradle index 4525dafc370..37dd0e62504 100644 --- a/dd-java-agent/instrumentation/spark-executor/build.gradle +++ b/dd-java-agent/instrumentation/spark-executor/build.gradle @@ -22,7 +22,7 @@ addTestSuite('baseTest') addTestSuiteForDir('latest212DepTest', 'baseTest') addTestSuiteForDir('latest213DepTest', 'baseTest') -ext { +testJvmConstraint { // Hadoop does not behave correctly with OpenJ9 https://issues.apache.org/jira/browse/HADOOP-18174 excludeJdk = ['SEMERU8', 'SEMERU11'] diff --git a/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle b/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle index 0f7451a25d7..bb7a95d5aed 100644 --- a/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle +++ b/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle @@ -22,7 +22,7 @@ addTestSuiteForDir('latestDepTest', 'test') addTestSuite('test_spark24') addTestSuite('test_spark32') -ext { +testJvmConstraint { // Hadoop does not behave correctly with OpenJ9 https://issues.apache.org/jira/browse/HADOOP-18174 excludeJdk = ['SEMERU8', 'SEMERU11'] diff --git a/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle b/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle index 0dd13f5c96e..36c24cb7c8c 100644 --- a/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle +++ b/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle @@ -25,7 +25,7 @@ apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest', 'test') addTestSuite('test_spark32') -ext { +testJvmConstraint { // Hadoop does not behave correctly with OpenJ9 https://issues.apache.org/jira/browse/HADOOP-18174 // Hadoop 3.3.1 (used by spark 3.2) does not support IBM java https://issues.apache.org/jira/browse/HADOOP-17971 excludeJdk = ['SEMERU8', 'SEMERU11', 'IBM8'] @@ -33,9 +33,11 @@ ext { // Spark does not support Java > 11 until 3.3.0 https://issues.apache.org/jira/browse/SPARK-33772 maxJavaVersionForTests = JavaVersion.VERSION_11 } + configurations.configureEach { resolutionStrategy.deactivateDependencyLocking() } + dependencies { implementation project(':dd-java-agent:instrumentation:spark') diff --git a/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle b/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle index c7da6fd04ba..c6865775779 100644 --- a/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle @@ -47,25 +47,25 @@ dependencies { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } tasks.named("boot3Test", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } tasks.named("boot3ForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle b/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle index efa8302fc0d..13c79ab89dd 100644 --- a/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle @@ -72,19 +72,19 @@ dependencies { } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } tasks.named("spring6Test", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/testng/testng-7/build.gradle b/dd-java-agent/instrumentation/testng/testng-7/build.gradle index 728476eb0dc..beb8c4e2c9e 100644 --- a/dd-java-agent/instrumentation/testng/testng-7/build.gradle +++ b/dd-java-agent/instrumentation/testng/testng-7/build.gradle @@ -26,7 +26,7 @@ addTestSuiteForDir('latestDepTest', 'test') tasks.named("latestDepTest", Test) { // testng 7.6.0+ requires Java 11 or higher. - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle index 0445358688f..09c1bb04642 100644 --- a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle +++ b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle @@ -162,25 +162,25 @@ tasks.withType(Test).configureEach { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } } tasks.named("latest10Test", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } tasks.named("latest10ForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle b/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle index 3520a6f2bbe..8a689f57ec6 100644 --- a/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle +++ b/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle @@ -47,13 +47,13 @@ dependencies { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } } 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 66f3b75564e..3ca81ab83c3 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 @@ -65,14 +65,14 @@ dependencies { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 maxJavaVersionForTests = JavaVersion.VERSION_25 } } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 maxJavaVersionForTests = JavaVersion.VERSION_25 } diff --git a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle index eea061bef2a..b304d58970b 100644 --- a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle +++ b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle @@ -108,7 +108,7 @@ tasks.named("forkedTest", Test) { } tasks.named("latestDepTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } dependsOn 'extractLatestWildfly' @@ -171,7 +171,7 @@ tasks.named("forkedTest", Test) { } tasks.named("latestDepForkedTest", Test) { - jvmConstraint { + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } jvmArgumentProviders.add( diff --git a/dd-smoke-tests/concurrent/java-25/build.gradle b/dd-smoke-tests/concurrent/java-25/build.gradle index 59be13d01a9..b66577a2c60 100644 --- a/dd-smoke-tests/concurrent/java-25/build.gradle +++ b/dd-smoke-tests/concurrent/java-25/build.gradle @@ -5,7 +5,9 @@ plugins { id 'com.gradleup.shadow' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // This smoke test should be limited to Java 25 and above // But the groovy testing framework cannot run on Java 25 // Using Java 8 for now and runs a JVM 25 when forking tests process. @@ -16,8 +18,6 @@ ext { excludeJdk = ['IBM8', 'SEMERU8'] } -apply from: "$rootDir/gradle/java.gradle" - description = 'JDK 25 Concurrent Integration Tests' javaToolchains { diff --git a/dd-smoke-tests/crashtracking/build.gradle b/dd-smoke-tests/crashtracking/build.gradle index 7c3772504e0..7466c74bbd2 100644 --- a/dd-smoke-tests/crashtracking/build.gradle +++ b/dd-smoke-tests/crashtracking/build.gradle @@ -4,12 +4,12 @@ plugins { id 'com.gradleup.shadow' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { excludeJdk = ['IBM8'] } -apply from: "$rootDir/gradle/java.gradle" - description = 'Crashtracking Integration Tests.' tasks.named("jar", Jar) { diff --git a/dd-smoke-tests/java9-modules/build.gradle b/dd-smoke-tests/java9-modules/build.gradle index 4f050d0d65f..cbe671bbdf5 100644 --- a/dd-smoke-tests/java9-modules/build.gradle +++ b/dd-smoke-tests/java9-modules/build.gradle @@ -1,9 +1,9 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + tasks.named("jar", Jar) { manifest { attributes('Main-Class': 'datadog.smoketest.moduleapp.ModuleApplication') diff --git a/dd-smoke-tests/jboss-modules/build.gradle b/dd-smoke-tests/jboss-modules/build.gradle index b3cc061d502..f984854a870 100644 --- a/dd-smoke-tests/jboss-modules/build.gradle +++ b/dd-smoke-tests/jboss-modules/build.gradle @@ -1,12 +1,11 @@ +apply from: "$rootDir/gradle/java.gradle" +description = 'JBoss Modules Smoke Tests.' -ext { +testJvmConstraint { // see https://datadoghq.atlassian.net/wiki/x/H4S2NQE excludeJdk = ['IBM8'] } -apply from: "$rootDir/gradle/java.gradle" -description = 'JBoss Modules Smoke Tests.' - configurations { register('jbossModulesV1') register('jbossModulesV2') diff --git a/dd-smoke-tests/profiling-integration-tests/build.gradle b/dd-smoke-tests/profiling-integration-tests/build.gradle index 934a093faf5..6755bde3d26 100644 --- a/dd-smoke-tests/profiling-integration-tests/build.gradle +++ b/dd-smoke-tests/profiling-integration-tests/build.gradle @@ -4,12 +4,12 @@ plugins { id 'com.gradleup.shadow' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { excludeJdk = ['IBM8'] } -apply from: "$rootDir/gradle/java.gradle" - description = 'Profiling Integration Tests.' tasks.named("jar", Jar) { diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 7159b372181..37f0cd358ed 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -1,6 +1,6 @@ import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension -import groovy.transform.CompileStatic import datadog.gradle.plugin.testJvmConstraints.ProvideJvmArgsOnJvmLauncherVersion +import groovy.transform.CompileStatic apply plugin: 'java-library' apply plugin: 'datadog.test-jvm-contraints' From 3ef9429f702fedcab4b8c0083ec572de02f73ed4 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 11:44:38 -0400 Subject: [PATCH 08/18] fix: profiling-controller-oracle tests could never run, introduce an includeJdk directive --- .../datadog.test-jvm-contraints.gradle.kts | 3 +++ .../TestJvmConstraintsExtension.kt | 25 +++++++++++++++++++ .../TestJvmConstraintsUtils.kt | 10 +++++++- .../profiling-controller-oracle/build.gradle | 4 +-- 4 files changed, 39 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts index f8e2b3c60ed..331475117f3 100644 --- a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -4,6 +4,7 @@ import datadog.gradle.plugin.testJvmConstraints.TestJvmJavaLauncher import datadog.gradle.plugin.testJvmConstraints.isJavaLauncherAllowed import datadog.gradle.plugin.testJvmConstraints.isJavaVersionAllowed import datadog.gradle.plugin.testJvmConstraints.isJdkExcluded +import datadog.gradle.plugin.testJvmConstraints.isJdkIncluded import datadog.gradle.plugin.testJvmConstraints.isJdkForced plugins { @@ -27,6 +28,7 @@ tasks.withType().configureEach { inputs.property("${TestJvmConstraintsExtension.NAME}.allowReflectiveAccessToJdk", taskExtension.allowReflectiveAccessToJdk).optional(true) inputs.property("${TestJvmConstraintsExtension.NAME}.excludeJdk", taskExtension.excludeJdk) + inputs.property("${TestJvmConstraintsExtension.NAME}.includeJdk", taskExtension.includeJdk) inputs.property("${TestJvmConstraintsExtension.NAME}.forceJdk", taskExtension.forceJdk) inputs.property("${TestJvmConstraintsExtension.NAME}.minJavaVersionForTests", taskExtension.minJavaVersionForTests).optional(true) inputs.property("${TestJvmConstraintsExtension.NAME}.maxJavaVersionForTests", taskExtension.maxJavaVersionForTests).optional(true) @@ -63,6 +65,7 @@ fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { if (testJvmJavaLauncher.javaTestLauncher.isPresent) { javaLauncher = testJvmJavaLauncher.javaTestLauncher onlyIf("Allowed or forced JDK") { + extension.isJdkIncluded(testJvmJavaLauncher.normalizedTestJvm.get()) && !extension.isJdkExcluded(testJvmJavaLauncher.normalizedTestJvm.get()) && (extension.isJavaLauncherAllowed(testJvmJavaLauncher.javaTestLauncher.get()) || extension.isJdkForced(testJvmJavaLauncher.normalizedTestJvm.get())) diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt index 79eb310b67c..1fa79c7b9c5 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt @@ -12,10 +12,35 @@ import org.gradle.kotlin.dsl.property import javax.inject.Inject interface TestJvmConstraintsExtension { + /** + * Sets an explicit minimum bound to allowed JDK version + */ val minJavaVersionForTests: Property + + /** + * Sets an explicit maximum bound to allowed JDK version + */ val maxJavaVersionForTests: Property + + /** + * List of allowed JDK names (passed through the `testJvm` property). + */ val forceJdk: ListProperty + + /** + * List of included JDK names (passed through the `testJvm` property). + */ + val includeJdk: ListProperty + + /** + * List of excluded JDK names (passed through the `testJvm` property). + */ val excludeJdk: ListProperty + + /** + * Indicate if test jvm allows reflective access to JDK modules, in particular this toggle + * openning `java.base/java.lang` and `java.base/java.util`. + */ val allowReflectiveAccessToJdk: Property companion object { diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt index cf22dcdf475..fb178d15e8c 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt @@ -36,9 +36,17 @@ internal fun TestJvmConstraintsExtension.isJavaLauncherAllowed(javaLauncher: Jav } internal fun TestJvmConstraintsExtension.isJdkForced(javaName: String): Boolean { - return forceJdk.get().any { it.equals(javaName, ignoreCase = true) } + return forceJdk.orNull?.any { it.equals(javaName, ignoreCase = true) } ?: false } internal fun TestJvmConstraintsExtension.isJdkExcluded(javaName: String): Boolean { return excludeJdk.get().any { it.equals(javaName, ignoreCase = true) } } + +internal fun TestJvmConstraintsExtension.isJdkIncluded(javaName: String): Boolean { + val included = includeJdk.get() + return when { + included.isEmpty() -> true + else -> included.any { it.equals(javaName, ignoreCase = true) } + } +} diff --git a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle index 9f2a19fcadd..756a231eab5 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle @@ -26,8 +26,8 @@ dependencies { // Oracle JDK requires extra JVM arguments to enable JFR tasks.withType(Test).configureEach { - onlyIf { - it.name.contains('ORACLE8') + testJvmConstraint { + includeJdk = ['ORACLE8'] } jvmArgs += [ From 39c00eeb003b58ef33a3b78e0ffb7ddbafaaddcf Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 14:36:50 -0400 Subject: [PATCH 09/18] refactor: Simplify test jvm enablement code --- .../datadog.test-jvm-contraints.gradle.kts | 20 +++---- .../TestJvmConstraintsUtils.kt | 55 +++++++++---------- ...{TestJvmJavaLauncher.kt => TestJvmSpec.kt} | 2 +- 3 files changed, 34 insertions(+), 43 deletions(-) rename buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/{TestJvmJavaLauncher.kt => TestJvmSpec.kt} (98%) diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts index 331475117f3..43f2d2e3ac3 100644 --- a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -1,11 +1,8 @@ import datadog.gradle.plugin.testJvmConstraints.ProvideJvmArgsOnJvmLauncherVersion import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension -import datadog.gradle.plugin.testJvmConstraints.TestJvmJavaLauncher -import datadog.gradle.plugin.testJvmConstraints.isJavaLauncherAllowed +import datadog.gradle.plugin.testJvmConstraints.TestJvmSpec import datadog.gradle.plugin.testJvmConstraints.isJavaVersionAllowed -import datadog.gradle.plugin.testJvmConstraints.isJdkExcluded -import datadog.gradle.plugin.testJvmConstraints.isJdkIncluded -import datadog.gradle.plugin.testJvmConstraints.isJdkForced +import datadog.gradle.plugin.testJvmConstraints.isTestJvmAllowed plugins { java @@ -13,7 +10,7 @@ plugins { val projectExtension = extensions.create(TestJvmConstraintsExtension.NAME) -val testJvmJavaLauncher = TestJvmJavaLauncher(project) +val testJvmSpec = TestJvmSpec(project) tasks.withType().configureEach { if (extensions.findByName(TestJvmConstraintsExtension.NAME) != null) { @@ -62,13 +59,10 @@ fun Test.configureJvmArgs( * can be run with the test task launcher. */ fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { - if (testJvmJavaLauncher.javaTestLauncher.isPresent) { - javaLauncher = testJvmJavaLauncher.javaTestLauncher + if (testJvmSpec.javaTestLauncher.isPresent) { + javaLauncher = testJvmSpec.javaTestLauncher onlyIf("Allowed or forced JDK") { - extension.isJdkIncluded(testJvmJavaLauncher.normalizedTestJvm.get()) && - !extension.isJdkExcluded(testJvmJavaLauncher.normalizedTestJvm.get()) && - (extension.isJavaLauncherAllowed(testJvmJavaLauncher.javaTestLauncher.get()) || - extension.isJdkForced(testJvmJavaLauncher.normalizedTestJvm.get())) + extension.isTestJvmAllowed(testJvmSpec) } } else { onlyIf("Is current Daemon JVM allowed") { @@ -91,7 +85,7 @@ fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { pluginManager.withPlugin("org.gradle.jacoco") { tasks.withType().configureEach { // Disable jacoco for additional 'testJvm' tests to speed things up a bit - if (testJvmJavaLauncher.javaTestLauncher.isPresent) { + if (testJvmSpec.javaTestLauncher.isPresent) { extensions.configure { isEnabled = false } diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt index fb178d15e8c..842b2192df6 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt @@ -6,7 +6,32 @@ import org.gradle.jvm.toolchain.JavaLauncher private val logger = Logging.getLogger("TestJvmConstraintsUtils") -private fun TestJvmConstraintsExtension.isJavaVersionAllowedForProperty(currentJvmVersion: JavaVersion): Boolean { +internal fun TestJvmConstraintsExtension.isJavaVersionAllowed(version: JavaVersion): Boolean { + return isWithinAllowedRange(version) +} + +internal fun TestJvmConstraintsExtension.isTestJvmAllowed(testJvmSpec: TestJvmSpec): Boolean { + val testJvmName = testJvmSpec.normalizedTestJvm.get() + + val included = includeJdk.get() + if (included.isNotEmpty() && included.none { it.equals(testJvmName, ignoreCase = true) }) { + return false + } + + val excluded = excludeJdk.get() + if (excluded.isNotEmpty() && excluded.any { it.equals(testJvmName, ignoreCase = true) }) { + return false + } + + val launcherVersion = JavaVersion.toVersion(testJvmSpec.javaTestLauncher.get().metadata.languageVersion.asInt()) + if (!isWithinAllowedRange(launcherVersion) && forceJdk.get().none { it.equals(testJvmName, ignoreCase = true) }) { + return false + } + + return true +} + +private fun TestJvmConstraintsExtension.isWithinAllowedRange(currentJvmVersion: JavaVersion): Boolean { val definedMin = minJavaVersionForTests.isPresent val definedMax = maxJavaVersionForTests.isPresent @@ -22,31 +47,3 @@ private fun TestJvmConstraintsExtension.isJavaVersionAllowedForProperty(currentJ return true } - -internal fun TestJvmConstraintsExtension.isJavaVersionAllowed(version: JavaVersion): Boolean { - return isJavaVersionAllowedForProperty(version) -} - -/** - * Convenience method to call [isJavaVersionAllowed] - */ -internal fun TestJvmConstraintsExtension.isJavaLauncherAllowed(javaLauncher: JavaLauncher): Boolean { - val launcherVersion = JavaVersion.toVersion(javaLauncher.metadata.languageVersion.asInt()) - return isJavaVersionAllowed(launcherVersion) -} - -internal fun TestJvmConstraintsExtension.isJdkForced(javaName: String): Boolean { - return forceJdk.orNull?.any { it.equals(javaName, ignoreCase = true) } ?: false -} - -internal fun TestJvmConstraintsExtension.isJdkExcluded(javaName: String): Boolean { - return excludeJdk.get().any { it.equals(javaName, ignoreCase = true) } -} - -internal fun TestJvmConstraintsExtension.isJdkIncluded(javaName: String): Boolean { - val included = includeJdk.get() - return when { - included.isEmpty() -> true - else -> included.any { it.equals(javaName, ignoreCase = true) } - } -} diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmSpec.kt similarity index 98% rename from buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt rename to buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmSpec.kt index 52bd1e32701..b848467f384 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmJavaLauncher.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmSpec.kt @@ -9,7 +9,7 @@ import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths -class TestJvmJavaLauncher(val project: Project) { +class TestJvmSpec(val project: Project) { private val currentJavaHomePath = project.providers.systemProperty("java.home").map { it.normalizeToJDKJavaHome() } val normalizedTestJvm = project.providers.gradleProperty("testJvm").map { testJvm -> if (testJvm.isBlank()) { From 975044a47bbdbf8c5c4c34a40fa10157aa562a6d Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 16:04:34 -0400 Subject: [PATCH 10/18] chore: Handle test sources compilation override --- .../profiling-controller-ddprof/build.gradle | 15 ++-- .../profiling-controller-openjdk/build.gradle | 15 ++-- .../profiling-controller-oracle/build.gradle | 15 ++-- .../exception-profiling/build.gradle | 12 ++- gradle/java_no_deps.gradle | 75 +++++++++++++------ utils/socket-utils/build.gradle.kts | 2 +- 6 files changed, 83 insertions(+), 51 deletions(-) diff --git a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle index 1c5e232cd09..34e2f1812db 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle @@ -1,13 +1,14 @@ -// Set properties before any plugins get loaded -ext { - // By default tests with be compiled for `minJavaVersionForTests` version, - // but in this case we would like to avoid this since we would like to run with ZULU8 - skipSettingTestJavaVersion = true -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) { + // By default tests with be compiled for `minJavaVersionForTests` version, + // but in this case we would like to avoid this since we would like to run with ZULU8 + applyForTestSources = false + } +} + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 excludeJdk = ['SEMERU11', 'SEMERU17'] diff --git a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle index 6f2db310771..04a1a5a371c 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle @@ -1,13 +1,14 @@ -// Set properties before any plugins get loaded -ext { - // By default tests with be compiled for `minJavaVersionForTests` version, - // but in this case we would like to avoid this since we would like to run with ZULU8 - skipSettingTestJavaVersion = true -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) { + // By default tests with be compiled for `minJavaVersionForTests` version, + // but in this case we would like to avoid this since we would like to run with ZULU8 + applyForTestSources = false + } +} + testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 // Zulu has backported profiling support diff --git a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle index 756a231eab5..7b1b35b832b 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle @@ -1,12 +1,13 @@ -// Set properties before any plugins get loaded -ext { - // By default tests with be compiled for `minJavaVersionForTests` version, - // but in this case we would like to avoid this since we would like to run with ORACLE8 - skipSettingTestJavaVersion = true -} - apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) { + // By default tests with be compiled for `minJavaVersionForTests` version, + // but in this case we would like to avoid this since we would like to run with ZULU8 + applyForTestSources = false + } +} + minimumBranchCoverage = 0.5 minimumInstructionCoverage = 0.7 diff --git a/dd-java-agent/instrumentation/exception-profiling/build.gradle b/dd-java-agent/instrumentation/exception-profiling/build.gradle index 2f0cb38e6a8..2b7abb74dde 100644 --- a/dd-java-agent/instrumentation/exception-profiling/build.gradle +++ b/dd-java-agent/instrumentation/exception-profiling/build.gradle @@ -1,14 +1,12 @@ -ext { - // By default tests with be compiled for `minJavaVersionForTests` version, - // but in this case we would like to avoid this since we would like to run with ZULU8 - skipSettingTestJavaVersion = true -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: "idea" tracerJava { - addSourceSetFor(JavaVersion.VERSION_11) + addSourceSetFor(JavaVersion.VERSION_11) { + // By default tests with be compiled for `minJavaVersionForTests` version, + // but in this case we would like to avoid this since we would like to run with ZULU8 + applyForTestSources = false + } } testJvmConstraint { diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 37f0cd358ed..4cd3ecb0e72 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -18,26 +18,62 @@ ext.configureCompiler = (AbstractCompile it, int toolchainVersion, JavaVersion c configureCompiler(it, toolchainVersion, compatibilityVersion, unsetReleaseFlagReason) } as Closure +@CompileStatic +interface TracerSourceSetConfig { + /** + * Additional sourceSet output is added as `compileOnly` rather than `implementation`. + * + * This is useful to avoid some classes to be added to add classes to the wrog jar prefix. + */ + Property getCompileOnly() + + /** + * Whether to apply or not the JavaVersion to tests sources, default to `true`. + * + * In some cases we would like to avoid setting java version to for tests. + * For example we would like to be able to run profiling tests with `ZULU8`, + * but we cannot run it with other JDK8 implementations at the moment + */ + Property getApplyForTestSources() +} + @CompileStatic class TracerJavaExtension { public static String NAME = "tracerJava"; + private ObjectFactory objects private Project project - Property skipSettingTestJavaVersion - TracerJavaExtension(ObjectFactory objects, ProviderFactory providers, Project project) { this.project = project - this.skipSettingTestJavaVersion = objects.property(Boolean).convention(providers.provider { project.findProperty('skipSettingTestJavaVersion') as Boolean }) + this.objects = objects + } + + /** + * Same as [addSourceSetFor] used for compatibility when used in kotlin scripts within `withGroovyBuilder`. + * + * Once moved to convention plugins this can go away. + * + * @param javaVersion The wanted java version for these source. + * @param sourceSetOptions + */ + def addSourceSetFor(JavaVersion javaVersion, Map sourceSetOptions) { + addSourceSetFor(javaVersion) { + it.compileOnly.set(sourceSetOptions.getOrDefault('compileOnly', false)) + it.applyForTestSources.set(sourceSetOptions.getOrDefault('applyForTestSources', true)) + } } /** * Adds the source set `src/main/javaXX`, configures its compilation and its test jvm constraints. * * @param javaVersion The wanted java version for these source. - * @param compileOnly Whether the compilation output is added as compileOnly. - * @return + * @param sourceSetConfigurer Options for this source set. */ - def addSourceSetFor(JavaVersion javaVersion, Boolean compileOnly = false) { + def addSourceSetFor(JavaVersion javaVersion, Action sourceSetConfigurer = null) { + def sourceSetConfig = objects.newInstance(TracerSourceSetConfig) + if (sourceSetConfigurer != null) { + sourceSetConfigurer.execute(sourceSetConfig) + } project.extensions.getByType(TestJvmConstraintsExtension).minJavaVersionForTests.set(javaVersion) def version = javaVersion @@ -54,9 +90,19 @@ class TracerJavaExtension { cl.call(it, version.majorVersion.toInteger().intValue(), version) } + if (sourceSetConfig.applyForTestSources.orElse(true)) { + // configures all test tasks + project.tasks.withType(JavaCompile).configureEach { + if (it.name.toLowerCase().contains("test")) { + it.sourceCompatibility = version + it.targetCompatibility = version + } + } + } + // "socket-utils" is only set to compileOnly because the implementation dependency incorrectly adds Java17 classes to all jar prefixes. // This causes the AgentJarIndex to search for other non-Java17 classes in the wrong prefix location and fail to resolve class names. - if (compileOnly) { + if (sourceSetConfig.compileOnly.orElse(false).get()) { project.dependencies.add("compileOnly", mainForJavaVersionSourceSet.output) } else { project.dependencies.add("compileOnly", project.files(mainForJavaVersionSourceSet.compileClasspath)) @@ -113,21 +159,6 @@ java { if (project.hasProperty('minJavaVersionForTests') && project.findProperty('minJavaVersionForTests') != JavaVersion.VERSION_1_7) { tracerJavaExtension.addSourceSetFor(project.findProperty('minJavaVersionForTests')) - - // TODO configure this via extension - // If unset (hasProperty is false), or value is explicitly set to false (case not seen), then - // sets the compiler to `minJavaVersionForTests` version - // In some cases we would like to avoid setting java version to `minJavaVersionForTests`. - // For example we would like to be able to run profiling tests with ZULU8, but we cannot run it with other JDK8 implementations at the moment - def skipSettingTestJavaVersion = project.hasProperty('skipSettingTestJavaVersion') && project.findProperty('skipSettingTestJavaVersion') - if (!skipSettingTestJavaVersion) { - tasks.withType(JavaCompile).configureEach { - if (it.name.toLowerCase().contains("test")) { - sourceCompatibility = version - targetCompatibility = version - } - } - } } tasks.named("jar", Jar) { diff --git a/utils/socket-utils/build.gradle.kts b/utils/socket-utils/build.gradle.kts index 6ec943df382..58d865be284 100644 --- a/utils/socket-utils/build.gradle.kts +++ b/utils/socket-utils/build.gradle.kts @@ -10,7 +10,7 @@ plugins { apply(from = "$rootDir/gradle/java.gradle") extensions.getByName("tracerJava").withGroovyBuilder { - this.invokeMethod("addSourceSetFor", arrayOf(JavaVersion.VERSION_17, true)) + invokeMethod("addSourceSetFor", arrayOf(JavaVersion.VERSION_17, mapOf("compileOnly" to true))) } dependencies { From deaebf136579ce24ee5b63b16a795b4e5a01a495 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 16:06:53 -0400 Subject: [PATCH 11/18] chore: testJvm is optional --- .../main/kotlin/datadog.test-jvm-contraints.gradle.kts | 2 +- .../gradle/plugin/testJvmConstraints/TestJvmSpec.kt | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts index 43f2d2e3ac3..ae081a43c8d 100644 --- a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -17,7 +17,7 @@ tasks.withType().configureEach { return@configureEach } - inputs.property("testJvm", providers.gradleProperty("testJvm")) + inputs.property("testJvm", testJvmSpec.testJvmProperty).optional(true) val taskExtension = project.objects.newInstance().also { configureConventions(it, projectExtension) diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmSpec.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmSpec.kt index b848467f384..d78e96e68f0 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmSpec.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmSpec.kt @@ -9,9 +9,17 @@ import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths + class TestJvmSpec(val project: Project) { + companion object { + const val TEST_JVM = "testJvm" + } + private val currentJavaHomePath = project.providers.systemProperty("java.home").map { it.normalizeToJDKJavaHome() } - val normalizedTestJvm = project.providers.gradleProperty("testJvm").map { testJvm -> + + val testJvmProperty = project.providers.gradleProperty(TEST_JVM) + + val normalizedTestJvm = testJvmProperty.map { testJvm -> if (testJvm.isBlank()) { throw GradleException("testJvm property is blank") } From 4a2aa181a7c7f49115eba29bb20001008f4ac847 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 17:23:48 -0400 Subject: [PATCH 12/18] refactor: small rename job --- .../src/main/kotlin/datadog.test-jvm-contraints.gradle.kts | 7 +++---- dd-java-agent/agent-bootstrap/build.gradle | 2 +- .../profiling-controller-jfr/implementation/build.gradle | 2 +- .../instrumentation/redisson/redisson-2.3.0/build.gradle | 2 +- .../instrumentation/redisson/redisson-3.10.3/build.gradle | 2 +- .../instrumentation/tomcat/tomcat-5.5/build.gradle | 2 +- gradle/java_no_deps.gradle | 4 +--- 7 files changed, 9 insertions(+), 12 deletions(-) diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts index ae081a43c8d..2c6586b8634 100644 --- a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -35,11 +35,10 @@ tasks.withType().configureEach { configureTestJvm(taskExtension) } -// TODO make this part of the testJvm test task extension /** * Provide arguments if condition is met. */ -fun Test.configureJvmArgs( +fun Test.conditionalJvmArgs( applyFromVersion: JavaVersion, jvmArgsToApply: List, additionalCondition: Provider = project.providers.provider { true } @@ -58,7 +57,7 @@ fun Test.configureJvmArgs( * Configure the jvm launcher of the test task and ensure the test task * can be run with the test task launcher. */ -fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { +private fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { if (testJvmSpec.javaTestLauncher.isPresent) { javaLauncher = testJvmSpec.javaTestLauncher onlyIf("Allowed or forced JDK") { @@ -71,7 +70,7 @@ fun Test.configureTestJvm(extension: TestJvmConstraintsExtension) { } // temporary workaround when using Java16+: some tests require reflective access to java.lang/java.util - configureJvmArgs( + conditionalJvmArgs( JavaVersion.VERSION_16, listOf( "--add-opens=java.base/java.lang=ALL-UNNAMED", diff --git a/dd-java-agent/agent-bootstrap/build.gradle b/dd-java-agent/agent-bootstrap/build.gradle index 1ee2d9a6cde..f330a99f517 100644 --- a/dd-java-agent/agent-bootstrap/build.gradle +++ b/dd-java-agent/agent-bootstrap/build.gradle @@ -70,7 +70,7 @@ jmh { } tasks.withType(Test).configureEach { - configureJvmArgs( + conditionalJvmArgs( it, JavaVersion.VERSION_16, ['--add-opens', 'java.base/java.net=ALL-UNNAMED'] // for HostNameResolverForkedTest diff --git a/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle index d4714a298d7..f6bf98a9454 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle @@ -56,7 +56,7 @@ idea { } tasks.withType(Test).configureEach { - configureJvmArgs( + conditionalJvmArgs( it, JavaVersion.VERSION_1_9, [ 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 a331308b921..c6ffc4b3669 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 @@ -28,7 +28,7 @@ dependencies { project.afterEvaluate { tasks.withType(Test).configureEach { - configureJvmArgs( + conditionalJvmArgs( it, JavaVersion.VERSION_16, [ 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 897f759cfa7..426b68fb77e 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 @@ -32,7 +32,7 @@ dependencies { } tasks.withType(Test).configureEach { - configureJvmArgs( + conditionalJvmArgs( it, JavaVersion.VERSION_16, [ diff --git a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle index 09c1bb04642..880190c6571 100644 --- a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle +++ b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle @@ -140,7 +140,7 @@ dependencies { tasks.withType(Test).configureEach { // to avoid java.lang.IllegalAccessException: class org.apache.tomcat.util.compat.JreCompat cannot access a member of class java.io.FileSystem (in module java.base) with modifiers "static final" - configureJvmArgs( + conditionalJvmArgs( it, JavaVersion.VERSION_16, ['--add-opens', 'java.base/java.io=ALL-UNNAMED'] diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 4cd3ecb0e72..5592f067417 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -138,8 +138,6 @@ def applyCodeCoverage = !( project.path.startsWith(":dd-java-agent:instrumentation") || project.path.startsWith(":dd-java-agent:appsec:weblog:")) -ext.applyCodeCoverage = applyCodeCoverage - // https://stackoverflow.com/questions/42501869/gradle-skip-jacoco-during-test // https://poetengineer.postach.io/post/how-to-conditionally-enable-disable-jacoco-in-gradle-build if (applyCodeCoverage) { @@ -212,7 +210,7 @@ tasks.named("javadoc", Javadoc) { } } -ext.configureJvmArgs = (Test testTask, JavaVersion applyFromVersion, List jvmArgsToApply, Provider additionalCondition = null) -> { +ext.conditionalJvmArgs = (Test testTask, JavaVersion applyFromVersion, List jvmArgsToApply, Provider additionalCondition = null) -> { testTask.jvmArgumentProviders.add(new ProvideJvmArgsOnJvmLauncherVersion( testTask, applyFromVersion, From 1e2e37b43ace19a73b507774d1809dbc1dcd21e3 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 18:51:02 -0400 Subject: [PATCH 13/18] refactor: Convert remaining usage of min/max jdk properties to our extension --- .../implementation/build.gradle | 7 ++--- .../classloading/jboss-testing/build.gradle | 5 ++-- .../datastax-cassandra-3.0/build.gradle | 11 +++---- .../datastax-cassandra-3.8/build.gradle | 10 +++---- .../datastax-cassandra-4.0/build.gradle | 12 ++++---- .../elasticsearch/rest-5/build.gradle | 13 ++++----- .../elasticsearch/transport-2/build.gradle | 9 +++--- .../elasticsearch/transport-5/build.gradle | 13 ++++----- .../glassfish-3.0/build.gradle | 8 ++--- .../instrumentation/ignite-2.0/build.gradle | 29 +++++++++++-------- .../instrumentation/jakarta-jms/build.gradle | 9 +++--- .../java-lang/java-lang-11.0/build.gradle | 8 ++--- .../java-lang/java-lang-15.0/build.gradle | 8 ++--- .../java-lang/java-lang-17.0/build.gradle | 8 ++--- .../java/java-lang/java-lang-9.0/build.gradle | 8 ++--- .../instrumentation/jersey/build.gradle | 10 +++---- .../log4j/log4j-1.2.4/build.gradle | 9 +++--- .../netty/netty-3.8/build.gradle | 7 ++--- .../netty/netty-4.0/build.gradle | 9 +++--- .../play/play-2.3/build.gradle | 10 +++---- .../play/play-2.4/build.gradle | 10 +++---- .../play/play-2.6/build.gradle | 10 +++---- .../resilience4j-2.0/build.gradle | 8 ++--- .../resilience4j-reactor-2.0/build.gradle | 8 ++--- .../instrumentation/rmi/build.gradle | 10 +++---- .../servicetalk-0.42.56/build.gradle | 6 ++-- .../spring/spring-data-1.8/build.gradle | 10 +++---- .../spring/spring-messaging-4.0/build.gradle | 7 ++--- .../spring-security-6.0/build.gradle | 5 ++-- .../spring-webflux-6.0/build.gradle | 6 ++-- .../vertx-web/vertx-web-3.4/build.gradle | 7 ++--- .../vertx-web/vertx-web-3.5/build.gradle | 7 ++--- .../vertx-web/vertx-web-3.9/build.gradle | 7 ++--- .../vertx-web/vertx-web-4.0/build.gradle | 7 ++--- .../vertx-web/vertx-web-5.0/build.gradle | 7 ++--- .../jakarta-websocket-2.0/build.gradle | 15 +++++++--- .../jetty-websocket-11/build.gradle | 8 ++--- .../jetty-websocket-12/build.gradle | 8 ++--- .../instrumentation/wildfly-9.0/build.gradle | 8 ++--- .../appsec/springboot-grpc/build.gradle | 7 ++--- dd-smoke-tests/armeria-grpc/build.gradle | 6 ++-- .../concurrent/java-21/build.gradle | 6 ++-- dd-smoke-tests/kafka-3/build.gradle | 7 +++-- dd-smoke-tests/play-2.4/build.gradle | 5 ++-- dd-smoke-tests/play-2.5/build.gradle | 8 ++--- dd-smoke-tests/play-2.6/build.gradle | 8 ++--- dd-smoke-tests/play-2.7/build.gradle | 8 ++--- dd-smoke-tests/quarkus/build.gradle | 6 ++-- dd-smoke-tests/rum/tomcat-10/build.gradle | 5 ++-- dd-smoke-tests/rum/tomcat-11/build.gradle | 5 ++-- dd-smoke-tests/rum/wildfly-15/build.gradle | 5 +++- .../spring-boot-3.0-webflux/build.gradle | 6 ++-- .../spring-boot-3.0-webmvc/build.gradle | 6 ++-- .../spring-boot-3.3-webmvc/build.gradle | 6 ++-- dd-smoke-tests/spring-security/build.gradle | 5 ++-- dd-smoke-tests/springboot-grpc/build.gradle | 5 ++-- .../springboot-java-11/build.gradle | 5 ++-- .../springboot-java-17/build.gradle | 5 ++-- dd-smoke-tests/springboot/build.gradle | 5 ++-- dd-smoke-tests/wildfly/build.gradle | 5 +++- 60 files changed, 248 insertions(+), 233 deletions(-) diff --git a/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle index f6bf98a9454..eeb9f54b730 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle @@ -1,13 +1,12 @@ import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis // Set properties before any plugins get loaded -ext { - minJavaVersionForTests = JavaVersion.VERSION_1_8 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_1_8 +} sourceSets { "main_java11" { diff --git a/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle b/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle index dfc50f96c15..5d4f720708e 100644 --- a/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle +++ b/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle @@ -1,9 +1,10 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // TODO Java 17: This version of jboss-modules doesn't support Java 17 // __redirected.__SAXParserFactory can't access com.sun.org.apache.xerces.internal.jaxp maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" dependencies { testImplementation project(':dd-java-agent:instrumentation:classloading') 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 13d79d20ed8..1a7746d0a83 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,13 +1,8 @@ -// Set properties before any plugins get loaded ext { - // Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.) - maxJavaVersionForTests = JavaVersion.VERSION_1_8 cassandraDriverTestVersions = "[3.0,4.0)" } - muzzle { - pass { group = "com.datastax.cassandra" module = "cassandra-driver-core" @@ -43,6 +38,12 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { + // Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.) + maxJavaVersionForTests = JavaVersion.VERSION_1_8 +} + addTestSuiteForDir('latestDepTest', 'test') dependencies { 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 fbdabff507c..62604a57899 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,13 +1,8 @@ -// Set properties before any plugins get loaded ext { - // Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.) - maxJavaVersionForTests = JavaVersion.VERSION_1_8 cassandraDriverTestVersions = "[3.8,4.0)" } - muzzle { - pass { group = "com.datastax.cassandra" module = "cassandra-driver-core" @@ -19,6 +14,11 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.) + maxJavaVersionForTests = JavaVersion.VERSION_1_8 +} + addTestSuiteForDir('latestDepTest', 'test') dependencies { 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 d4a2d50f0ec..c4975fc7e44 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,9 +1,3 @@ -ext { - // TODO Java 17: The embedded cassandra deadlocks on start every time on Java 17 - // This can be changed to use test-containers - maxJavaVersionForTests = JavaVersion.VERSION_15 -} - muzzle { pass { group = "com.datastax.oss" @@ -15,6 +9,12 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // TODO Java 17: The embedded cassandra deadlocks on start every time on Java 17 + // This can be changed to use test-containers + maxJavaVersionForTests = JavaVersion.VERSION_15 +} + addTestSuiteForDir('latestDepTest', 'test') dependencies { diff --git a/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle b/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle index 3d9226f41f2..ee51706ac47 100644 --- a/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle @@ -1,10 +1,3 @@ -// Set properties before any plugins get loaded -ext { - // TODO Java 17: The embedded elastic search server doesn't work on Java 17 - // This can be changed to use test-containers - maxJavaVersionForTests = JavaVersion.VERSION_15 -} - muzzle { pass { group = "org.elasticsearch.client" @@ -24,6 +17,12 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // TODO Java 17: The embedded elastic search server doesn't work on Java 17 + // This can be changed to use test-containers + maxJavaVersionForTests = JavaVersion.VERSION_15 +} + addTestSuite('latestDepTest') dependencies { diff --git a/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle b/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle index 7d48361480d..01602149e25 100644 --- a/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle @@ -1,8 +1,3 @@ -// Set properties before any plugins get loaded -ext { - maxJavaVersionForTests = JavaVersion.VERSION_1_8 -} - muzzle { pass { group = "org.elasticsearch" @@ -15,6 +10,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + maxJavaVersionForTests = JavaVersion.VERSION_1_8 +} + addTestSuiteForDir('latestDepTest', 'latestDepTest') dependencies { diff --git a/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle b/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle index 46552c49777..810f2eee9ed 100644 --- a/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle @@ -1,10 +1,3 @@ -// Set properties before any plugins get loaded -ext { - // TODO Java 17: The embedded elastic search server doesn't work on Java 17 - // This can be changed to use test-containers - maxJavaVersionForTests = JavaVersion.VERSION_15 -} - muzzle { pass { group = "org.elasticsearch.client" @@ -24,6 +17,12 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // TODO Java 17: The embedded elastic search server doesn't work on Java 17 + // This can be changed to use test-containers + maxJavaVersionForTests = JavaVersion.VERSION_15 +} + dependencies { compileOnly group: 'org.elasticsearch.client', name: 'transport', version: '5.0.0' diff --git a/dd-java-agent/instrumentation/glassfish-3.0/build.gradle b/dd-java-agent/instrumentation/glassfish-3.0/build.gradle index 59bb2785a5d..d3a1ee122f0 100644 --- a/dd-java-agent/instrumentation/glassfish-3.0/build.gradle +++ b/dd-java-agent/instrumentation/glassfish-3.0/build.gradle @@ -1,7 +1,3 @@ -ext { - maxJavaVersionForTests = JavaVersion.VERSION_1_8 -} - muzzle { pass { group = 'org.glassfish.main.extras' @@ -14,6 +10,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + maxJavaVersionForTests = JavaVersion.VERSION_1_8 +} + addTestSuiteForDir('latestDepTest', 'test') dependencies { diff --git a/dd-java-agent/instrumentation/ignite-2.0/build.gradle b/dd-java-agent/instrumentation/ignite-2.0/build.gradle index 48672e28b35..bbf43dbc685 100644 --- a/dd-java-agent/instrumentation/ignite-2.0/build.gradle +++ b/dd-java-agent/instrumentation/ignite-2.0/build.gradle @@ -1,9 +1,3 @@ -ext { - // See https://ignite.apache.org/docs/latest/quick-start/java#running-ignite-with-java-11-or-later - // FIXME: Because of this condition, tests only run in Java 8, and latestDepTest never run, as they require Java 11+. - maxJavaVersionForTests = JavaVersion.VERSION_1_8 -} - muzzle { pass { group = 'org.apache.ignite' @@ -21,16 +15,18 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // See https://ignite.apache.org/docs/latest/quick-start/java#running-ignite-with-java-11-or-later + // FIXME: Because of this condition, tests only run in Java 8, and latestDepTest never run, as they require Java 11+. + maxJavaVersionForTests = JavaVersion.VERSION_1_8 +} + addTestSuiteForDir('latestDepTest', 'test') addTestSuiteExtendingForDir('latestDepForkedTest', 'latestDepTest', 'test') // ignite 2.16.0 latest version compatible with Java 8 addTestSuiteForDir('ignite216Test', 'test') addTestSuiteExtendingForDir('ignite216ForkedTest', 'ignite216Test', 'test') -testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - dependencies { compileOnly group: 'org.apache.ignite', name: 'ignite-core', version: '2.0.0' @@ -44,8 +40,17 @@ dependencies { latestDepTestImplementation group: 'org.apache.ignite', name: 'ignite-indexing', version: '2.+' } -for (task in ['compileLatestDepTestGroovy', 'compileLatestDepForkedTestGroovy']) { - tasks.named(task, GroovyCompile) { +for (taskName in ['compileLatestDepTestGroovy', 'compileLatestDepForkedTestGroovy']) { + tasks.named(taskName, GroovyCompile) { configureCompiler(it, 11) } } + +for (taskName in ['latestDepTest', 'latestDepForkedTest']) { + tasks.named(taskName, Test) { + testJvmConstraint { + // ignite 2.17.0+ requires Java 11+ + minJavaVersionForTests = JavaVersion.VERSION_11 + } + } +} diff --git a/dd-java-agent/instrumentation/jakarta-jms/build.gradle b/dd-java-agent/instrumentation/jakarta-jms/build.gradle index a86e2f3750c..c1da365f6b4 100644 --- a/dd-java-agent/instrumentation/jakarta-jms/build.gradle +++ b/dd-java-agent/instrumentation/jakarta-jms/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} - muzzle { pass { name = "jakarta.jms" @@ -14,6 +10,11 @@ muzzle { } apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 +} + apply from: "$rootDir/gradle/configure_tests.gradle" repositories { diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle index d36b8c37d13..4a991a4b09f 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle @@ -2,13 +2,13 @@ plugins { id 'idea' } -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 +} + muzzle { pass { coreJdk() diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle index 6324aa162dd..1ffcb2a6814 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle @@ -2,13 +2,13 @@ plugins { id 'idea' } -ext { - minJavaVersionForTests = JavaVersion.VERSION_15 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_15 +} + muzzle { pass { coreJdk() diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle index 26a333ab320..ae5be8ef06a 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle @@ -2,13 +2,13 @@ plugins { id 'idea' } -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 +} + muzzle { pass { coreJdk() diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle index 697ae94d56f..bfce0716620 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle @@ -2,13 +2,13 @@ plugins { id 'idea' } -ext { - minJavaVersionForTests = JavaVersion.VERSION_1_9 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_1_9 +} + muzzle { pass { coreJdk() diff --git a/dd-java-agent/instrumentation/jersey/build.gradle b/dd-java-agent/instrumentation/jersey/build.gradle index 94ff20d1153..5e6e53076a9 100644 --- a/dd-java-agent/instrumentation/jersey/build.gradle +++ b/dd-java-agent/instrumentation/jersey/build.gradle @@ -1,9 +1,3 @@ -if (project.hasProperty('testJvm')) { - ext { - minJavaVersionForTests = JavaVersion.VERSION_11 - } -} - muzzle { pass { group = 'org.glassfish.jersey.core' @@ -15,6 +9,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 +} + // there are tests with jersey2 and grizzly on the grizzly-http-2.3.20 module addTestSuiteForDir('jersey2JettyTest', 'jersey2JettyTest') addTestSuiteForDir('jersey3JettyTest', 'jersey3JettyTest') diff --git a/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle b/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle index 826bb62b750..072da2604c7 100644 --- a/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle +++ b/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle @@ -1,8 +1,3 @@ -ext { - // Log4j 1.x reached EOL in 2015 and is not compatible with Java 25+: https://endoflife.date/log4j - maxJavaVersionForTests = JavaVersion.VERSION_24 -} - muzzle { pass { group = 'log4j' @@ -18,6 +13,10 @@ configurations { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // Log4j 1.x reached EOL in 2015 and is not compatible with Java 25+: https://endoflife.date/log4j + maxJavaVersionForTests = JavaVersion.VERSION_24 +} addTestSuiteForDir('latestDepTest', 'test') dependencies { diff --git a/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle b/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle index 1f836c71824..e996c02805c 100644 --- a/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle @@ -1,10 +1,9 @@ -// Set properties before any plugins get loaded -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { maxJavaVersionForTests = JavaVersion.VERSION_1_8 } -apply from: "$rootDir/gradle/java.gradle" - muzzle { pass { group = "io.netty" 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 5b27543a6d5..cf2ecfc4e5e 100644 --- a/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle @@ -1,11 +1,10 @@ -// Set properties before any plugins get loaded -// asynchttpclient is not compatible with Java 11 -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { + // asynchttpclient is not compatible with Java 11 maxJavaVersionForTests = JavaVersion.VERSION_1_8 } -apply from: "$rootDir/gradle/java.gradle" - muzzle { pass { group = "io.netty" diff --git a/dd-java-agent/instrumentation/play/play-2.3/build.gradle b/dd-java-agent/instrumentation/play/play-2.3/build.gradle index 82ef4802e68..51098e4e9ca 100644 --- a/dd-java-agent/instrumentation/play/play-2.3/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.3/build.gradle @@ -1,8 +1,3 @@ -ext { - // Play doesn't work with Java 9+ until 2.6.12 - maxJavaVersionForTests = JavaVersion.VERSION_1_8 -} - muzzle { extraRepository("typesafe", "https://repo.typesafe.com/typesafe/maven-releases/") @@ -26,6 +21,11 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // Play doesn't work with Java 9+ until 2.6.12 + maxJavaVersionForTests = JavaVersion.VERSION_1_8 +} + repositories { maven { // only place that has 'com.typesafe.netty:netty-http-pipelining:1.1.2' publicly accessible diff --git a/dd-java-agent/instrumentation/play/play-2.4/build.gradle b/dd-java-agent/instrumentation/play/play-2.4/build.gradle index dcda9f6ce8e..2f51837a8cc 100644 --- a/dd-java-agent/instrumentation/play/play-2.4/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.4/build.gradle @@ -1,8 +1,3 @@ -ext { - // Play doesn't work with Java 9+ until 2.6.12 - maxJavaVersionForTests = JavaVersion.VERSION_1_8 -} - muzzle { extraRepository("typesafe", "https://repo.typesafe.com/typesafe/maven-releases/") @@ -37,6 +32,11 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' +testJvmConstraint { + // Play doesn't work with Java 9+ until 2.6.12 + maxJavaVersionForTests = JavaVersion.VERSION_1_8 +} + repositories { maven { // for muzzle because of play-2.3 diff --git a/dd-java-agent/instrumentation/play/play-2.6/build.gradle b/dd-java-agent/instrumentation/play/play-2.6/build.gradle index 4554bec2259..f0bf43966ac 100644 --- a/dd-java-agent/instrumentation/play/play-2.6/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.6/build.gradle @@ -1,8 +1,3 @@ -ext { - // Play doesn't work with Java 9+ until 2.6.12 - maxJavaVersionForTests = JavaVersion.VERSION_1_8 -} - def scalaVersion = '2.11' def playVersion = '2.6.0' @@ -55,6 +50,11 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' +testJvmConstraint { + // Play doesn't work with Java 9+ until 2.6.12 + maxJavaVersionForTests = JavaVersion.VERSION_1_8 +} + repositories { maven { // for muzzle because of play-2.3 diff --git a/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle b/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle index 751a4680ec6..e25c4ac6669 100644 --- a/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle +++ b/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle @@ -1,10 +1,10 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 +} + muzzle { pass { group = 'io.github.resilience4j' diff --git a/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle b/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle index 674c92af3d5..5653c73b3ef 100644 --- a/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle +++ b/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle @@ -1,10 +1,10 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 +} + muzzle { pass { group = 'io.github.resilience4j' diff --git a/dd-java-agent/instrumentation/rmi/build.gradle b/dd-java-agent/instrumentation/rmi/build.gradle index 9cc099d2aa8..e8caea0fe81 100644 --- a/dd-java-agent/instrumentation/rmi/build.gradle +++ b/dd-java-agent/instrumentation/rmi/build.gradle @@ -1,8 +1,3 @@ -ext { - // TODO Java 17: The necessary packages are not opened on Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 -} - muzzle { pass { coreJdk() @@ -11,6 +6,11 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // TODO Java 17: The necessary packages are not opened on Java 17 + maxJavaVersionForTests = JavaVersion.VERSION_15 +} + tasks.withType(JavaCompile).configureEach { configureCompiler(it, 8, JavaVersion.VERSION_1_8, "Need access to sun.rmi package") } diff --git a/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle b/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle index b7b27117ae8..1a86b193bcc 100644 --- a/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle +++ b/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle @@ -16,12 +16,12 @@ muzzle { } } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } -apply from: "$rootDir/gradle/java.gradle" - //addTestSuiteForDir('latestDepTest', 'test') // TODO currently 0.42.56 is the latest version. Enable this once the next (0.42.57) is out, add 'latestDepTest' diff --git a/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle b/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle index 16299481183..1d36b914873 100644 --- a/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle @@ -1,8 +1,3 @@ -ext { - // TODO Java 17: This version of spring-data doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 -} - // This file includes software developed at SignalFx muzzle { @@ -27,6 +22,11 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + // TODO Java 17: This version of spring-data doesn't support Java 17 + maxJavaVersionForTests = JavaVersion.VERSION_15 +} + addTestSuiteForDir('latestDepTest', 'test') // DQH - API changes that impact instrumentation occurred in spring-data-commons in March 2014. diff --git a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle index aaee162df55..790c5e397ff 100644 --- a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle @@ -1,4 +1,3 @@ - muzzle { pass { group = 'org.springframework' @@ -8,12 +7,12 @@ muzzle { } } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" - addTestSuiteForDir('latestDepTest', 'test') ["compileTestGroovy", "compileLatestDepTestGroovy"].each { name -> diff --git a/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle index 67d0c8ae4f2..03e8bf3d722 100644 --- a/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle @@ -1,8 +1,9 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest', 'test') final springBootVersion = '3.0.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 c3ca09f8caf..b40b8e80103 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,9 +1,9 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" - // test that webflux5 instrumentation works for webflux6 too addTestSuite('iastTest') addTestSuite('bootTest') 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 56f1bf53c32..c8f7e12bdad 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,11 +1,10 @@ -// Set properties before any plugins get loaded -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // TODO Java 17: This version of vertx-web doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" - muzzle { pass { group = 'io.vertx' 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 e2fe7548b0d..34080c7def7 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,11 +1,10 @@ -// Set properties before any plugins get loaded -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // TODO Java 17: This version of vertx-web doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" - muzzle { pass { group = 'io.vertx' 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 106cc9860ef..20fc5c180c6 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,11 +1,10 @@ -// Set properties before any plugins get loaded -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // TODO Java 17: This version of vertx-web doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" - muzzle { pass { group = 'io.vertx' 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 3ca81ab83c3..d7f43be32ec 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,11 +1,10 @@ -// Set properties before any plugins get loaded -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // vertx-web doesn't support Java 17 until v4.2 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" - muzzle { pass { group = 'io.vertx' 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 aa38065c277..4777f359ac8 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,10 +1,9 @@ -// Set properties before any plugins get loaded -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } -apply from: "$rootDir/gradle/java.gradle" - muzzle { pass { group = 'io.vertx' diff --git a/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle b/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle index 5bc84784fb8..22f7ddbe073 100644 --- a/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 - minJavaVersionForLatestDepTests = JavaVersion.VERSION_17 -} muzzle { pass { name = "jakarta-websocket" @@ -13,6 +9,11 @@ muzzle { } apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 +} + addTestSuiteForDir("latestDepTest", "test") dependencies { @@ -23,3 +24,9 @@ dependencies { testImplementation group: 'org.glassfish.tyrus', name: 'tyrus-container-inmemory', version: '2.0.0' latestDepTestImplementation group: 'org.glassfish.tyrus', name: 'tyrus-container-inmemory', version: '+' } + +tasks.named('latestDepTest', Test) { + testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 + } +} diff --git a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle index 8bffea9cfe4..86ffadb634c 100644 --- a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - muzzle { pass { name = 'jetty-websocket-11' @@ -15,6 +11,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 +} + addTestSuite("latestDepTest") ["compileTestGroovy", "compileLatestDepTestGroovy"].each { name -> diff --git a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle index ca29fca2746..dd324e54466 100644 --- a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_17 -} - muzzle { pass { name = 'jetty-websocket-12ee8' @@ -28,6 +24,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_17 +} + addTestSuiteForDir("latestDepTest", "test") ["compileTestGroovy", "compileLatestDepTestGroovy"].each { name -> diff --git a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle index b304d58970b..e9bab4c3ccb 100644 --- a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle +++ b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle @@ -1,7 +1,3 @@ -ext { - minJavaVersionForTests = JavaVersion.VERSION_11 -} - repositories { maven { url = 'https://maven.repository.redhat.com/ga/' @@ -20,6 +16,10 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + minJavaVersionForTests = JavaVersion.VERSION_11 +} + addTestSuiteForDir("latestDepTest", "test") addTestSuiteExtendingForDir("latestDepForkedTest", "latestDepTest", "test") diff --git a/dd-smoke-tests/appsec/springboot-grpc/build.gradle b/dd-smoke-tests/appsec/springboot-grpc/build.gradle index 30c12e961de..96b7c085b5f 100644 --- a/dd-smoke-tests/appsec/springboot-grpc/build.gradle +++ b/dd-smoke-tests/appsec/springboot-grpc/build.gradle @@ -4,13 +4,12 @@ plugins { id 'com.gradleup.shadow' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // TODO Java 17: This version of spring-boot doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } - -apply from: "$rootDir/gradle/java.gradle" - // The standard spring-boot plugin doesn't play nice with our project // so we'll build a fat jar instead tasks.named("jar", Jar) { diff --git a/dd-smoke-tests/armeria-grpc/build.gradle b/dd-smoke-tests/armeria-grpc/build.gradle index fc5977dedcf..7322fe4d114 100644 --- a/dd-smoke-tests/armeria-grpc/build.gradle +++ b/dd-smoke-tests/armeria-grpc/build.gradle @@ -2,12 +2,12 @@ plugins { id 'com.google.protobuf' version '0.9.3' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" - sourceSets { main { proto { diff --git a/dd-smoke-tests/concurrent/java-21/build.gradle b/dd-smoke-tests/concurrent/java-21/build.gradle index 86d1d025105..1794e348a52 100644 --- a/dd-smoke-tests/concurrent/java-21/build.gradle +++ b/dd-smoke-tests/concurrent/java-21/build.gradle @@ -5,13 +5,13 @@ plugins { id 'com.gradleup.shadow' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_21 maxJavaVersionForTests = JavaVersion.VERSION_25 } -apply from: "$rootDir/gradle/java.gradle" - description = 'JDK 21 Concurrent Integration Tests' java { diff --git a/dd-smoke-tests/kafka-3/build.gradle b/dd-smoke-tests/kafka-3/build.gradle index 0d593aa2006..175ad2cae50 100644 --- a/dd-smoke-tests/kafka-3/build.gradle +++ b/dd-smoke-tests/kafka-3/build.gradle @@ -1,9 +1,10 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" +apply plugin: 'java-test-fixtures' + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" -apply plugin: 'java-test-fixtures' description = 'Kafka 3.x Smoke Tests.' dependencies { diff --git a/dd-smoke-tests/play-2.4/build.gradle b/dd-smoke-tests/play-2.4/build.gradle index a20064aee21..c99bda8b5df 100644 --- a/dd-smoke-tests/play-2.4/build.gradle +++ b/dd-smoke-tests/play-2.4/build.gradle @@ -2,12 +2,13 @@ plugins { id 'org.gradle.playframework' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // TODO Java 17: This version of play doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" def playVer = "2.4.11" diff --git a/dd-smoke-tests/play-2.5/build.gradle b/dd-smoke-tests/play-2.5/build.gradle index d4c8b14cee1..a9704db5ee4 100644 --- a/dd-smoke-tests/play-2.5/build.gradle +++ b/dd-smoke-tests/play-2.5/build.gradle @@ -2,14 +2,14 @@ plugins { id 'org.gradle.playframework' } -ext { +apply from: "$rootDir/gradle/java.gradle" +apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" + +testJvmConstraint { // TODO Java 17: This version of play doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" -apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" - def playVer = "2.5.19" def scalaVer = System.getProperty("scala.binary.version", /* default = */ "2.11") diff --git a/dd-smoke-tests/play-2.6/build.gradle b/dd-smoke-tests/play-2.6/build.gradle index f2454a82f89..36be8778a5d 100644 --- a/dd-smoke-tests/play-2.6/build.gradle +++ b/dd-smoke-tests/play-2.6/build.gradle @@ -2,14 +2,14 @@ plugins { id 'org.gradle.playframework' } -ext { +apply from: "$rootDir/gradle/java.gradle" +apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" + +testJvmConstraint { // TODO Java 17: This version of play doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" -apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" - def playVer = "2.6.25" def scalaVer = System.getProperty("scala.binary.version", /* default = */ "2.12") diff --git a/dd-smoke-tests/play-2.7/build.gradle b/dd-smoke-tests/play-2.7/build.gradle index 543e37bad7b..0efa0febe30 100644 --- a/dd-smoke-tests/play-2.7/build.gradle +++ b/dd-smoke-tests/play-2.7/build.gradle @@ -2,14 +2,14 @@ plugins { id 'org.gradle.playframework' } -ext { +apply from: "$rootDir/gradle/java.gradle" +apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" + +testJvmConstraint { // TODO Java 17: This version of play doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" -apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" - def playVer = "2.7.9" def scalaVer = System.getProperty("scala.version", /* default = */ "2.13") diff --git a/dd-smoke-tests/quarkus/build.gradle b/dd-smoke-tests/quarkus/build.gradle index e85c9653377..5ef753a945f 100644 --- a/dd-smoke-tests/quarkus/build.gradle +++ b/dd-smoke-tests/quarkus/build.gradle @@ -1,10 +1,10 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // Quarkus is only supported up to Java 21: https://github.com/quarkusio/quarkus maxJavaVersionForTests = JavaVersion.VERSION_21 } -apply from: "$rootDir/gradle/java.gradle" - dependencies { testImplementation project(':dd-smoke-tests') } diff --git a/dd-smoke-tests/rum/tomcat-10/build.gradle b/dd-smoke-tests/rum/tomcat-10/build.gradle index 20954f3c2c4..05cf024ddc1 100644 --- a/dd-smoke-tests/rum/tomcat-10/build.gradle +++ b/dd-smoke-tests/rum/tomcat-10/build.gradle @@ -4,11 +4,12 @@ plugins { id 'com.gradleup.shadow' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } -apply from: "$rootDir/gradle/java.gradle" description = 'RUM Tomcat 10 Smoke Tests' dependencies { diff --git a/dd-smoke-tests/rum/tomcat-11/build.gradle b/dd-smoke-tests/rum/tomcat-11/build.gradle index b1f100486bf..4de1c742c61 100644 --- a/dd-smoke-tests/rum/tomcat-11/build.gradle +++ b/dd-smoke-tests/rum/tomcat-11/build.gradle @@ -4,11 +4,12 @@ plugins { id 'com.gradleup.shadow' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" description = 'RUM Tomcat 11 Smoke Tests' dependencies { diff --git a/dd-smoke-tests/rum/wildfly-15/build.gradle b/dd-smoke-tests/rum/wildfly-15/build.gradle index e5e033007d8..df3a2a05872 100644 --- a/dd-smoke-tests/rum/wildfly-15/build.gradle +++ b/dd-smoke-tests/rum/wildfly-15/build.gradle @@ -4,7 +4,6 @@ ext { serverModule = 'wildfly' serverVersion = '15.0.0.Final' serverExtension = 'zip' - maxJavaVersionForTests = JavaVersion.VERSION_11 } repositories { @@ -23,6 +22,10 @@ repositories { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + maxJavaVersionForTests = JavaVersion.VERSION_11 +} + description = 'Wildfly Smoke Tests.' configurations { diff --git a/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle b/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle index 47ea9095ff9..1c07a4d404a 100644 --- a/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle +++ b/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle @@ -1,9 +1,9 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" - description = 'Spring Boot 3.0 Webflux Smoke Tests.' dependencies { diff --git a/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle b/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle index 7ecbb274737..b12dc23c838 100644 --- a/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle +++ b/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle @@ -1,9 +1,9 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" - description = 'Spring Boot 3.0 WebMvc Smoke Tests.' dependencies { diff --git a/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle b/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle index 1c027cc7aca..5f0cd738686 100644 --- a/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle +++ b/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle @@ -1,9 +1,9 @@ -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" - description = 'Spring Boot 3.3 WebMvc Smoke Tests.' dependencies { diff --git a/dd-smoke-tests/spring-security/build.gradle b/dd-smoke-tests/spring-security/build.gradle index 0193dd0603d..921f0b136ef 100644 --- a/dd-smoke-tests/spring-security/build.gradle +++ b/dd-smoke-tests/spring-security/build.gradle @@ -2,11 +2,12 @@ plugins { id 'java-test-fixtures' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" description = 'Spring Security Smoke Tests.' // The standard spring-boot plugin doesn't play nice with our project diff --git a/dd-smoke-tests/springboot-grpc/build.gradle b/dd-smoke-tests/springboot-grpc/build.gradle index 072bf5b65f5..2956f49c985 100644 --- a/dd-smoke-tests/springboot-grpc/build.gradle +++ b/dd-smoke-tests/springboot-grpc/build.gradle @@ -5,12 +5,13 @@ plugins { id 'com.google.protobuf' version '0.8.18' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { // TODO Java 17: This version of spring-boot doesn't support Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" description = 'SpringBoot/gRPC combined Smoke Tests.' protobuf { diff --git a/dd-smoke-tests/springboot-java-11/build.gradle b/dd-smoke-tests/springboot-java-11/build.gradle index 17d299c8984..9502f3653de 100644 --- a/dd-smoke-tests/springboot-java-11/build.gradle +++ b/dd-smoke-tests/springboot-java-11/build.gradle @@ -7,11 +7,12 @@ plugins { id 'java-test-fixtures' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_11 } -apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/spring-boot-plugin.gradle" description = 'SpringBoot Java 11 Smoke Tests.' diff --git a/dd-smoke-tests/springboot-java-17/build.gradle b/dd-smoke-tests/springboot-java-17/build.gradle index 6dc9908b0c9..357f570a483 100644 --- a/dd-smoke-tests/springboot-java-17/build.gradle +++ b/dd-smoke-tests/springboot-java-17/build.gradle @@ -7,11 +7,12 @@ plugins { id 'java-test-fixtures' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { minJavaVersionForTests = JavaVersion.VERSION_17 } -apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/spring-boot-plugin.gradle" description = 'SpringBoot Java 17 Smoke Tests.' diff --git a/dd-smoke-tests/springboot/build.gradle b/dd-smoke-tests/springboot/build.gradle index 9b825da8375..5797448668b 100644 --- a/dd-smoke-tests/springboot/build.gradle +++ b/dd-smoke-tests/springboot/build.gradle @@ -5,11 +5,12 @@ plugins { id 'java-test-fixtures' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +testJvmConstraint { maxJavaVersionForTests = JavaVersion.VERSION_15 } -apply from: "$rootDir/gradle/java.gradle" description = 'SpringBoot Smoke Tests.' // The standard spring-boot plugin doesn't play nice with our project diff --git a/dd-smoke-tests/wildfly/build.gradle b/dd-smoke-tests/wildfly/build.gradle index b35ea823fd3..2ed0cd917ef 100644 --- a/dd-smoke-tests/wildfly/build.gradle +++ b/dd-smoke-tests/wildfly/build.gradle @@ -4,7 +4,6 @@ ext { serverModule = 'wildfly' serverVersion = '15.0.0.Final' serverExtension = 'zip' - maxJavaVersionForTests = JavaVersion.VERSION_11 } repositories { @@ -23,6 +22,10 @@ repositories { apply from: "$rootDir/gradle/java.gradle" +testJvmConstraint { + maxJavaVersionForTests = JavaVersion.VERSION_11 +} + description = 'Wildfly Smoke Tests.' configurations { From f5a892ae912c19aa144e5a171a4b5a4de14709bf Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 23:03:56 -0400 Subject: [PATCH 14/18] refactor: Renames min|maxJavaVersionForTests to min|maxJavaVersion --- .../kotlin/datadog.test-jvm-contraints.gradle.kts | 12 ++++++------ .../TestJvmConstraintsExtension.kt | 11 ++--------- .../testJvmConstraints/TestJvmConstraintsUtils.kt | 13 ++++++------- .../profiling-controller-ddprof/build.gradle | 4 ++-- .../profiling-controller-jfr/build.gradle | 2 +- .../implementation/build.gradle | 2 +- .../profiling-controller-openjdk/build.gradle | 4 ++-- .../profiling-controller-oracle/build.gradle | 2 +- .../instrumentation/aerospike-4.0/build.gradle | 4 ++-- .../akka/akka-http/akka-http-10.0/build.gradle | 2 +- .../armeria/armeria-jetty-1.24/build.gradle | 2 +- dd-java-agent/instrumentation/avro/build.gradle | 2 +- .../instrumentation/axis2-1.3/build.gradle | 4 ++-- .../classloading/jboss-testing/build.gradle | 2 +- dd-java-agent/instrumentation/cxf-2.1/build.gradle | 4 ++-- .../datastax-cassandra-3.0/build.gradle | 2 +- .../datastax-cassandra-3.8/build.gradle | 2 +- .../datastax-cassandra-4.0/build.gradle | 2 +- .../elasticsearch/rest-5/build.gradle | 2 +- .../elasticsearch/transport-2/build.gradle | 2 +- .../elasticsearch/transport-5/build.gradle | 2 +- .../exception-profiling/build.gradle | 4 ++-- .../instrumentation/glassfish-3.0/build.gradle | 2 +- .../graphql-java/graphql-java-20.0/build.gradle | 2 +- .../instrumentation/ignite-2.0/build.gradle | 4 ++-- .../instrumentation/jakarta-jms/build.gradle | 2 +- .../java-concurrent-21.0/build.gradle | 4 ++-- .../java/java-lang/java-lang-11.0/build.gradle | 2 +- .../java/java-lang/java-lang-15.0/build.gradle | 2 +- .../java/java-lang/java-lang-17.0/build.gradle | 2 +- .../java/java-lang/java-lang-9.0/build.gradle | 2 +- .../instrumentation/java/java-nio-1.8/build.gradle | 2 +- dd-java-agent/instrumentation/jdbc/build.gradle | 2 +- dd-java-agent/instrumentation/jersey/build.gradle | 2 +- .../instrumentation/junit/junit-5.3/build.gradle | 2 +- .../junit/junit-5.3/junit-5.8/build.gradle | 2 +- dd-java-agent/instrumentation/karate/build.gradle | 2 +- .../instrumentation/log4j/log4j-1.2.4/build.gradle | 2 +- dd-java-agent/instrumentation/mule-4.5/build.gradle | 8 ++++---- .../instrumentation/netty/netty-3.8/build.gradle | 2 +- .../instrumentation/netty/netty-4.0/build.gradle | 2 +- .../instrumentation/play/play-2.3/build.gradle | 2 +- .../instrumentation/play/play-2.4/build.gradle | 2 +- .../instrumentation/play/play-2.6/build.gradle | 2 +- .../instrumentation/quartz-2.0/build.gradle | 4 ++-- .../resilience4j/resilience4j-2.0/build.gradle | 2 +- .../resilience4j-reactor-2.0/build.gradle | 2 +- dd-java-agent/instrumentation/rmi/build.gradle | 2 +- dd-java-agent/instrumentation/selenium/build.gradle | 2 +- .../servicetalk/servicetalk-0.42.56/build.gradle | 2 +- .../instrumentation/spark-executor/build.gradle | 2 +- .../instrumentation/spark/spark_2.12/build.gradle | 2 +- .../instrumentation/spark/spark_2.13/build.gradle | 2 +- .../spring/spring-boot-1.3/build.gradle | 8 ++++---- .../spring/spring-data-1.8/build.gradle | 2 +- .../spring/spring-messaging-4.0/build.gradle | 2 +- .../spring/spring-scheduling-3.1/build.gradle | 6 +++--- .../spring-security-6.0/build.gradle | 2 +- .../spring-webflux/spring-webflux-6.0/build.gradle | 2 +- .../instrumentation/testng/testng-7/build.gradle | 2 +- .../instrumentation/tomcat/tomcat-5.5/build.gradle | 8 ++++---- .../undertow/undertow-2.2/build.gradle | 4 ++-- .../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 | 10 +++++----- .../vertx/vertx-web/vertx-web-5.0/build.gradle | 2 +- .../websocket/jakarta-websocket-2.0/build.gradle | 4 ++-- .../jetty-websocket/jetty-websocket-11/build.gradle | 2 +- .../jetty-websocket/jetty-websocket-12/build.gradle | 2 +- .../instrumentation/wildfly-9.0/build.gradle | 6 +++--- dd-smoke-tests/appsec/springboot-grpc/build.gradle | 2 +- dd-smoke-tests/armeria-grpc/build.gradle | 2 +- dd-smoke-tests/concurrent/java-21/build.gradle | 4 ++-- dd-smoke-tests/concurrent/java-25/build.gradle | 4 ++-- dd-smoke-tests/kafka-3/build.gradle | 2 +- dd-smoke-tests/play-2.4/build.gradle | 2 +- dd-smoke-tests/play-2.5/build.gradle | 2 +- dd-smoke-tests/play-2.6/build.gradle | 2 +- dd-smoke-tests/play-2.7/build.gradle | 2 +- dd-smoke-tests/quarkus/build.gradle | 2 +- dd-smoke-tests/rum/tomcat-10/build.gradle | 2 +- dd-smoke-tests/rum/tomcat-11/build.gradle | 2 +- dd-smoke-tests/rum/wildfly-15/build.gradle | 2 +- dd-smoke-tests/spring-boot-3.0-webflux/build.gradle | 2 +- dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle | 2 +- dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle | 2 +- dd-smoke-tests/spring-security/build.gradle | 2 +- dd-smoke-tests/springboot-grpc/build.gradle | 2 +- dd-smoke-tests/springboot-java-11/build.gradle | 2 +- dd-smoke-tests/springboot-java-17/build.gradle | 2 +- dd-smoke-tests/springboot/build.gradle | 2 +- dd-smoke-tests/wildfly/build.gradle | 2 +- gradle/java_no_deps.gradle | 6 +----- 94 files changed, 135 insertions(+), 147 deletions(-) diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts index 2c6586b8634..18a5ecfee60 100644 --- a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -27,8 +27,8 @@ tasks.withType().configureEach { inputs.property("${TestJvmConstraintsExtension.NAME}.excludeJdk", taskExtension.excludeJdk) inputs.property("${TestJvmConstraintsExtension.NAME}.includeJdk", taskExtension.includeJdk) inputs.property("${TestJvmConstraintsExtension.NAME}.forceJdk", taskExtension.forceJdk) - inputs.property("${TestJvmConstraintsExtension.NAME}.minJavaVersionForTests", taskExtension.minJavaVersionForTests).optional(true) - inputs.property("${TestJvmConstraintsExtension.NAME}.maxJavaVersionForTests", taskExtension.maxJavaVersionForTests).optional(true) + inputs.property("${TestJvmConstraintsExtension.NAME}.minJavaVersion", taskExtension.minJavaVersion).optional(true) + inputs.property("${TestJvmConstraintsExtension.NAME}.maxJavaVersion", taskExtension.maxJavaVersion).optional(true) extensions.add(TestJvmConstraintsExtension.NAME, taskExtension) @@ -101,13 +101,13 @@ private fun Test.configureConventions( taskExtension: TestJvmConstraintsExtension, projectExtension: TestJvmConstraintsExtension ) { - taskExtension.minJavaVersionForTests.convention(projectExtension.minJavaVersionForTests + taskExtension.minJavaVersion.convention(projectExtension.minJavaVersion .orElse(providers.provider { project.findProperty("${name}MinJavaVersionForTests") as? JavaVersion }) - .orElse(providers.provider { project.findProperty("minJavaVersionForTests") as? JavaVersion }) + .orElse(providers.provider { project.findProperty("minJavaVersion") as? JavaVersion }) ) - taskExtension.maxJavaVersionForTests.convention(projectExtension.maxJavaVersionForTests + taskExtension.maxJavaVersion.convention(projectExtension.maxJavaVersion .orElse(providers.provider { project.findProperty("${name}MaxJavaVersionForTests") as? JavaVersion }) - .orElse(providers.provider { project.findProperty("maxJavaVersionForTests") as? JavaVersion }) + .orElse(providers.provider { project.findProperty("maxJavaVersion") as? JavaVersion }) ) taskExtension.forceJdk.convention(projectExtension.forceJdk .orElse(providers.provider { diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt index 1fa79c7b9c5..9631822c623 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt @@ -1,26 +1,19 @@ package datadog.gradle.plugin.testJvmConstraints import org.gradle.api.JavaVersion -import org.gradle.api.Project -import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.ListProperty import org.gradle.api.provider.Property -import org.gradle.api.provider.ProviderFactory -import org.gradle.kotlin.dsl.extra -import org.gradle.kotlin.dsl.listProperty -import org.gradle.kotlin.dsl.property -import javax.inject.Inject interface TestJvmConstraintsExtension { /** * Sets an explicit minimum bound to allowed JDK version */ - val minJavaVersionForTests: Property + val minJavaVersion: Property /** * Sets an explicit maximum bound to allowed JDK version */ - val maxJavaVersionForTests: Property + val maxJavaVersion: Property /** * List of allowed JDK names (passed through the `testJvm` property). diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt index 842b2192df6..6ab8c806715 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt @@ -2,7 +2,6 @@ package datadog.gradle.plugin.testJvmConstraints import org.gradle.api.JavaVersion import org.gradle.api.logging.Logging -import org.gradle.jvm.toolchain.JavaLauncher private val logger = Logging.getLogger("TestJvmConstraintsUtils") @@ -32,16 +31,16 @@ internal fun TestJvmConstraintsExtension.isTestJvmAllowed(testJvmSpec: TestJvmSp } private fun TestJvmConstraintsExtension.isWithinAllowedRange(currentJvmVersion: JavaVersion): Boolean { - val definedMin = minJavaVersionForTests.isPresent - val definedMax = maxJavaVersionForTests.isPresent + val definedMin = minJavaVersion.isPresent + val definedMax = maxJavaVersion.isPresent - if (definedMin && (minJavaVersionForTests.get()) > currentJvmVersion) { - logger.info("isJavaVersionAllowedForProperty returns false b/o minProp=${minJavaVersionForTests.get()} is defined and greater than version=$currentJvmVersion") + if (definedMin && (minJavaVersion.get()) > currentJvmVersion) { + logger.info("isWithinAllowedRange returns false b/o minProp=${minJavaVersion.get()} is defined and greater than version=$currentJvmVersion") return false } - if (definedMax && (maxJavaVersionForTests.get()) < currentJvmVersion) { - logger.info("isJavaVersionAllowedForProperty returns false b/o maxProp=${maxJavaVersionForTests.get()} is defined and lower than version=$currentJvmVersion") + if (definedMax && (maxJavaVersion.get()) < currentJvmVersion) { + logger.info("isWithinAllowedRange returns false b/o maxProp=${maxJavaVersion.get()} is defined and lower than version=$currentJvmVersion") return false } diff --git a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle index 34e2f1812db..73daac9e1a0 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle @@ -3,14 +3,14 @@ apply plugin: 'idea' tracerJava { addSourceSetFor(JavaVersion.VERSION_11) { - // By default tests with be compiled for `minJavaVersionForTests` version, + // By default tests with be compiled for `minJavaVersion` version, // but in this case we would like to avoid this since we would like to run with ZULU8 applyForTestSources = false } } testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 excludeJdk = ['SEMERU11', 'SEMERU17'] } diff --git a/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle index 72a66804140..53db41222eb 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle @@ -6,7 +6,7 @@ apply plugin: 'idea' testJvmConstraint { // the tests need Java 11 because the JFR writer got compiled with a version // of ByteBuffer.position(int) which is binary incompatible with Java 8 ¯\_(ツ)_/¯ - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 excludeJdk = ['SEMERU11', 'SEMERU17'] } diff --git a/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle index eeb9f54b730..66709882492 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle @@ -5,7 +5,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_1_8 + minJavaVersion = JavaVersion.VERSION_1_8 } sourceSets { diff --git a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle index 04a1a5a371c..949fad86c06 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle @@ -3,14 +3,14 @@ apply plugin: 'idea' tracerJava { addSourceSetFor(JavaVersion.VERSION_11) { - // By default tests with be compiled for `minJavaVersionForTests` version, + // By default tests with be compiled for `minJavaVersion` version, // but in this case we would like to avoid this since we would like to run with ZULU8 applyForTestSources = false } } testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 // Zulu has backported profiling support forceJdk = ['ZULU8'] excludeJdk = ['SEMERU11', 'SEMERU17'] diff --git a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle index 7b1b35b832b..750ef5341ba 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" tracerJava { addSourceSetFor(JavaVersion.VERSION_11) { - // By default tests with be compiled for `minJavaVersionForTests` version, + // By default tests with be compiled for `minJavaVersion` version, // but in this case we would like to avoid this since we would like to run with ZULU8 applyForTestSources = false } diff --git a/dd-java-agent/instrumentation/aerospike-4.0/build.gradle b/dd-java-agent/instrumentation/aerospike-4.0/build.gradle index aefdb1eb227..c3c5ce7b03c 100644 --- a/dd-java-agent/instrumentation/aerospike-4.0/build.gradle +++ b/dd-java-agent/instrumentation/aerospike-4.0/build.gradle @@ -16,13 +16,13 @@ addTestSuiteExtendingForDir("latest7DepForkedTest", "latest7DepTest", "test") tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_21 + minJavaVersion = JavaVersion.VERSION_21 } } tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_21 + minJavaVersion = JavaVersion.VERSION_21 } } 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 0574e2b7e01..3aea0ce4073 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 @@ -19,7 +19,7 @@ addTestSuiteForDir 'latestDepIastTest', 'iastTest' tasks.named("lagomTest", Test) { testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } } 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 9c694f7c214..16ce7f9bd2f 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 @@ -23,7 +23,7 @@ addTestSuiteExtendingForDir("jetty11LatestDepTest", "latestDepTest", "test/jetty tasks.named("jetty11Test", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/avro/build.gradle b/dd-java-agent/instrumentation/avro/build.gradle index c37a04b6d95..36ade375e20 100644 --- a/dd-java-agent/instrumentation/avro/build.gradle +++ b/dd-java-agent/instrumentation/avro/build.gradle @@ -14,7 +14,7 @@ addTestSuiteForDir('latestDepTest8','test') tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/axis2-1.3/build.gradle b/dd-java-agent/instrumentation/axis2-1.3/build.gradle index f5a767d1f13..585dec45da3 100644 --- a/dd-java-agent/instrumentation/axis2-1.3/build.gradle +++ b/dd-java-agent/instrumentation/axis2-1.3/build.gradle @@ -13,13 +13,13 @@ addTestSuiteForDir('latestDepForkedTest', 'test') tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle b/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle index 5d4f720708e..6f66847312b 100644 --- a/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle +++ b/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle @@ -3,7 +3,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: This version of jboss-modules doesn't support Java 17 // __redirected.__SAXParserFactory can't access com.sun.org.apache.xerces.internal.jaxp - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } dependencies { diff --git a/dd-java-agent/instrumentation/cxf-2.1/build.gradle b/dd-java-agent/instrumentation/cxf-2.1/build.gradle index 31f7c177e01..ff0a56cc53e 100644 --- a/dd-java-agent/instrumentation/cxf-2.1/build.gradle +++ b/dd-java-agent/instrumentation/cxf-2.1/build.gradle @@ -21,13 +21,13 @@ addTestSuiteForDir('cxf3LatestDepTest', 'test') tasks.named("cxf3LatestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } 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 1a7746d0a83..7eb0fa13a88 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 @@ -41,7 +41,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.) - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } addTestSuiteForDir('latestDepTest', 'test') 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 62604a57899..f9e18660380 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 @@ -16,7 +16,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.) - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } addTestSuiteForDir('latestDepTest', 'test') 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 c4975fc7e44..84ecae902cf 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 @@ -12,7 +12,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: The embedded cassandra deadlocks on start every time on Java 17 // This can be changed to use test-containers - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } addTestSuiteForDir('latestDepTest', 'test') diff --git a/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle b/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle index ee51706ac47..9f6a00ee876 100644 --- a/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle @@ -20,7 +20,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: The embedded elastic search server doesn't work on Java 17 // This can be changed to use test-containers - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } addTestSuite('latestDepTest') diff --git a/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle b/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle index 01602149e25..4cdc2b6b638 100644 --- a/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle @@ -11,7 +11,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } addTestSuiteForDir('latestDepTest', 'latestDepTest') diff --git a/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle b/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle index 810f2eee9ed..5eee77b656d 100644 --- a/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle @@ -20,7 +20,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: The embedded elastic search server doesn't work on Java 17 // This can be changed to use test-containers - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } dependencies { diff --git a/dd-java-agent/instrumentation/exception-profiling/build.gradle b/dd-java-agent/instrumentation/exception-profiling/build.gradle index 2b7abb74dde..7e77bed70e9 100644 --- a/dd-java-agent/instrumentation/exception-profiling/build.gradle +++ b/dd-java-agent/instrumentation/exception-profiling/build.gradle @@ -3,14 +3,14 @@ apply plugin: "idea" tracerJava { addSourceSetFor(JavaVersion.VERSION_11) { - // By default tests with be compiled for `minJavaVersionForTests` version, + // By default tests with be compiled for `minJavaVersion` version, // but in this case we would like to avoid this since we would like to run with ZULU8 applyForTestSources = false } } testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 // Zulu has backported profiling support forceJdk = ['ZULU8'] } diff --git a/dd-java-agent/instrumentation/glassfish-3.0/build.gradle b/dd-java-agent/instrumentation/glassfish-3.0/build.gradle index d3a1ee122f0..91b481b4d59 100644 --- a/dd-java-agent/instrumentation/glassfish-3.0/build.gradle +++ b/dd-java-agent/instrumentation/glassfish-3.0/build.gradle @@ -11,7 +11,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } addTestSuiteForDir('latestDepTest', 'test') diff --git a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle index c801bc9ac79..177c03a15f1 100644 --- a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle +++ b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle @@ -71,6 +71,6 @@ tasks.matching { ] }.configureEach { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/ignite-2.0/build.gradle b/dd-java-agent/instrumentation/ignite-2.0/build.gradle index bbf43dbc685..50ede890db1 100644 --- a/dd-java-agent/instrumentation/ignite-2.0/build.gradle +++ b/dd-java-agent/instrumentation/ignite-2.0/build.gradle @@ -18,7 +18,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // See https://ignite.apache.org/docs/latest/quick-start/java#running-ignite-with-java-11-or-later // FIXME: Because of this condition, tests only run in Java 8, and latestDepTest never run, as they require Java 11+. - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } addTestSuiteForDir('latestDepTest', 'test') @@ -50,7 +50,7 @@ for (taskName in ['latestDepTest', 'latestDepForkedTest']) { tasks.named(taskName, Test) { testJvmConstraint { // ignite 2.17.0+ requires Java 11+ - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } } diff --git a/dd-java-agent/instrumentation/jakarta-jms/build.gradle b/dd-java-agent/instrumentation/jakarta-jms/build.gradle index c1da365f6b4..7bc7081cae4 100644 --- a/dd-java-agent/instrumentation/jakarta-jms/build.gradle +++ b/dd-java-agent/instrumentation/jakarta-jms/build.gradle @@ -12,7 +12,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } apply from: "$rootDir/gradle/configure_tests.gradle" diff --git a/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle b/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle index 88e02ac3cf0..5e345396523 100644 --- a/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle @@ -4,10 +4,10 @@ apply from: "$rootDir/gradle/slf4j-simple.gradle" apply plugin: 'idea' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_21 + minJavaVersion = JavaVersion.VERSION_21 // Structured concurrency is a preview feature in Java 21. Methods (e.g. ShutdownOnFailure) used in this instrumentation test are no longer available in Java 25, so we set the max version to 24. // See: https://download.java.net/java/early_access/loom/docs/api/java.base/java/util/concurrent/StructuredTaskScope.html - maxJavaVersionForTests = JavaVersion.VERSION_24 + maxJavaVersion = JavaVersion.VERSION_24 } muzzle { diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle index 4a991a4b09f..8bec615cd37 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle @@ -6,7 +6,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } muzzle { diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle index 1ffcb2a6814..d7721a65bca 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle @@ -6,7 +6,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_15 + minJavaVersion = JavaVersion.VERSION_15 } muzzle { diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle index ae5be8ef06a..ed3d6112b8b 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle @@ -6,7 +6,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } muzzle { diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle index bfce0716620..8d59355ee4b 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle @@ -6,7 +6,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_1_9 + minJavaVersion = JavaVersion.VERSION_1_9 } muzzle { diff --git a/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle b/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle index 9e2494f5526..f28fde3a973 100644 --- a/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle +++ b/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle @@ -12,7 +12,7 @@ tracerJava { } testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 excludeJdk = ['SEMERU11', 'SEMERU17'] } diff --git a/dd-java-agent/instrumentation/jdbc/build.gradle b/dd-java-agent/instrumentation/jdbc/build.gradle index 8905054ad96..1aeb3d1965f 100644 --- a/dd-java-agent/instrumentation/jdbc/build.gradle +++ b/dd-java-agent/instrumentation/jdbc/build.gradle @@ -98,7 +98,7 @@ tasks.withType(Test).configureEach { tasks.named("latestDepJava11Test", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/jersey/build.gradle b/dd-java-agent/instrumentation/jersey/build.gradle index 5e6e53076a9..88df73d6974 100644 --- a/dd-java-agent/instrumentation/jersey/build.gradle +++ b/dd-java-agent/instrumentation/jersey/build.gradle @@ -10,7 +10,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } // there are tests with jersey2 and grizzly on the grizzly-http-2.3.20 module diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle index 702951385ce..d3f4629e1c1 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle @@ -65,6 +65,6 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle index 04ebdebafe6..3ab1908c6c1 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle @@ -59,6 +59,6 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/karate/build.gradle b/dd-java-agent/instrumentation/karate/build.gradle index d9dfe17f470..554e73ff277 100644 --- a/dd-java-agent/instrumentation/karate/build.gradle +++ b/dd-java-agent/instrumentation/karate/build.gradle @@ -83,7 +83,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { tasks.named("latestDepTest", Test) { // karate 1.4.0+ requires Java 11 or higher. testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle b/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle index 072da2604c7..0b2759d6d79 100644 --- a/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle +++ b/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle @@ -15,7 +15,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // Log4j 1.x reached EOL in 2015 and is not compatible with Java 25+: https://endoflife.date/log4j - maxJavaVersionForTests = JavaVersion.VERSION_24 + maxJavaVersion = JavaVersion.VERSION_24 } addTestSuiteForDir('latestDepTest', 'test') diff --git a/dd-java-agent/instrumentation/mule-4.5/build.gradle b/dd-java-agent/instrumentation/mule-4.5/build.gradle index 69e6a7c9645..a1a83b4d2de 100644 --- a/dd-java-agent/instrumentation/mule-4.5/build.gradle +++ b/dd-java-agent/instrumentation/mule-4.5/build.gradle @@ -108,7 +108,7 @@ tasks.named("forbiddenApisMain_java11") { tasks.named("forkedTest", Test) { testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_11 } } @@ -131,14 +131,14 @@ tasks.named("compileLatestDepForkedTestJava", JavaCompile) { tasks.named("mule46ForkedTest", Test) { testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 - maxJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 + maxJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle b/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle index e996c02805c..08a64a9c9eb 100644 --- a/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } muzzle { 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 cf2ecfc4e5e..edd1849f100 100644 --- a/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // asynchttpclient is not compatible with Java 11 - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } muzzle { diff --git a/dd-java-agent/instrumentation/play/play-2.3/build.gradle b/dd-java-agent/instrumentation/play/play-2.3/build.gradle index 51098e4e9ca..db3a1389a5a 100644 --- a/dd-java-agent/instrumentation/play/play-2.3/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.3/build.gradle @@ -23,7 +23,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // Play doesn't work with Java 9+ until 2.6.12 - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } repositories { diff --git a/dd-java-agent/instrumentation/play/play-2.4/build.gradle b/dd-java-agent/instrumentation/play/play-2.4/build.gradle index 2f51837a8cc..7fd452d0d32 100644 --- a/dd-java-agent/instrumentation/play/play-2.4/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.4/build.gradle @@ -34,7 +34,7 @@ apply plugin: 'scala' testJvmConstraint { // Play doesn't work with Java 9+ until 2.6.12 - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } repositories { diff --git a/dd-java-agent/instrumentation/play/play-2.6/build.gradle b/dd-java-agent/instrumentation/play/play-2.6/build.gradle index f0bf43966ac..18b4d4ab8e6 100644 --- a/dd-java-agent/instrumentation/play/play-2.6/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.6/build.gradle @@ -52,7 +52,7 @@ apply plugin: 'scala' testJvmConstraint { // Play doesn't work with Java 9+ until 2.6.12 - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 } repositories { diff --git a/dd-java-agent/instrumentation/quartz-2.0/build.gradle b/dd-java-agent/instrumentation/quartz-2.0/build.gradle index 818089a0e32..dbed6431583 100644 --- a/dd-java-agent/instrumentation/quartz-2.0/build.gradle +++ b/dd-java-agent/instrumentation/quartz-2.0/build.gradle @@ -40,12 +40,12 @@ dependencies { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("version40Test", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle b/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle index e25c4ac6669..917868ef6a2 100644 --- a/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle +++ b/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } muzzle { diff --git a/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle b/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle index 5653c73b3ef..ecc7121aabc 100644 --- a/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle +++ b/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } muzzle { diff --git a/dd-java-agent/instrumentation/rmi/build.gradle b/dd-java-agent/instrumentation/rmi/build.gradle index e8caea0fe81..6e5670b3377 100644 --- a/dd-java-agent/instrumentation/rmi/build.gradle +++ b/dd-java-agent/instrumentation/rmi/build.gradle @@ -8,7 +8,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: The necessary packages are not opened on Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } tasks.withType(JavaCompile).configureEach { diff --git a/dd-java-agent/instrumentation/selenium/build.gradle b/dd-java-agent/instrumentation/selenium/build.gradle index cfed5200dd0..f3c992f7a86 100644 --- a/dd-java-agent/instrumentation/selenium/build.gradle +++ b/dd-java-agent/instrumentation/selenium/build.gradle @@ -44,7 +44,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle b/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle index 1a86b193bcc..c9bcbbd142a 100644 --- a/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle +++ b/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle @@ -19,7 +19,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } //addTestSuiteForDir('latestDepTest', 'test') diff --git a/dd-java-agent/instrumentation/spark-executor/build.gradle b/dd-java-agent/instrumentation/spark-executor/build.gradle index 37dd0e62504..c8dc975a176 100644 --- a/dd-java-agent/instrumentation/spark-executor/build.gradle +++ b/dd-java-agent/instrumentation/spark-executor/build.gradle @@ -27,7 +27,7 @@ testJvmConstraint { excludeJdk = ['SEMERU8', 'SEMERU11'] // Spark does not support Java > 11 until 3.3.0 https://issues.apache.org/jira/browse/SPARK-33772 - maxJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_11 } dependencies { diff --git a/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle b/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle index bb7a95d5aed..3b768fb60b4 100644 --- a/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle +++ b/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle @@ -27,7 +27,7 @@ testJvmConstraint { excludeJdk = ['SEMERU8', 'SEMERU11'] // Spark does not support Java > 11 until 3.3.0 https://issues.apache.org/jira/browse/SPARK-33772 - maxJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_11 } dependencies { diff --git a/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle b/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle index 36c24cb7c8c..448f1f21647 100644 --- a/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle +++ b/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle @@ -31,7 +31,7 @@ testJvmConstraint { excludeJdk = ['SEMERU8', 'SEMERU11', 'IBM8'] // Spark does not support Java > 11 until 3.3.0 https://issues.apache.org/jira/browse/SPARK-33772 - maxJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_11 } configurations.configureEach { diff --git a/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle b/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle index c6865775779..7ce79de521b 100644 --- a/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle @@ -48,24 +48,24 @@ dependencies { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("boot3Test", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("boot3ForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle b/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle index 1d36b914873..a9f5ab21fce 100644 --- a/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle @@ -24,7 +24,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: This version of spring-data doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } addTestSuiteForDir('latestDepTest', 'test') diff --git a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle index 790c5e397ff..3a9870ea313 100644 --- a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle @@ -10,7 +10,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } addTestSuiteForDir('latestDepTest', 'test') diff --git a/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle b/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle index 13c79ab89dd..d6b470cbbdf 100644 --- a/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle @@ -73,18 +73,18 @@ dependencies { tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("spring6Test", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle index 03e8bf3d722..6d143a3decd 100644 --- a/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } addTestSuiteForDir('latestDepTest', 'test') 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 b40b8e80103..0e4ccd72fcb 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,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } // test that webflux5 instrumentation works for webflux6 too diff --git a/dd-java-agent/instrumentation/testng/testng-7/build.gradle b/dd-java-agent/instrumentation/testng/testng-7/build.gradle index beb8c4e2c9e..01f585d7555 100644 --- a/dd-java-agent/instrumentation/testng/testng-7/build.gradle +++ b/dd-java-agent/instrumentation/testng/testng-7/build.gradle @@ -27,7 +27,7 @@ addTestSuiteForDir('latestDepTest', 'test') tasks.named("latestDepTest", Test) { // testng 7.6.0+ requires Java 11 or higher. testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle index 880190c6571..8fa83619d2d 100644 --- a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle +++ b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle @@ -163,24 +163,24 @@ tasks.withType(Test).configureEach { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("latest10Test", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latest10ForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle b/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle index 8a689f57ec6..20271ab0770 100644 --- a/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle +++ b/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle @@ -48,13 +48,13 @@ dependencies { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } } 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 c8f7e12bdad..87c72d86bb7 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 @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: This version of vertx-web doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } muzzle { 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 34080c7def7..800c82b39e0 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 @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: This version of vertx-web doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } muzzle { 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 20fc5c180c6..3e81fd85c04 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 @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: This version of vertx-web doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } muzzle { 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 d7f43be32ec..fd94e175c3a 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 @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // vertx-web doesn't support Java 17 until v4.2 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } muzzle { @@ -65,15 +65,15 @@ dependencies { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 - maxJavaVersionForTests = JavaVersion.VERSION_25 + minJavaVersion = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_25 } } tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 - maxJavaVersionForTests = JavaVersion.VERSION_25 + minJavaVersion = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_25 } } 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 4777f359ac8..5e14d81b91d 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,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } muzzle { diff --git a/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle b/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle index 22f7ddbe073..ee32984f314 100644 --- a/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle @@ -11,7 +11,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } addTestSuiteForDir("latestDepTest", "test") @@ -27,6 +27,6 @@ dependencies { tasks.named('latestDepTest', Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle index 86ffadb634c..9f824b32c24 100644 --- a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle @@ -12,7 +12,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } addTestSuite("latestDepTest") diff --git a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle index dd324e54466..8813f7e985c 100644 --- a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle @@ -25,7 +25,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } addTestSuiteForDir("latestDepTest", "test") diff --git a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle index e9bab4c3ccb..b265325998d 100644 --- a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle +++ b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle @@ -17,7 +17,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } addTestSuiteForDir("latestDepTest", "test") @@ -109,7 +109,7 @@ tasks.named("forkedTest", Test) { tasks.named("latestDepTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } dependsOn 'extractLatestWildfly' } @@ -172,7 +172,7 @@ tasks.named("forkedTest", Test) { tasks.named("latestDepForkedTest", Test) { testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } jvmArgumentProviders.add( objects.newInstance(DistributionLocationProvider).tap { diff --git a/dd-smoke-tests/appsec/springboot-grpc/build.gradle b/dd-smoke-tests/appsec/springboot-grpc/build.gradle index 96b7c085b5f..e00e38e5543 100644 --- a/dd-smoke-tests/appsec/springboot-grpc/build.gradle +++ b/dd-smoke-tests/appsec/springboot-grpc/build.gradle @@ -8,7 +8,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: This version of spring-boot doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } // The standard spring-boot plugin doesn't play nice with our project // so we'll build a fat jar instead diff --git a/dd-smoke-tests/armeria-grpc/build.gradle b/dd-smoke-tests/armeria-grpc/build.gradle index 7322fe4d114..51fdf76da9e 100644 --- a/dd-smoke-tests/armeria-grpc/build.gradle +++ b/dd-smoke-tests/armeria-grpc/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } sourceSets { diff --git a/dd-smoke-tests/concurrent/java-21/build.gradle b/dd-smoke-tests/concurrent/java-21/build.gradle index 1794e348a52..7e7ed8ad7f4 100644 --- a/dd-smoke-tests/concurrent/java-21/build.gradle +++ b/dd-smoke-tests/concurrent/java-21/build.gradle @@ -8,8 +8,8 @@ plugins { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_21 - maxJavaVersionForTests = JavaVersion.VERSION_25 + minJavaVersion = JavaVersion.VERSION_21 + maxJavaVersion = JavaVersion.VERSION_25 } description = 'JDK 21 Concurrent Integration Tests' diff --git a/dd-smoke-tests/concurrent/java-25/build.gradle b/dd-smoke-tests/concurrent/java-25/build.gradle index b66577a2c60..27a65676239 100644 --- a/dd-smoke-tests/concurrent/java-25/build.gradle +++ b/dd-smoke-tests/concurrent/java-25/build.gradle @@ -12,8 +12,8 @@ testJvmConstraint { // But the groovy testing framework cannot run on Java 25 // Using Java 8 for now and runs a JVM 25 when forking tests process. // Relying on forked JVM 25 is hardcoded in the test suites (see createProcessBuilder()). - minJavaVersionForTests = JavaVersion.VERSION_1_8 - maxJavaVersionForTests = JavaVersion.VERSION_1_8 + minJavaVersion = JavaVersion.VERSION_1_8 + maxJavaVersion = JavaVersion.VERSION_1_8 // Only runs on Temurin build as it spawns a Temurin 25 for test process. excludeJdk = ['IBM8', 'SEMERU8'] } diff --git a/dd-smoke-tests/kafka-3/build.gradle b/dd-smoke-tests/kafka-3/build.gradle index 175ad2cae50..fb812f69987 100644 --- a/dd-smoke-tests/kafka-3/build.gradle +++ b/dd-smoke-tests/kafka-3/build.gradle @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'java-test-fixtures' testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } description = 'Kafka 3.x Smoke Tests.' diff --git a/dd-smoke-tests/play-2.4/build.gradle b/dd-smoke-tests/play-2.4/build.gradle index c99bda8b5df..18420fd742f 100644 --- a/dd-smoke-tests/play-2.4/build.gradle +++ b/dd-smoke-tests/play-2.4/build.gradle @@ -6,7 +6,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: This version of play doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" diff --git a/dd-smoke-tests/play-2.5/build.gradle b/dd-smoke-tests/play-2.5/build.gradle index a9704db5ee4..26ad9ae45ea 100644 --- a/dd-smoke-tests/play-2.5/build.gradle +++ b/dd-smoke-tests/play-2.5/build.gradle @@ -7,7 +7,7 @@ apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" testJvmConstraint { // TODO Java 17: This version of play doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } def playVer = "2.5.19" diff --git a/dd-smoke-tests/play-2.6/build.gradle b/dd-smoke-tests/play-2.6/build.gradle index 36be8778a5d..d29558c97e9 100644 --- a/dd-smoke-tests/play-2.6/build.gradle +++ b/dd-smoke-tests/play-2.6/build.gradle @@ -7,7 +7,7 @@ apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" testJvmConstraint { // TODO Java 17: This version of play doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } def playVer = "2.6.25" diff --git a/dd-smoke-tests/play-2.7/build.gradle b/dd-smoke-tests/play-2.7/build.gradle index 0efa0febe30..b38d73f3ce6 100644 --- a/dd-smoke-tests/play-2.7/build.gradle +++ b/dd-smoke-tests/play-2.7/build.gradle @@ -7,7 +7,7 @@ apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" testJvmConstraint { // TODO Java 17: This version of play doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } def playVer = "2.7.9" diff --git a/dd-smoke-tests/quarkus/build.gradle b/dd-smoke-tests/quarkus/build.gradle index 5ef753a945f..25e3d6cb27a 100644 --- a/dd-smoke-tests/quarkus/build.gradle +++ b/dd-smoke-tests/quarkus/build.gradle @@ -2,7 +2,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // Quarkus is only supported up to Java 21: https://github.com/quarkusio/quarkus - maxJavaVersionForTests = JavaVersion.VERSION_21 + maxJavaVersion = JavaVersion.VERSION_21 } dependencies { diff --git a/dd-smoke-tests/rum/tomcat-10/build.gradle b/dd-smoke-tests/rum/tomcat-10/build.gradle index 05cf024ddc1..396c0bb8a25 100644 --- a/dd-smoke-tests/rum/tomcat-10/build.gradle +++ b/dd-smoke-tests/rum/tomcat-10/build.gradle @@ -7,7 +7,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } description = 'RUM Tomcat 10 Smoke Tests' diff --git a/dd-smoke-tests/rum/tomcat-11/build.gradle b/dd-smoke-tests/rum/tomcat-11/build.gradle index 4de1c742c61..d2407f96318 100644 --- a/dd-smoke-tests/rum/tomcat-11/build.gradle +++ b/dd-smoke-tests/rum/tomcat-11/build.gradle @@ -7,7 +7,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } description = 'RUM Tomcat 11 Smoke Tests' diff --git a/dd-smoke-tests/rum/wildfly-15/build.gradle b/dd-smoke-tests/rum/wildfly-15/build.gradle index df3a2a05872..2237d9afb7b 100644 --- a/dd-smoke-tests/rum/wildfly-15/build.gradle +++ b/dd-smoke-tests/rum/wildfly-15/build.gradle @@ -23,7 +23,7 @@ repositories { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_11 } description = 'Wildfly Smoke Tests.' diff --git a/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle b/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle index 1c07a4d404a..c9e7e9c87c6 100644 --- a/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle +++ b/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } description = 'Spring Boot 3.0 Webflux Smoke Tests.' diff --git a/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle b/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle index b12dc23c838..5a244180280 100644 --- a/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle +++ b/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } description = 'Spring Boot 3.0 WebMvc Smoke Tests.' diff --git a/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle b/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle index 5f0cd738686..da870c2c256 100644 --- a/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle +++ b/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } description = 'Spring Boot 3.3 WebMvc Smoke Tests.' diff --git a/dd-smoke-tests/spring-security/build.gradle b/dd-smoke-tests/spring-security/build.gradle index 921f0b136ef..40da5faafb4 100644 --- a/dd-smoke-tests/spring-security/build.gradle +++ b/dd-smoke-tests/spring-security/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } description = 'Spring Security Smoke Tests.' diff --git a/dd-smoke-tests/springboot-grpc/build.gradle b/dd-smoke-tests/springboot-grpc/build.gradle index 2956f49c985..8c38e1b433f 100644 --- a/dd-smoke-tests/springboot-grpc/build.gradle +++ b/dd-smoke-tests/springboot-grpc/build.gradle @@ -9,7 +9,7 @@ apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { // TODO Java 17: This version of spring-boot doesn't support Java 17 - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } description = 'SpringBoot/gRPC combined Smoke Tests.' diff --git a/dd-smoke-tests/springboot-java-11/build.gradle b/dd-smoke-tests/springboot-java-11/build.gradle index 9502f3653de..7b5a582a4b8 100644 --- a/dd-smoke-tests/springboot-java-11/build.gradle +++ b/dd-smoke-tests/springboot-java-11/build.gradle @@ -10,7 +10,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_11 + minJavaVersion = JavaVersion.VERSION_11 } apply from: "$rootDir/gradle/spring-boot-plugin.gradle" diff --git a/dd-smoke-tests/springboot-java-17/build.gradle b/dd-smoke-tests/springboot-java-17/build.gradle index 357f570a483..fd512120c56 100644 --- a/dd-smoke-tests/springboot-java-17/build.gradle +++ b/dd-smoke-tests/springboot-java-17/build.gradle @@ -10,7 +10,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - minJavaVersionForTests = JavaVersion.VERSION_17 + minJavaVersion = JavaVersion.VERSION_17 } apply from: "$rootDir/gradle/spring-boot-plugin.gradle" diff --git a/dd-smoke-tests/springboot/build.gradle b/dd-smoke-tests/springboot/build.gradle index 5797448668b..5cd3f548725 100644 --- a/dd-smoke-tests/springboot/build.gradle +++ b/dd-smoke-tests/springboot/build.gradle @@ -8,7 +8,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_15 + maxJavaVersion = JavaVersion.VERSION_15 } description = 'SpringBoot Smoke Tests.' diff --git a/dd-smoke-tests/wildfly/build.gradle b/dd-smoke-tests/wildfly/build.gradle index 2ed0cd917ef..2fd2dd4f545 100644 --- a/dd-smoke-tests/wildfly/build.gradle +++ b/dd-smoke-tests/wildfly/build.gradle @@ -23,7 +23,7 @@ repositories { apply from: "$rootDir/gradle/java.gradle" testJvmConstraint { - maxJavaVersionForTests = JavaVersion.VERSION_11 + maxJavaVersion = JavaVersion.VERSION_11 } description = 'Wildfly Smoke Tests.' diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 5592f067417..17f1c4568cc 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -74,7 +74,7 @@ class TracerJavaExtension { if (sourceSetConfigurer != null) { sourceSetConfigurer.execute(sourceSetConfig) } - project.extensions.getByType(TestJvmConstraintsExtension).minJavaVersionForTests.set(javaVersion) + project.extensions.getByType(TestJvmConstraintsExtension).minJavaVersion.set(javaVersion) def version = javaVersion def name = "java${version.majorVersion}" @@ -155,10 +155,6 @@ java { withSourcesJar() } -if (project.hasProperty('minJavaVersionForTests') && project.findProperty('minJavaVersionForTests') != JavaVersion.VERSION_1_7) { - tracerJavaExtension.addSourceSetFor(project.findProperty('minJavaVersionForTests')) -} - tasks.named("jar", Jar) { /** Make Jar build fail on duplicate files From 79cf26101538349f9848060c7b881ea63f2db46f Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 30 Oct 2025 23:19:25 -0400 Subject: [PATCH 15/18] chore: Make spotless happy --- .../akka-http/akka-http-10.6/build.gradle | 1 - dd-java-agent/instrumentation/build.gradle | 12 +++++----- .../graphql-java-20.0/build.gradle | 8 +++---- gradle/java_no_deps.gradle | 24 +++++++++---------- 4 files changed, 22 insertions(+), 23 deletions(-) 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 94f1b6e90f6..26b9de5c894 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 @@ -21,7 +21,6 @@ muzzle { assertInverse = true } - } repositories { diff --git a/dd-java-agent/instrumentation/build.gradle b/dd-java-agent/instrumentation/build.gradle index 9903e5449e1..5b8416ba4dd 100644 --- a/dd-java-agent/instrumentation/build.gradle +++ b/dd-java-agent/instrumentation/build.gradle @@ -36,12 +36,12 @@ subprojects { Project subProj -> // Configures base dependencies for additional sourceSet configurations - .matching { it.name.matches("${SourceSet.MAIN_SOURCE_SET_NAME}_java\\d+${JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME.capitalize()}") } - .configureEach { - it.dependencies.add(project.dependencyFactory.create(project(':dd-trace-api'))) - it.dependencies.add(project.dependencyFactory.create(project(':dd-java-agent:agent-tooling'))) - it.dependencies.addLater(libs.bytebuddy) - } + .matching { it.name.matches("${SourceSet.MAIN_SOURCE_SET_NAME}_java\\d+${JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME.capitalize()}") } + .configureEach { + it.dependencies.add(project.dependencyFactory.create(project(':dd-trace-api'))) + it.dependencies.add(project.dependencyFactory.create(project(':dd-java-agent:agent-tooling'))) + it.dependencies.addLater(libs.bytebuddy) + } configurations.named('muzzleBootstrap') { exclude group: 'org.snakeyaml', module: 'snakeyaml-engine' // we vendor this in the agent jar diff --git a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle index 177c03a15f1..500808629ef 100644 --- a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle +++ b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle @@ -64,10 +64,10 @@ dependencies { tasks.matching { it.name in [ - "latestDepTest", - "latestDepForkedTest", - "graphql21LatestDepTest", - "graphql21LatestDepForkedTest" + "latestDepTest", + "latestDepForkedTest", + "graphql21LatestDepTest", + "graphql21LatestDepForkedTest" ] }.configureEach { testJvmConstraint { diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 17f1c4568cc..741b584db30 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -39,7 +39,7 @@ interface TracerSourceSetConfig { @CompileStatic class TracerJavaExtension { - public static String NAME = "tracerJava"; + public static String NAME = "tracerJava" private ObjectFactory objects private Project project @@ -131,12 +131,12 @@ if (tasks.matching({ it.name == 'forkedTest' }).empty) { } def applyCodeCoverage = !( - project.path.startsWith(":dd-smoke-tests") || - project.path == ":dd-java-agent" || - project.path == ":dd-java-agent:load-generator" || - project.path.startsWith(":dd-java-agent:benchmark") || - project.path.startsWith(":dd-java-agent:instrumentation") || - project.path.startsWith(":dd-java-agent:appsec:weblog:")) +project.path.startsWith(":dd-smoke-tests") || +project.path == ":dd-java-agent" || +project.path == ":dd-java-agent:load-generator" || +project.path.startsWith(":dd-java-agent:benchmark") || +project.path.startsWith(":dd-java-agent:instrumentation") || +project.path.startsWith(":dd-java-agent:appsec:weblog:")) // https://stackoverflow.com/questions/42501869/gradle-skip-jacoco-during-test // https://poetengineer.postach.io/post/how-to-conditionally-enable-disable-jacoco-in-gradle-build @@ -171,11 +171,11 @@ tasks.named("jar", Jar) { manifest { attributes( - "Implementation-Title": project.name, - "Implementation-Version": project.version, - "Implementation-Vendor": "Datadog", - "Implementation-URL": "https://github.com/datadog/dd-trace-java", - ) + "Implementation-Title": project.name, + "Implementation-Version": project.version, + "Implementation-Vendor": "Datadog", + "Implementation-URL": "https://github.com/datadog/dd-trace-java", + ) } } From 04bd398f7b5bcb6f7e931628abc39d4b6b0fc5e6 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Fri, 31 Oct 2025 10:25:25 -0400 Subject: [PATCH 16/18] fix: Apply test sources compiler settings via common compilerConfiguration --- gradle/java_no_deps.gradle | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 741b584db30..9a03336d6fa 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -84,18 +84,17 @@ class TracerJavaExtension { (it as SourceSet).java.srcDirs = ["${project.projectDir}/src/${SourceSet.MAIN_SOURCE_SET_NAME}/$name"] } + // TODO Make 'configureCompiler' a general utility method + def configureCompilerCl = project.extensions.getByType(ExtraPropertiesExtension).get("configureCompiler") as Closure project.tasks.named(mainForJavaVersionSourceSet.compileJavaTaskName, JavaCompile) { - // TODO Make 'configureCompiler' a general utility method - def cl = project.extensions.getByType(ExtraPropertiesExtension).get("configureCompiler") as Closure - cl.call(it, version.majorVersion.toInteger().intValue(), version) + configureCompilerCl.call(it, version.majorVersion.toInteger().intValue(), version) } if (sourceSetConfig.applyForTestSources.orElse(true)) { // configures all test tasks project.tasks.withType(JavaCompile).configureEach { if (it.name.toLowerCase().contains("test")) { - it.sourceCompatibility = version - it.targetCompatibility = version + configureCompilerCl.call(it, version.majorVersion.toInteger().intValue(), version) } } } From 5a502dc23c9e7a9e0dbd2ac538c72ce96ca3e415 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Fri, 31 Oct 2025 11:12:59 -0400 Subject: [PATCH 17/18] fix: Make vertx compile test with Java 11 --- .../vertx/vertx-web/vertx-web-5.0/build.gradle | 5 +++++ 1 file changed, 5 insertions(+) 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 5e14d81b91d..08ee01eaefc 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,9 @@ apply from: "$rootDir/gradle/java.gradle" +tracerJava { + addSourceSetFor(JavaVersion.VERSION_11) +} + testJvmConstraint { minJavaVersion = JavaVersion.VERSION_11 } @@ -55,3 +59,4 @@ dependencies { tasks.named("compileJava", JavaCompile) { configureCompiler(it, 11, JavaVersion.VERSION_1_8) } + From 590f95912c332db7849b02266b9862e92abb7f1a Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Mon, 10 Nov 2025 09:50:56 +0100 Subject: [PATCH 18/18] fix: PR comments --- .../datadog.test-jvm-contraints.gradle.kts | 19 ++++++++++--------- .../TestJvmConstraintsExtension.kt | 7 ++++--- .../TestJvmConstraintsUtils.kt | 6 +++--- .../profiling-controller-ddprof/build.gradle | 2 +- .../profiling-controller-jfr/build.gradle | 2 +- .../implementation/build.gradle | 2 +- .../profiling-controller-openjdk/build.gradle | 2 +- .../profiling-controller-oracle/build.gradle | 2 +- .../aerospike-4.0/build.gradle | 4 ++-- .../akka-http/akka-http-10.0/build.gradle | 2 +- .../armeria/armeria-jetty-1.24/build.gradle | 2 +- .../instrumentation/avro/build.gradle | 2 +- .../instrumentation/axis2-1.3/build.gradle | 4 ++-- .../classloading/jboss-testing/build.gradle | 2 +- .../instrumentation/cxf-2.1/build.gradle | 4 ++-- .../datastax-cassandra-3.0/build.gradle | 2 +- .../datastax-cassandra-3.8/build.gradle | 2 +- .../datastax-cassandra-4.0/build.gradle | 2 +- .../elasticsearch/rest-5/build.gradle | 2 +- .../elasticsearch/transport-2/build.gradle | 2 +- .../elasticsearch/transport-5/build.gradle | 2 +- .../exception-profiling/build.gradle | 2 +- .../glassfish-3.0/build.gradle | 2 +- .../graphql-java-20.0/build.gradle | 2 +- .../instrumentation/ignite-2.0/build.gradle | 4 ++-- .../instrumentation/jakarta-jms/build.gradle | 2 +- .../java-concurrent-21.0/build.gradle | 2 +- .../java-lang/java-lang-11.0/build.gradle | 2 +- .../java-lang/java-lang-15.0/build.gradle | 2 +- .../java-lang/java-lang-17.0/build.gradle | 2 +- .../java/java-lang/java-lang-9.0/build.gradle | 2 +- .../java/java-nio-1.8/build.gradle | 2 +- .../instrumentation/jdbc/build.gradle | 2 +- .../instrumentation/jersey/build.gradle | 2 +- .../junit/junit-5.3/build.gradle | 2 +- .../junit/junit-5.3/junit-5.8/build.gradle | 2 +- .../instrumentation/karate/build.gradle | 2 +- .../log4j/log4j-1.2.4/build.gradle | 2 +- .../instrumentation/mule-4.5/build.gradle | 6 +++--- .../netty/netty-3.8/build.gradle | 2 +- .../netty/netty-4.0/build.gradle | 2 +- .../play/play-2.3/build.gradle | 2 +- .../play/play-2.4/build.gradle | 2 +- .../play/play-2.6/build.gradle | 2 +- .../instrumentation/quartz-2.0/build.gradle | 4 ++-- .../resilience4j-2.0/build.gradle | 2 +- .../resilience4j-reactor-2.0/build.gradle | 2 +- .../instrumentation/rmi/build.gradle | 2 +- .../instrumentation/selenium/build.gradle | 2 +- .../servicetalk-0.42.56/build.gradle | 2 +- .../spark-executor/build.gradle | 2 +- .../spark/spark_2.12/build.gradle | 2 +- .../spark/spark_2.13/build.gradle | 2 +- .../spring/spring-boot-1.3/build.gradle | 8 ++++---- .../spring/spring-data-1.8/build.gradle | 2 +- .../spring/spring-messaging-4.0/build.gradle | 2 +- .../spring/spring-scheduling-3.1/build.gradle | 6 +++--- .../spring-security-6.0/build.gradle | 2 +- .../spring-webflux-6.0/build.gradle | 2 +- .../testng/testng-7/build.gradle | 2 +- .../tomcat/tomcat-5.5/build.gradle | 8 ++++---- .../undertow/undertow-2.2/build.gradle | 4 ++-- .../vertx-web/vertx-web-3.4/build.gradle | 2 +- .../vertx-web/vertx-web-3.5/build.gradle | 2 +- .../vertx-web/vertx-web-3.9/build.gradle | 2 +- .../vertx-web/vertx-web-4.0/build.gradle | 6 +++--- .../vertx-web/vertx-web-5.0/build.gradle | 2 +- .../jakarta-websocket-2.0/build.gradle | 4 ++-- .../jetty-websocket-11/build.gradle | 2 +- .../jetty-websocket-12/build.gradle | 2 +- .../instrumentation/wildfly-9.0/build.gradle | 6 +++--- .../appsec/springboot-grpc/build.gradle | 2 +- dd-smoke-tests/armeria-grpc/build.gradle | 2 +- .../concurrent/java-21/build.gradle | 2 +- .../concurrent/java-25/build.gradle | 2 +- dd-smoke-tests/crashtracking/build.gradle | 2 +- dd-smoke-tests/jboss-modules/build.gradle | 2 +- dd-smoke-tests/kafka-3/build.gradle | 2 +- dd-smoke-tests/play-2.4/build.gradle | 2 +- dd-smoke-tests/play-2.5/build.gradle | 2 +- dd-smoke-tests/play-2.6/build.gradle | 2 +- dd-smoke-tests/play-2.7/build.gradle | 2 +- .../profiling-integration-tests/build.gradle | 2 +- dd-smoke-tests/quarkus/build.gradle | 2 +- dd-smoke-tests/rum/tomcat-10/build.gradle | 2 +- dd-smoke-tests/rum/tomcat-11/build.gradle | 2 +- dd-smoke-tests/rum/wildfly-15/build.gradle | 2 +- .../spring-boot-3.0-webflux/build.gradle | 2 +- .../spring-boot-3.0-webmvc/build.gradle | 2 +- .../spring-boot-3.3-webmvc/build.gradle | 2 +- dd-smoke-tests/spring-security/build.gradle | 2 +- dd-smoke-tests/springboot-grpc/build.gradle | 2 +- .../springboot-java-11/build.gradle | 2 +- .../springboot-java-17/build.gradle | 2 +- dd-smoke-tests/springboot/build.gradle | 2 +- dd-smoke-tests/wildfly/build.gradle | 2 +- 96 files changed, 131 insertions(+), 129 deletions(-) diff --git a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts index 18a5ecfee60..aa4724183b0 100644 --- a/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.test-jvm-contraints.gradle.kts @@ -1,5 +1,6 @@ import datadog.gradle.plugin.testJvmConstraints.ProvideJvmArgsOnJvmLauncherVersion import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension +import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension.Companion.TEST_JVM_CONSTRAINTS import datadog.gradle.plugin.testJvmConstraints.TestJvmSpec import datadog.gradle.plugin.testJvmConstraints.isJavaVersionAllowed import datadog.gradle.plugin.testJvmConstraints.isTestJvmAllowed @@ -8,12 +9,12 @@ plugins { java } -val projectExtension = extensions.create(TestJvmConstraintsExtension.NAME) +val projectExtension = extensions.create(TEST_JVM_CONSTRAINTS) val testJvmSpec = TestJvmSpec(project) tasks.withType().configureEach { - if (extensions.findByName(TestJvmConstraintsExtension.NAME) != null) { + if (extensions.findByName(TEST_JVM_CONSTRAINTS) != null) { return@configureEach } @@ -23,14 +24,14 @@ tasks.withType().configureEach { configureConventions(it, projectExtension) } - inputs.property("${TestJvmConstraintsExtension.NAME}.allowReflectiveAccessToJdk", taskExtension.allowReflectiveAccessToJdk).optional(true) - inputs.property("${TestJvmConstraintsExtension.NAME}.excludeJdk", taskExtension.excludeJdk) - inputs.property("${TestJvmConstraintsExtension.NAME}.includeJdk", taskExtension.includeJdk) - inputs.property("${TestJvmConstraintsExtension.NAME}.forceJdk", taskExtension.forceJdk) - inputs.property("${TestJvmConstraintsExtension.NAME}.minJavaVersion", taskExtension.minJavaVersion).optional(true) - inputs.property("${TestJvmConstraintsExtension.NAME}.maxJavaVersion", taskExtension.maxJavaVersion).optional(true) + inputs.property("$TEST_JVM_CONSTRAINTS.allowReflectiveAccessToJdk", taskExtension.allowReflectiveAccessToJdk).optional(true) + inputs.property("$TEST_JVM_CONSTRAINTS.excludeJdk", taskExtension.excludeJdk) + inputs.property("$TEST_JVM_CONSTRAINTS.includeJdk", taskExtension.includeJdk) + inputs.property("$TEST_JVM_CONSTRAINTS.forceJdk", taskExtension.forceJdk) + inputs.property("$TEST_JVM_CONSTRAINTS.minJavaVersion", taskExtension.minJavaVersion).optional(true) + inputs.property("$TEST_JVM_CONSTRAINTS.maxJavaVersion", taskExtension.maxJavaVersion).optional(true) - extensions.add(TestJvmConstraintsExtension.NAME, taskExtension) + extensions.add(TEST_JVM_CONSTRAINTS, taskExtension) configureTestJvm(taskExtension) } diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt index 9631822c623..03b8c533d61 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsExtension.kt @@ -31,12 +31,13 @@ interface TestJvmConstraintsExtension { val excludeJdk: ListProperty /** - * Indicate if test jvm allows reflective access to JDK modules, in particular this toggle - * openning `java.base/java.lang` and `java.base/java.util`. + * Indicate if the test JVM allows reflective access to JDK + * `java.base/java.lang` and `java.base/java.util` modules by + * openning them. */ val allowReflectiveAccessToJdk: Property companion object { - const val NAME = "testJvmConstraint" + const val TEST_JVM_CONSTRAINTS = "testJvmConstraints" } } diff --git a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt index 6ab8c806715..7df6a10d6ea 100644 --- a/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt +++ b/buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsUtils.kt @@ -6,7 +6,7 @@ import org.gradle.api.logging.Logging private val logger = Logging.getLogger("TestJvmConstraintsUtils") internal fun TestJvmConstraintsExtension.isJavaVersionAllowed(version: JavaVersion): Boolean { - return isWithinAllowedRange(version) + return withinAllowedRange(version) } internal fun TestJvmConstraintsExtension.isTestJvmAllowed(testJvmSpec: TestJvmSpec): Boolean { @@ -23,14 +23,14 @@ internal fun TestJvmConstraintsExtension.isTestJvmAllowed(testJvmSpec: TestJvmSp } val launcherVersion = JavaVersion.toVersion(testJvmSpec.javaTestLauncher.get().metadata.languageVersion.asInt()) - if (!isWithinAllowedRange(launcherVersion) && forceJdk.get().none { it.equals(testJvmName, ignoreCase = true) }) { + if (!withinAllowedRange(launcherVersion) && forceJdk.get().none { it.equals(testJvmName, ignoreCase = true) }) { return false } return true } -private fun TestJvmConstraintsExtension.isWithinAllowedRange(currentJvmVersion: JavaVersion): Boolean { +private fun TestJvmConstraintsExtension.withinAllowedRange(currentJvmVersion: JavaVersion): Boolean { val definedMin = minJavaVersion.isPresent val definedMax = maxJavaVersion.isPresent diff --git a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle index 73daac9e1a0..b5247ed57d7 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle @@ -9,7 +9,7 @@ tracerJava { } } -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 excludeJdk = ['SEMERU11', 'SEMERU17'] } diff --git a/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle index 53db41222eb..4e72e59a468 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle @@ -3,7 +3,7 @@ import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' -testJvmConstraint { +testJvmConstraints { // the tests need Java 11 because the JFR writer got compiled with a version // of ByteBuffer.position(int) which is binary incompatible with Java 8 ¯\_(ツ)_/¯ minJavaVersion = JavaVersion.VERSION_11 diff --git a/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle index 66709882492..f7bc01b78d3 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-jfr/implementation/build.gradle @@ -4,7 +4,7 @@ import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_1_8 } diff --git a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle index 949fad86c06..61c9e9a57bf 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle @@ -9,7 +9,7 @@ tracerJava { } } -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 // Zulu has backported profiling support forceJdk = ['ZULU8'] diff --git a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle index 750ef5341ba..8b6d7725eff 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle @@ -27,7 +27,7 @@ dependencies { // Oracle JDK requires extra JVM arguments to enable JFR tasks.withType(Test).configureEach { - testJvmConstraint { + testJvmConstraints { includeJdk = ['ORACLE8'] } diff --git a/dd-java-agent/instrumentation/aerospike-4.0/build.gradle b/dd-java-agent/instrumentation/aerospike-4.0/build.gradle index c3c5ce7b03c..f38182ab4bd 100644 --- a/dd-java-agent/instrumentation/aerospike-4.0/build.gradle +++ b/dd-java-agent/instrumentation/aerospike-4.0/build.gradle @@ -15,13 +15,13 @@ addTestSuiteExtendingForDir("latestDepForkedTest", "latestDepTest", "test") addTestSuiteExtendingForDir("latest7DepForkedTest", "latest7DepTest", "test") tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_21 } } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_21 } } 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 3aea0ce4073..5afa238bf1e 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 @@ -18,7 +18,7 @@ addTestSuiteForDir 'version102IastTest', 'iastTest' addTestSuiteForDir 'latestDepIastTest', 'iastTest' tasks.named("lagomTest", Test) { - testJvmConstraint { + testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_1_8 } } 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 16ce7f9bd2f..a6d48152bea 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 @@ -22,7 +22,7 @@ addTestSuiteExtendingForDir("jetty9LatestDepTest", "latestDepTest", "test/jetty9 addTestSuiteExtendingForDir("jetty11LatestDepTest", "latestDepTest", "test/jetty11") tasks.named("jetty11Test", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/avro/build.gradle b/dd-java-agent/instrumentation/avro/build.gradle index 36ade375e20..722a20f65d7 100644 --- a/dd-java-agent/instrumentation/avro/build.gradle +++ b/dd-java-agent/instrumentation/avro/build.gradle @@ -13,7 +13,7 @@ addTestSuiteForDir('latestDepTest','test') addTestSuiteForDir('latestDepTest8','test') tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/axis2-1.3/build.gradle b/dd-java-agent/instrumentation/axis2-1.3/build.gradle index 585dec45da3..5eea1ed11ea 100644 --- a/dd-java-agent/instrumentation/axis2-1.3/build.gradle +++ b/dd-java-agent/instrumentation/axis2-1.3/build.gradle @@ -12,13 +12,13 @@ addTestSuiteForDir('latestDepTest', 'test') addTestSuiteForDir('latestDepForkedTest', 'test') tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle b/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle index 6f66847312b..a3010be54ba 100644 --- a/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle +++ b/dd-java-agent/instrumentation/classloading/jboss-testing/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of jboss-modules doesn't support Java 17 // __redirected.__SAXParserFactory can't access com.sun.org.apache.xerces.internal.jaxp maxJavaVersion = JavaVersion.VERSION_15 diff --git a/dd-java-agent/instrumentation/cxf-2.1/build.gradle b/dd-java-agent/instrumentation/cxf-2.1/build.gradle index ff0a56cc53e..fe38238428e 100644 --- a/dd-java-agent/instrumentation/cxf-2.1/build.gradle +++ b/dd-java-agent/instrumentation/cxf-2.1/build.gradle @@ -20,13 +20,13 @@ addTestSuite('latestDepTest') addTestSuiteForDir('cxf3LatestDepTest', 'test') tasks.named("cxf3LatestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } 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 7eb0fa13a88..b73a58600ba 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 @@ -39,7 +39,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.) maxJavaVersion = JavaVersion.VERSION_1_8 } 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 f9e18660380..6a120339d29 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 @@ -14,7 +14,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.) maxJavaVersion = JavaVersion.VERSION_1_8 } 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 84ecae902cf..540070f1560 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 @@ -9,7 +9,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: The embedded cassandra deadlocks on start every time on Java 17 // This can be changed to use test-containers maxJavaVersion = JavaVersion.VERSION_15 diff --git a/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle b/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle index 9f6a00ee876..2b2b8ed6202 100644 --- a/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/rest-5/build.gradle @@ -17,7 +17,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: The embedded elastic search server doesn't work on Java 17 // This can be changed to use test-containers maxJavaVersion = JavaVersion.VERSION_15 diff --git a/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle b/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle index 4cdc2b6b638..1e164843304 100644 --- a/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/transport-2/build.gradle @@ -10,7 +10,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_1_8 } diff --git a/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle b/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle index 5eee77b656d..d005ef4fc19 100644 --- a/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle +++ b/dd-java-agent/instrumentation/elasticsearch/transport-5/build.gradle @@ -17,7 +17,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: The embedded elastic search server doesn't work on Java 17 // This can be changed to use test-containers maxJavaVersion = JavaVersion.VERSION_15 diff --git a/dd-java-agent/instrumentation/exception-profiling/build.gradle b/dd-java-agent/instrumentation/exception-profiling/build.gradle index 7e77bed70e9..a19ca1ab9a3 100644 --- a/dd-java-agent/instrumentation/exception-profiling/build.gradle +++ b/dd-java-agent/instrumentation/exception-profiling/build.gradle @@ -9,7 +9,7 @@ tracerJava { } } -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 // Zulu has backported profiling support forceJdk = ['ZULU8'] diff --git a/dd-java-agent/instrumentation/glassfish-3.0/build.gradle b/dd-java-agent/instrumentation/glassfish-3.0/build.gradle index 91b481b4d59..d0b8809e048 100644 --- a/dd-java-agent/instrumentation/glassfish-3.0/build.gradle +++ b/dd-java-agent/instrumentation/glassfish-3.0/build.gradle @@ -10,7 +10,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_1_8 } diff --git a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle index 500808629ef..9d5de093a22 100644 --- a/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle +++ b/dd-java-agent/instrumentation/graphql-java/graphql-java-20.0/build.gradle @@ -70,7 +70,7 @@ tasks.matching { "graphql21LatestDepForkedTest" ] }.configureEach { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/ignite-2.0/build.gradle b/dd-java-agent/instrumentation/ignite-2.0/build.gradle index 50ede890db1..fa0b19807a4 100644 --- a/dd-java-agent/instrumentation/ignite-2.0/build.gradle +++ b/dd-java-agent/instrumentation/ignite-2.0/build.gradle @@ -15,7 +15,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // See https://ignite.apache.org/docs/latest/quick-start/java#running-ignite-with-java-11-or-later // FIXME: Because of this condition, tests only run in Java 8, and latestDepTest never run, as they require Java 11+. maxJavaVersion = JavaVersion.VERSION_1_8 @@ -48,7 +48,7 @@ for (taskName in ['compileLatestDepTestGroovy', 'compileLatestDepForkedTestGroov for (taskName in ['latestDepTest', 'latestDepForkedTest']) { tasks.named(taskName, Test) { - testJvmConstraint { + testJvmConstraints { // ignite 2.17.0+ requires Java 11+ minJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-java-agent/instrumentation/jakarta-jms/build.gradle b/dd-java-agent/instrumentation/jakarta-jms/build.gradle index 7bc7081cae4..4f89b32560e 100644 --- a/dd-java-agent/instrumentation/jakarta-jms/build.gradle +++ b/dd-java-agent/instrumentation/jakarta-jms/build.gradle @@ -11,7 +11,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle b/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle index 5e345396523..3fcbb72c79a 100644 --- a/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-21.0/build.gradle @@ -3,7 +3,7 @@ apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/slf4j-simple.gradle" apply plugin: 'idea' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_21 // Structured concurrency is a preview feature in Java 21. Methods (e.g. ShutdownOnFailure) used in this instrumentation test are no longer available in Java 25, so we set the max version to 24. // See: https://download.java.net/java/early_access/loom/docs/api/java.base/java/util/concurrent/StructuredTaskScope.html diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle index 8bec615cd37..53873c28f86 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-11.0/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle index d7721a65bca..73a218b252a 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-15.0/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle index ed3d6112b8b..e2c2cfab886 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-17.0/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle b/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle index 8d59355ee4b..b2322afb210 100644 --- a/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle +++ b/dd-java-agent/instrumentation/java/java-lang/java-lang-9.0/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'call-site-instrumentation' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_1_9 } diff --git a/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle b/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle index f28fde3a973..95ad5f62575 100644 --- a/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle +++ b/dd-java-agent/instrumentation/java/java-nio-1.8/build.gradle @@ -11,7 +11,7 @@ tracerJava { addSourceSetFor(JavaVersion.VERSION_11) } -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 excludeJdk = ['SEMERU11', 'SEMERU17'] } diff --git a/dd-java-agent/instrumentation/jdbc/build.gradle b/dd-java-agent/instrumentation/jdbc/build.gradle index 1aeb3d1965f..cfe3404350d 100644 --- a/dd-java-agent/instrumentation/jdbc/build.gradle +++ b/dd-java-agent/instrumentation/jdbc/build.gradle @@ -97,7 +97,7 @@ tasks.withType(Test).configureEach { } tasks.named("latestDepJava11Test", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/jersey/build.gradle b/dd-java-agent/instrumentation/jersey/build.gradle index 88df73d6974..84880a64e37 100644 --- a/dd-java-agent/instrumentation/jersey/build.gradle +++ b/dd-java-agent/instrumentation/jersey/build.gradle @@ -9,7 +9,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle index d3f4629e1c1..53e44768b4e 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle @@ -64,7 +64,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle index 3ab1908c6c1..b8a82ac35d1 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle @@ -58,7 +58,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/karate/build.gradle b/dd-java-agent/instrumentation/karate/build.gradle index 554e73ff277..9f2f52b56ec 100644 --- a/dd-java-agent/instrumentation/karate/build.gradle +++ b/dd-java-agent/instrumentation/karate/build.gradle @@ -82,7 +82,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { tasks.named("latestDepTest", Test) { // karate 1.4.0+ requires Java 11 or higher. - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle b/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle index 0b2759d6d79..38ec3084caf 100644 --- a/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle +++ b/dd-java-agent/instrumentation/log4j/log4j-1.2.4/build.gradle @@ -13,7 +13,7 @@ configurations { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // Log4j 1.x reached EOL in 2015 and is not compatible with Java 25+: https://endoflife.date/log4j maxJavaVersion = JavaVersion.VERSION_24 } diff --git a/dd-java-agent/instrumentation/mule-4.5/build.gradle b/dd-java-agent/instrumentation/mule-4.5/build.gradle index a1a83b4d2de..0962a6bfe51 100644 --- a/dd-java-agent/instrumentation/mule-4.5/build.gradle +++ b/dd-java-agent/instrumentation/mule-4.5/build.gradle @@ -107,7 +107,7 @@ tasks.named("forbiddenApisMain_java11") { } tasks.named("forkedTest", Test) { - testJvmConstraint { + testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_11 } } @@ -130,13 +130,13 @@ tasks.named("compileLatestDepForkedTestJava", JavaCompile) { } tasks.named("mule46ForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 maxJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle b/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle index 08a64a9c9eb..a720bebf57f 100644 --- a/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-3.8/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_1_8 } 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 edd1849f100..e682fda1db6 100644 --- a/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle +++ b/dd-java-agent/instrumentation/netty/netty-4.0/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // asynchttpclient is not compatible with Java 11 maxJavaVersion = JavaVersion.VERSION_1_8 } diff --git a/dd-java-agent/instrumentation/play/play-2.3/build.gradle b/dd-java-agent/instrumentation/play/play-2.3/build.gradle index db3a1389a5a..2a8c92f24b4 100644 --- a/dd-java-agent/instrumentation/play/play-2.3/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.3/build.gradle @@ -21,7 +21,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // Play doesn't work with Java 9+ until 2.6.12 maxJavaVersion = JavaVersion.VERSION_1_8 } diff --git a/dd-java-agent/instrumentation/play/play-2.4/build.gradle b/dd-java-agent/instrumentation/play/play-2.4/build.gradle index 7fd452d0d32..68b42f934fb 100644 --- a/dd-java-agent/instrumentation/play/play-2.4/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.4/build.gradle @@ -32,7 +32,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' -testJvmConstraint { +testJvmConstraints { // Play doesn't work with Java 9+ until 2.6.12 maxJavaVersion = JavaVersion.VERSION_1_8 } diff --git a/dd-java-agent/instrumentation/play/play-2.6/build.gradle b/dd-java-agent/instrumentation/play/play-2.6/build.gradle index 18b4d4ab8e6..bdb345d763c 100644 --- a/dd-java-agent/instrumentation/play/play-2.6/build.gradle +++ b/dd-java-agent/instrumentation/play/play-2.6/build.gradle @@ -50,7 +50,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' -testJvmConstraint { +testJvmConstraints { // Play doesn't work with Java 9+ until 2.6.12 maxJavaVersion = JavaVersion.VERSION_1_8 } diff --git a/dd-java-agent/instrumentation/quartz-2.0/build.gradle b/dd-java-agent/instrumentation/quartz-2.0/build.gradle index dbed6431583..9441bcc62f3 100644 --- a/dd-java-agent/instrumentation/quartz-2.0/build.gradle +++ b/dd-java-agent/instrumentation/quartz-2.0/build.gradle @@ -39,13 +39,13 @@ dependencies { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("version40Test", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle b/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle index 917868ef6a2..ff081421509 100644 --- a/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle +++ b/dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle b/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle index ecc7121aabc..7646b953751 100644 --- a/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle +++ b/dd-java-agent/instrumentation/resilience4j/resilience4j-reactor-2.0/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'idea' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/rmi/build.gradle b/dd-java-agent/instrumentation/rmi/build.gradle index 6e5670b3377..5b1b5b01e5f 100644 --- a/dd-java-agent/instrumentation/rmi/build.gradle +++ b/dd-java-agent/instrumentation/rmi/build.gradle @@ -6,7 +6,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: The necessary packages are not opened on Java 17 maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-java-agent/instrumentation/selenium/build.gradle b/dd-java-agent/instrumentation/selenium/build.gradle index f3c992f7a86..6a9b20224c2 100644 --- a/dd-java-agent/instrumentation/selenium/build.gradle +++ b/dd-java-agent/instrumentation/selenium/build.gradle @@ -43,7 +43,7 @@ tasks.named("compileLatestDepTestJava", JavaCompile) { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle b/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle index c9bcbbd142a..d8daf9a0c5b 100644 --- a/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle +++ b/dd-java-agent/instrumentation/servicetalk/servicetalk-0.42.56/build.gradle @@ -18,7 +18,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-java-agent/instrumentation/spark-executor/build.gradle b/dd-java-agent/instrumentation/spark-executor/build.gradle index c8dc975a176..2bee9db2042 100644 --- a/dd-java-agent/instrumentation/spark-executor/build.gradle +++ b/dd-java-agent/instrumentation/spark-executor/build.gradle @@ -22,7 +22,7 @@ addTestSuite('baseTest') addTestSuiteForDir('latest212DepTest', 'baseTest') addTestSuiteForDir('latest213DepTest', 'baseTest') -testJvmConstraint { +testJvmConstraints { // Hadoop does not behave correctly with OpenJ9 https://issues.apache.org/jira/browse/HADOOP-18174 excludeJdk = ['SEMERU8', 'SEMERU11'] diff --git a/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle b/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle index 3b768fb60b4..3dfeaa0ce6a 100644 --- a/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle +++ b/dd-java-agent/instrumentation/spark/spark_2.12/build.gradle @@ -22,7 +22,7 @@ addTestSuiteForDir('latestDepTest', 'test') addTestSuite('test_spark24') addTestSuite('test_spark32') -testJvmConstraint { +testJvmConstraints { // Hadoop does not behave correctly with OpenJ9 https://issues.apache.org/jira/browse/HADOOP-18174 excludeJdk = ['SEMERU8', 'SEMERU11'] diff --git a/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle b/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle index 448f1f21647..143a36be810 100644 --- a/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle +++ b/dd-java-agent/instrumentation/spark/spark_2.13/build.gradle @@ -25,7 +25,7 @@ apply from: "$rootDir/gradle/java.gradle" addTestSuiteForDir('latestDepTest', 'test') addTestSuite('test_spark32') -testJvmConstraint { +testJvmConstraints { // Hadoop does not behave correctly with OpenJ9 https://issues.apache.org/jira/browse/HADOOP-18174 // Hadoop 3.3.1 (used by spark 3.2) does not support IBM java https://issues.apache.org/jira/browse/HADOOP-17971 excludeJdk = ['SEMERU8', 'SEMERU11', 'IBM8'] diff --git a/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle b/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle index 7ce79de521b..26dd765c94b 100644 --- a/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-boot-1.3/build.gradle @@ -47,25 +47,25 @@ dependencies { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("boot3Test", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("boot3ForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle b/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle index a9f5ab21fce..bd4060b5ca9 100644 --- a/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-data-1.8/build.gradle @@ -22,7 +22,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of spring-data doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle index 3a9870ea313..62a7ba60400 100644 --- a/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-messaging-4.0/build.gradle @@ -9,7 +9,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle b/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle index d6b470cbbdf..03b31be626a 100644 --- a/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-scheduling-3.1/build.gradle @@ -72,19 +72,19 @@ dependencies { } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("spring6Test", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle b/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle index 6d143a3decd..e271c5ad55c 100644 --- a/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle +++ b/dd-java-agent/instrumentation/spring/spring-security/spring-security-6.0/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } 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 0e4ccd72fcb..74aa20688cd 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,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/testng/testng-7/build.gradle b/dd-java-agent/instrumentation/testng/testng-7/build.gradle index 01f585d7555..3f87f21d0d0 100644 --- a/dd-java-agent/instrumentation/testng/testng-7/build.gradle +++ b/dd-java-agent/instrumentation/testng/testng-7/build.gradle @@ -26,7 +26,7 @@ addTestSuiteForDir('latestDepTest', 'test') tasks.named("latestDepTest", Test) { // testng 7.6.0+ requires Java 11 or higher. - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle index 8fa83619d2d..4263aff25f6 100644 --- a/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle +++ b/dd-java-agent/instrumentation/tomcat/tomcat-5.5/build.gradle @@ -162,25 +162,25 @@ tasks.withType(Test).configureEach { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } tasks.named("latest10Test", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latest10ForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } diff --git a/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle b/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle index 20271ab0770..e3abc5e9c39 100644 --- a/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle +++ b/dd-java-agent/instrumentation/undertow/undertow-2.2/build.gradle @@ -47,13 +47,13 @@ dependencies { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } } 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 87c72d86bb7..693d1b95156 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,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of vertx-web doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } 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 800c82b39e0..8d19a8c1654 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,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of vertx-web doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } 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 3e81fd85c04..ca486c2a54a 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,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of vertx-web doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } 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 fd94e175c3a..ac2a06fce43 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,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // vertx-web doesn't support Java 17 until v4.2 maxJavaVersion = JavaVersion.VERSION_15 } @@ -64,14 +64,14 @@ dependencies { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 maxJavaVersion = JavaVersion.VERSION_25 } } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 maxJavaVersion = JavaVersion.VERSION_25 } 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 08ee01eaefc..cc9336fd588 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 @@ -4,7 +4,7 @@ tracerJava { addSourceSetFor(JavaVersion.VERSION_11) } -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle b/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle index ee32984f314..98c3921acfd 100644 --- a/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jakarta-websocket-2.0/build.gradle @@ -10,7 +10,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } @@ -26,7 +26,7 @@ dependencies { } tasks.named('latestDepTest', Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } } diff --git a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle index 9f824b32c24..1084b4e40c4 100644 --- a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-11/build.gradle @@ -11,7 +11,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle index 8813f7e985c..61410c1688a 100644 --- a/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle +++ b/dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-12/build.gradle @@ -24,7 +24,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle index b265325998d..593826276fd 100644 --- a/dd-java-agent/instrumentation/wildfly-9.0/build.gradle +++ b/dd-java-agent/instrumentation/wildfly-9.0/build.gradle @@ -16,7 +16,7 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } @@ -108,7 +108,7 @@ tasks.named("forkedTest", Test) { } tasks.named("latestDepTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } dependsOn 'extractLatestWildfly' @@ -171,7 +171,7 @@ tasks.named("forkedTest", Test) { } tasks.named("latestDepForkedTest", Test) { - testJvmConstraint { + testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } jvmArgumentProviders.add( diff --git a/dd-smoke-tests/appsec/springboot-grpc/build.gradle b/dd-smoke-tests/appsec/springboot-grpc/build.gradle index e00e38e5543..2bf39be910c 100644 --- a/dd-smoke-tests/appsec/springboot-grpc/build.gradle +++ b/dd-smoke-tests/appsec/springboot-grpc/build.gradle @@ -6,7 +6,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of spring-boot doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-smoke-tests/armeria-grpc/build.gradle b/dd-smoke-tests/armeria-grpc/build.gradle index 51fdf76da9e..de48e239cb1 100644 --- a/dd-smoke-tests/armeria-grpc/build.gradle +++ b/dd-smoke-tests/armeria-grpc/build.gradle @@ -4,7 +4,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-smoke-tests/concurrent/java-21/build.gradle b/dd-smoke-tests/concurrent/java-21/build.gradle index 7e7ed8ad7f4..35fadfa2a29 100644 --- a/dd-smoke-tests/concurrent/java-21/build.gradle +++ b/dd-smoke-tests/concurrent/java-21/build.gradle @@ -7,7 +7,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_21 maxJavaVersion = JavaVersion.VERSION_25 } diff --git a/dd-smoke-tests/concurrent/java-25/build.gradle b/dd-smoke-tests/concurrent/java-25/build.gradle index 27a65676239..c77993038a5 100644 --- a/dd-smoke-tests/concurrent/java-25/build.gradle +++ b/dd-smoke-tests/concurrent/java-25/build.gradle @@ -7,7 +7,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // This smoke test should be limited to Java 25 and above // But the groovy testing framework cannot run on Java 25 // Using Java 8 for now and runs a JVM 25 when forking tests process. diff --git a/dd-smoke-tests/crashtracking/build.gradle b/dd-smoke-tests/crashtracking/build.gradle index 7466c74bbd2..9ce1f54afa2 100644 --- a/dd-smoke-tests/crashtracking/build.gradle +++ b/dd-smoke-tests/crashtracking/build.gradle @@ -6,7 +6,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { excludeJdk = ['IBM8'] } diff --git a/dd-smoke-tests/jboss-modules/build.gradle b/dd-smoke-tests/jboss-modules/build.gradle index f984854a870..e8c85649ab1 100644 --- a/dd-smoke-tests/jboss-modules/build.gradle +++ b/dd-smoke-tests/jboss-modules/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" description = 'JBoss Modules Smoke Tests.' -testJvmConstraint { +testJvmConstraints { // see https://datadoghq.atlassian.net/wiki/x/H4S2NQE excludeJdk = ['IBM8'] } diff --git a/dd-smoke-tests/kafka-3/build.gradle b/dd-smoke-tests/kafka-3/build.gradle index fb812f69987..cf5a20cf33b 100644 --- a/dd-smoke-tests/kafka-3/build.gradle +++ b/dd-smoke-tests/kafka-3/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootDir/gradle/java.gradle" apply plugin: 'java-test-fixtures' -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-smoke-tests/play-2.4/build.gradle b/dd-smoke-tests/play-2.4/build.gradle index 18420fd742f..1a0de08b58b 100644 --- a/dd-smoke-tests/play-2.4/build.gradle +++ b/dd-smoke-tests/play-2.4/build.gradle @@ -4,7 +4,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of play doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-smoke-tests/play-2.5/build.gradle b/dd-smoke-tests/play-2.5/build.gradle index 26ad9ae45ea..f0e71773b3a 100644 --- a/dd-smoke-tests/play-2.5/build.gradle +++ b/dd-smoke-tests/play-2.5/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of play doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-smoke-tests/play-2.6/build.gradle b/dd-smoke-tests/play-2.6/build.gradle index d29558c97e9..2d95b942697 100644 --- a/dd-smoke-tests/play-2.6/build.gradle +++ b/dd-smoke-tests/play-2.6/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of play doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-smoke-tests/play-2.7/build.gradle b/dd-smoke-tests/play-2.7/build.gradle index b38d73f3ce6..32001a18e7e 100644 --- a/dd-smoke-tests/play-2.7/build.gradle +++ b/dd-smoke-tests/play-2.7/build.gradle @@ -5,7 +5,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/dd-smoke-tests/play-common/fix-play-routes.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of play doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-smoke-tests/profiling-integration-tests/build.gradle b/dd-smoke-tests/profiling-integration-tests/build.gradle index 6755bde3d26..cdab8646de2 100644 --- a/dd-smoke-tests/profiling-integration-tests/build.gradle +++ b/dd-smoke-tests/profiling-integration-tests/build.gradle @@ -6,7 +6,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { excludeJdk = ['IBM8'] } diff --git a/dd-smoke-tests/quarkus/build.gradle b/dd-smoke-tests/quarkus/build.gradle index 25e3d6cb27a..061140ddcc8 100644 --- a/dd-smoke-tests/quarkus/build.gradle +++ b/dd-smoke-tests/quarkus/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // Quarkus is only supported up to Java 21: https://github.com/quarkusio/quarkus maxJavaVersion = JavaVersion.VERSION_21 } diff --git a/dd-smoke-tests/rum/tomcat-10/build.gradle b/dd-smoke-tests/rum/tomcat-10/build.gradle index 396c0bb8a25..4c4202f65de 100644 --- a/dd-smoke-tests/rum/tomcat-10/build.gradle +++ b/dd-smoke-tests/rum/tomcat-10/build.gradle @@ -6,7 +6,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-smoke-tests/rum/tomcat-11/build.gradle b/dd-smoke-tests/rum/tomcat-11/build.gradle index d2407f96318..6db96af2a51 100644 --- a/dd-smoke-tests/rum/tomcat-11/build.gradle +++ b/dd-smoke-tests/rum/tomcat-11/build.gradle @@ -6,7 +6,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-smoke-tests/rum/wildfly-15/build.gradle b/dd-smoke-tests/rum/wildfly-15/build.gradle index 2237d9afb7b..bbdde991903 100644 --- a/dd-smoke-tests/rum/wildfly-15/build.gradle +++ b/dd-smoke-tests/rum/wildfly-15/build.gradle @@ -22,7 +22,7 @@ repositories { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle b/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle index c9e7e9c87c6..6e03a501e58 100644 --- a/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle +++ b/dd-smoke-tests/spring-boot-3.0-webflux/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle b/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle index 5a244180280..f66474ba3af 100644 --- a/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle +++ b/dd-smoke-tests/spring-boot-3.0-webmvc/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle b/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle index da870c2c256..d05f62e7e46 100644 --- a/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle +++ b/dd-smoke-tests/spring-boot-3.3-webmvc/build.gradle @@ -1,6 +1,6 @@ apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-smoke-tests/spring-security/build.gradle b/dd-smoke-tests/spring-security/build.gradle index 40da5faafb4..2ebd9a22b5f 100644 --- a/dd-smoke-tests/spring-security/build.gradle +++ b/dd-smoke-tests/spring-security/build.gradle @@ -4,7 +4,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-smoke-tests/springboot-grpc/build.gradle b/dd-smoke-tests/springboot-grpc/build.gradle index 8c38e1b433f..e1e913266b1 100644 --- a/dd-smoke-tests/springboot-grpc/build.gradle +++ b/dd-smoke-tests/springboot-grpc/build.gradle @@ -7,7 +7,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { // TODO Java 17: This version of spring-boot doesn't support Java 17 maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-smoke-tests/springboot-java-11/build.gradle b/dd-smoke-tests/springboot-java-11/build.gradle index 7b5a582a4b8..380230df34b 100644 --- a/dd-smoke-tests/springboot-java-11/build.gradle +++ b/dd-smoke-tests/springboot-java-11/build.gradle @@ -9,7 +9,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_11 } diff --git a/dd-smoke-tests/springboot-java-17/build.gradle b/dd-smoke-tests/springboot-java-17/build.gradle index fd512120c56..541b0c29fd2 100644 --- a/dd-smoke-tests/springboot-java-17/build.gradle +++ b/dd-smoke-tests/springboot-java-17/build.gradle @@ -9,7 +9,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { minJavaVersion = JavaVersion.VERSION_17 } diff --git a/dd-smoke-tests/springboot/build.gradle b/dd-smoke-tests/springboot/build.gradle index 5cd3f548725..c19aa169476 100644 --- a/dd-smoke-tests/springboot/build.gradle +++ b/dd-smoke-tests/springboot/build.gradle @@ -7,7 +7,7 @@ plugins { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_15 } diff --git a/dd-smoke-tests/wildfly/build.gradle b/dd-smoke-tests/wildfly/build.gradle index 2fd2dd4f545..39d983e657d 100644 --- a/dd-smoke-tests/wildfly/build.gradle +++ b/dd-smoke-tests/wildfly/build.gradle @@ -22,7 +22,7 @@ repositories { apply from: "$rootDir/gradle/java.gradle" -testJvmConstraint { +testJvmConstraints { maxJavaVersion = JavaVersion.VERSION_11 }