diff --git a/buildSrc/src/main/groovy/InstrumentPlugin.groovy b/buildSrc/src/main/groovy/InstrumentPlugin.groovy index fed739a19e4..aba81035237 100644 --- a/buildSrc/src/main/groovy/InstrumentPlugin.groovy +++ b/buildSrc/src/main/groovy/InstrumentPlugin.groovy @@ -152,17 +152,16 @@ abstract class InstrumentTask extends DefaultTask { } private workQueue() { - if (this.javaVersion) { - def javaLauncher = this.javaToolchainService.launcherFor { spec -> - spec.languageVersion.set(JavaLanguageVersion.of(this.javaVersion)) - }.get() - return this.workerExecutor.processIsolation { spec -> - spec.forkOptions { fork -> - fork.executable = javaLauncher.executablePath - } + if (!this.javaVersion) { + this.javaVersion = "8" + } + def javaLauncher = this.javaToolchainService.launcherFor { spec -> + spec.languageVersion.set(JavaLanguageVersion.of(this.javaVersion)) + }.get() + return this.workerExecutor.processIsolation { spec -> + spec.forkOptions { fork -> + fork.executable = javaLauncher.executablePath } - } else { - return this.workerExecutor.noIsolation() } } } diff --git a/buildSrc/src/main/groovy/MuzzlePlugin.groovy b/buildSrc/src/main/groovy/MuzzlePlugin.groovy index bd37653f056..701f49592c6 100644 --- a/buildSrc/src/main/groovy/MuzzlePlugin.groovy +++ b/buildSrc/src/main/groovy/MuzzlePlugin.groovy @@ -715,18 +715,14 @@ abstract class MuzzleTask extends DefaultTask { Project instrumentationProject, MuzzleDirective muzzleDirective = null) { def workQueue - String javaVersion = muzzleDirective?.javaVersion - if (javaVersion) { - def javaLauncher = javaToolchainService.launcherFor { spec -> - spec.languageVersion.set(JavaLanguageVersion.of(javaVersion)) - }.get() - workQueue = workerExecutor.processIsolation { spec -> - spec.forkOptions { fork -> - fork.executable = javaLauncher.executablePath - } + String javaVersion = muzzleDirective?.javaVersion ?: "8" + def javaLauncher = javaToolchainService.launcherFor { spec -> + spec.languageVersion.set(JavaLanguageVersion.of(javaVersion)) + }.get() + workQueue = workerExecutor.processIsolation { spec -> + spec.forkOptions { fork -> + fork.executable = javaLauncher.executablePath } - } else { - workQueue = workerExecutor.noIsolation() } workQueue.submit(MuzzleAction.class, parameters -> { parameters.buildStartedTime.set(invocationDetails.buildStartedTime) diff --git a/dd-java-agent/agent-bootstrap/build.gradle b/dd-java-agent/agent-bootstrap/build.gradle index 47fcf1b0717..90e5c2fdc6b 100644 --- a/dd-java-agent/agent-bootstrap/build.gradle +++ b/dd-java-agent/agent-bootstrap/build.gradle @@ -4,14 +4,14 @@ plugins { id 'me.champeau.jmh' } -ext { - // need access to sun.* packages - skipSettingCompilerRelease = true -} - apply from: "$rootDir/gradle/java.gradle" apply plugin: "idea" +tasks.named("compileJava", JavaCompile).configure { + // need access to sun.* packages + setJavaVersion(it, 8) +} + // FIXME: Improve test coverage. minimumBranchCoverage = 0.0 minimumInstructionCoverage = 0.0 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 225a953ba80..87f3ccb14eb 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-ddprof/build.gradle @@ -4,8 +4,6 @@ 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 - // need access to jdk.jfr package - skipSettingCompilerRelease = true 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 6075335d867..e392722760f 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle @@ -4,9 +4,6 @@ ext { // of ByteBuffer.position(int) which is binary incompatible with Java 8 ¯\_(ツ)_/¯ minJavaVersionForTests = JavaVersion.VERSION_11 - // need access to jdk.jfr package - skipSettingCompilerRelease = true - 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 6ccd08bc284..58b36579a43 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,9 +1,6 @@ // Set properties before any plugins get loaded ext { minJavaVersionForTests = JavaVersion.VERSION_1_8 - - // need access to jdk.jfr package - skipSettingCompilerRelease = true } apply from: "$rootDir/gradle/java.gradle" 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 2d546b84c3e..a94efa1fcc1 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-openjdk/build.gradle @@ -7,8 +7,6 @@ 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 - // need access to jdk.jfr package - skipSettingCompilerRelease = true } apply from: "$rootDir/gradle/java.gradle" @@ -39,6 +37,10 @@ dependencies { [JavaCompile, GroovyCompile].each { tasks.withType(it).configureEach { setJavaVersion(it, 11) + if (it instanceof JavaCompile) { + // need access to jdk.jfr package + options.release = null + } sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 // Disable '-processing' because some annotations are not claimed. 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 5b9563daa55..c5ce13de46e 100644 --- a/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle +++ b/dd-java-agent/agent-profiling/profiling-controller-oracle/build.gradle @@ -5,8 +5,6 @@ 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 - // need access to jdk.jfr package - skipSettingCompilerRelease = true } apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/java-concurrent/java-completablefuture/build.gradle b/dd-java-agent/instrumentation/java-concurrent/java-completablefuture/build.gradle index 3095b5712cf..ddbf68d8eed 100644 --- a/dd-java-agent/instrumentation/java-concurrent/java-completablefuture/build.gradle +++ b/dd-java-agent/instrumentation/java-concurrent/java-completablefuture/build.gradle @@ -5,9 +5,6 @@ muzzle { } } -ext { - skipSettingCompilerRelease = true -} apply from: "${rootDir}/gradle/java.gradle" compileJava { diff --git a/dd-java-agent/instrumentation/mule-4/build.gradle b/dd-java-agent/instrumentation/mule-4/build.gradle index d23901a824f..066bacee92e 100644 --- a/dd-java-agent/instrumentation/mule-4/build.gradle +++ b/dd-java-agent/instrumentation/mule-4/build.gradle @@ -225,6 +225,7 @@ tasks.register('extractLatestMuleServices', Sync) { // build the mule application via maven tasks.register('mvnPackage', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") commandLine "$rootDir/mvnw", "-Ddatadog.builddir=$buildDir", "-Ddatadog.name=mule-test-application", "-Ddatadog.version=$version", 'package' outputs.dir("$buildDir/target") inputs.dir("$appDir/src") diff --git a/dd-java-agent/instrumentation/rmi/build.gradle b/dd-java-agent/instrumentation/rmi/build.gradle index 55ef269020b..e62fd3dcced 100644 --- a/dd-java-agent/instrumentation/rmi/build.gradle +++ b/dd-java-agent/instrumentation/rmi/build.gradle @@ -1,6 +1,4 @@ ext { - // need access to sun.rmi package - skipSettingCompilerRelease = true // TODO Java 17: The necessary packages are not opened on Java 17 maxJavaVersionForTests = JavaVersion.VERSION_15 } @@ -13,6 +11,11 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" +tasks.withType(JavaCompile).configureEach { + // need access to sun.rmi package + setJavaVersion(it, 8) +} + def rmic = tasks.register('rmic', Exec) { dependsOn testClasses diff --git a/dd-java-agent/testing/build.gradle b/dd-java-agent/testing/build.gradle index df2430f9433..132799892e1 100644 --- a/dd-java-agent/testing/build.gradle +++ b/dd-java-agent/testing/build.gradle @@ -2,13 +2,13 @@ plugins { id 'com.gradleup.shadow' } -ext { +apply from: "$rootDir/gradle/java.gradle" + +tasks.withType(JavaCompile).configureEach { // need access to sun.misc package - skipSettingCompilerRelease = true + setJavaVersion(it, 8) } -apply from: "$rootDir/gradle/java.gradle" - minimumBranchCoverage = 0.5 minimumInstructionCoverage = 0.5 excludedClassesCoverage += [ diff --git a/dd-smoke-tests/quarkus/build.gradle b/dd-smoke-tests/quarkus/build.gradle index b93f55ac268..239782e50cd 100644 --- a/dd-smoke-tests/quarkus/build.gradle +++ b/dd-smoke-tests/quarkus/build.gradle @@ -13,6 +13,7 @@ def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' // define the task that builds the quarkus project tasks.register('quarkusBuild', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") environment += ["GRADLE_OPTS": "-Dorg.gradle.jvmargs='-Xmx512M'"] commandLine "${rootDir}/${gradlewCommand}", "build", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile.get()}" diff --git a/dd-smoke-tests/spring-boot-2.7-webflux/build.gradle b/dd-smoke-tests/spring-boot-2.7-webflux/build.gradle index 97d01b18b90..1ac0117a3ec 100644 --- a/dd-smoke-tests/spring-boot-2.7-webflux/build.gradle +++ b/dd-smoke-tests/spring-boot-2.7-webflux/build.gradle @@ -15,6 +15,7 @@ def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' // define the task that builds the quarkus project tasks.register('webfluxBuild', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") environment += ["GRADLE_OPTS": "-Dorg.gradle.jvmargs='-Xmx512M'"] commandLine "$rootDir/${gradlewCommand}", "bootJar", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile.get()}" diff --git a/dd-smoke-tests/springboot-openliberty-20/build.gradle b/dd-smoke-tests/springboot-openliberty-20/build.gradle index 6716a0ffe46..3ddaadffa54 100644 --- a/dd-smoke-tests/springboot-openliberty-20/build.gradle +++ b/dd-smoke-tests/springboot-openliberty-20/build.gradle @@ -15,6 +15,7 @@ def mvnwCommand = isWindows ? 'mvnw.cmd' : 'mvnw' // compile the Open liberty spring boot server tasks.register('mvnStage', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") commandLine "$rootDir/${mvnwCommand}", 'package', "-Dtarget.dir=${buildDir}/application/target" inputs.dir "$appDir/src" inputs.file "$appDir/pom.xml" diff --git a/dd-smoke-tests/springboot-openliberty-23/build.gradle b/dd-smoke-tests/springboot-openliberty-23/build.gradle index e0cbfe891ba..73ff5ac5abf 100644 --- a/dd-smoke-tests/springboot-openliberty-23/build.gradle +++ b/dd-smoke-tests/springboot-openliberty-23/build.gradle @@ -15,6 +15,7 @@ def mvnwCommand = isWindows ? 'mvnw.cmd' : 'mvnw' // compile the Open liberty spring boot server tasks.register('mvnStage', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") commandLine "$rootDir/${mvnwCommand}", 'package', "-Dtarget.dir=${buildDir}/application/target" inputs.dir "$appDir/src" inputs.file "$appDir/pom.xml" diff --git a/dd-smoke-tests/vertx-3.4/build.gradle b/dd-smoke-tests/vertx-3.4/build.gradle index 2ee69edf538..5a8106730dc 100644 --- a/dd-smoke-tests/vertx-3.4/build.gradle +++ b/dd-smoke-tests/vertx-3.4/build.gradle @@ -17,6 +17,7 @@ def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' // define the task that builds the quarkus project tasks.register('vertxBuild', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") environment += ["GRADLE_OPTS": "-Dorg.gradle.jvmargs='-Xmx512M'"] commandLine "$appDir/${gradlewCommand}", "assemble", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile.get()}" diff --git a/dd-smoke-tests/vertx-3.9-resteasy/build.gradle b/dd-smoke-tests/vertx-3.9-resteasy/build.gradle index 718d07745e8..dfd0fb8c06d 100644 --- a/dd-smoke-tests/vertx-3.9-resteasy/build.gradle +++ b/dd-smoke-tests/vertx-3.9-resteasy/build.gradle @@ -15,6 +15,7 @@ def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' // define the task that builds the quarkus project tasks.register('vertxBuild', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") environment += ["GRADLE_OPTS": "-Dorg.gradle.jvmargs='-Xmx512M'"] commandLine "$appDir/${gradlewCommand}", "assemble", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile.get()}" diff --git a/dd-smoke-tests/vertx-3.9/build.gradle b/dd-smoke-tests/vertx-3.9/build.gradle index 70161bba855..62aff6b98a4 100644 --- a/dd-smoke-tests/vertx-3.9/build.gradle +++ b/dd-smoke-tests/vertx-3.9/build.gradle @@ -16,6 +16,7 @@ def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' // define the task that builds the quarkus project tasks.register('vertxBuild', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") environment += ["GRADLE_OPTS": "-Dorg.gradle.jvmargs='-Xmx512M'"] commandLine "$appDir/${gradlewCommand}", "assemble", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile.get()}" diff --git a/dd-smoke-tests/vertx-4.2/build.gradle b/dd-smoke-tests/vertx-4.2/build.gradle index c5f54819823..5e4580b6bd6 100644 --- a/dd-smoke-tests/vertx-4.2/build.gradle +++ b/dd-smoke-tests/vertx-4.2/build.gradle @@ -16,6 +16,7 @@ def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' // define the task that builds the quarkus project tasks.register('vertxBuild', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") environment += ["GRADLE_OPTS": "-Dorg.gradle.jvmargs='-Xmx512M'"] commandLine "$appDir/${gradlewCommand}", "assemble", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile.get()}" diff --git a/dd-smoke-tests/wildfly/build.gradle b/dd-smoke-tests/wildfly/build.gradle index d10e2ed4e73..b351d8e086f 100644 --- a/dd-smoke-tests/wildfly/build.gradle +++ b/dd-smoke-tests/wildfly/build.gradle @@ -47,6 +47,7 @@ def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' // define the task that builds the quarkus project tasks.register('earBuild', Exec) { workingDir "$appDir" + environment.JAVA_HOME = System.getenv("JAVA_8_HOME") environment += ["GRADLE_OPTS": "-Dorg.gradle.jvmargs='-Xmx512M'"] commandLine "$rootDir/${gradlewCommand}", "assemble", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile.get()}" diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index e1e9e39f3d8..8af23d322c4 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -2,6 +2,15 @@ import org.gradle.jvm.toolchain.internal.SpecificInstallationToolchainSpec apply plugin: 'java-library' +sourceCompatibility = JavaVersion.VERSION_1_8 +targetCompatibility = JavaVersion.VERSION_1_8 + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } +} + apply from: "$rootDir/gradle/codenarc.gradle" apply from: "$rootDir/gradle/forbiddenapis.gradle" apply from: "$rootDir/gradle/spotless.gradle" @@ -34,17 +43,6 @@ if (applyCodeCoverage) { apply from: "$rootDir/gradle/jacoco.gradle" } -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 - -// when building with Java 9+, lazily set compiler --release flag to match target -def skipSettingCompilerRelease = project.findProperty('skipSettingCompilerRelease') -if (!skipSettingCompilerRelease && JavaVersion.current().isJava9Compatible()) { - compileJava.options.release = project.provider { - JavaVersion.toVersion(targetCompatibility).majorVersion as Integer - } -} - if (project.hasProperty('minJavaVersionForTests') && project.getProperty('minJavaVersionForTests') != JavaVersion.VERSION_1_7) { def version = JavaVersion.toVersion(project.getProperty('minJavaVersionForTests')) def name = "java$version.majorVersion" diff --git a/internal-api/build.gradle b/internal-api/build.gradle index fbf1916a4af..6b39f73568b 100644 --- a/internal-api/build.gradle +++ b/internal-api/build.gradle @@ -2,22 +2,11 @@ plugins { id 'me.champeau.jmh' } -ext { - // need access to sun.misc.SharedSecrets - skipSettingCompilerRelease = true -} - -// sun.misc.SharedSecrets is gone in later versions -compileJava { - javaCompiler = javaToolchains.compilerFor { - languageVersion = JavaLanguageVersion.of(8) - } -} - apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/tries.gradle" -tasks.compileTestJava.configure { +tasks.withType(JavaCompile).configureEach { + // need access to sun.misc.SharedSecrets setJavaVersion(it, 8) }