diff --git a/dd-smoke-tests/rum/wildfly-15/build.gradle b/dd-smoke-tests/rum/wildfly-15/build.gradle index 00cc72f1b01..888442fc295 100644 --- a/dd-smoke-tests/rum/wildfly-15/build.gradle +++ b/dd-smoke-tests/rum/wildfly-15/build.gradle @@ -1,3 +1,9 @@ +import datadog.buildlogic.smoketest.NestedGradleBuild + +plugins { + id 'dd-trace-java.smoke-test-app' +} + ext { serverName = 'wildfly' //serverModule = 'servlet' @@ -49,29 +55,17 @@ dependencies { testImplementation project(':dd-smoke-tests') } -def appDir = "$projectDir/rum-ear" -def appBuildDir = "$buildDir/rm-ear" -def isWindows = System.getProperty("os.name").toLowerCase().contains("win") -def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' -// define the task that builds the quarkus project -tasks.register('earBuild', Exec) { - workingDir "$appDir" - 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()}" - - outputs.cacheIf { true } - - outputs.dir(appBuildDir) - .withPropertyName("applicationEar") - - inputs.files(fileTree(appDir) { - include '**/*' - exclude '.gradle/**' - }) - .withPropertyName("application") - .withPathSensitivity(PathSensitivity.RELATIVE) - - dependsOn project(':dd-trace-api').tasks.named("jar") +def appBuildDir = layout.buildDirectory.dir("rm-ear") +evaluationDependsOn(':dd-trace-api') +def apiJarTask = project(':dd-trace-api').tasks.named('jar') + +// Run the nested EAR build through the Gradle Tooling API. +tasks.register('earBuild', NestedGradleBuild) { + applicationDir = layout.projectDirectory.dir("rum-ear") + applicationBuildDir = appBuildDir + tasksToRun = ['assemble'] + projectJar('apiJar', apiJarTask.flatMap { it.archiveFile }) + dependsOn apiJarTask } tasks.named("compileTestGroovy", GroovyCompile) { @@ -121,8 +115,8 @@ tasks.withType(Jar).configureEach { def wildflyDir = "${buildDir}/${serverName}-${serverVersion}" tasks.register("deploy", Copy) { - dependsOn 'unzip' - from "${appBuildDir}/libs/wildfly-rum-ear-smoketest.ear" + dependsOn 'unzip', 'earBuild' + from appBuildDir.map { it.file("libs/wildfly-rum-ear-smoketest.ear") } into "${wildflyDir}/standalone/deployments" } diff --git a/dd-smoke-tests/rum/wildfly-15/rum-ear/build.gradle b/dd-smoke-tests/rum/wildfly-15/rum-ear/build.gradle index 74d2ad6687f..325bad58510 100644 --- a/dd-smoke-tests/rum/wildfly-15/rum-ear/build.gradle +++ b/dd-smoke-tests/rum/wildfly-15/rum-ear/build.gradle @@ -14,6 +14,12 @@ if (hasProperty('appBuildDir')) { buildDir = property('appBuildDir') } +// Pin bytecode target: the nested daemon now runs on JDK 21, but the deployed EAR runs in +// WildFly on Java 8. +java { + sourceCompatibility = JavaVersion.VERSION_1_8 +} + dependencies { deploy project(path: ':war', configuration: 'archives') } diff --git a/dd-smoke-tests/rum/wildfly-15/rum-ear/war/build.gradle b/dd-smoke-tests/rum/wildfly-15/rum-ear/war/build.gradle index d27749a97de..03c4f6f35e9 100644 --- a/dd-smoke-tests/rum/wildfly-15/rum-ear/war/build.gradle +++ b/dd-smoke-tests/rum/wildfly-15/rum-ear/war/build.gradle @@ -1,6 +1,12 @@ apply plugin: 'java' apply plugin: 'war' +// Pin bytecode target: the nested daemon now runs on JDK 21, but the WAR is deployed in +// WildFly on Java 8. +java { + sourceCompatibility = JavaVersion.VERSION_1_8 +} + repositories { mavenLocal() if (project.rootProject.hasProperty("mavenRepositoryProxy")) { diff --git a/dd-smoke-tests/wildfly/build.gradle b/dd-smoke-tests/wildfly/build.gradle index 75941ba0288..7870b8ba13e 100644 --- a/dd-smoke-tests/wildfly/build.gradle +++ b/dd-smoke-tests/wildfly/build.gradle @@ -1,3 +1,9 @@ +import datadog.buildlogic.smoketest.NestedGradleBuild + +plugins { + id 'dd-trace-java.smoke-test-app' +} + ext { serverName = 'wildfly' //serverModule = 'servlet' @@ -49,32 +55,17 @@ dependencies { testImplementation project(':dd-smoke-tests') } -def appDir = "$projectDir/spring-ear" -def appBuildDir = "$buildDir/spring-ear" -def isWindows = System.getProperty("os.name").toLowerCase().contains("win") -def gradlewCommand = isWindows ? 'gradlew.bat' : 'gradlew' -// define the task that builds the quarkus project -tasks.register('earBuild', Exec) { - workingDir "$appDir" - environment += [ - "GRADLE_OPTS": "-Dorg.gradle.jvmargs='-Xmx512M'", - "JAVA_HOME": getLazyJavaHomeFor(8) - ] - commandLine "$rootDir/${gradlewCommand}", "assemble", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile.get()}" - - outputs.cacheIf { true } - - outputs.dir(appBuildDir) - .withPropertyName("applicationEar") - - inputs.files(fileTree(appDir) { - include '**/*' - exclude '.gradle/**' - }) - .withPropertyName("application") - .withPathSensitivity(PathSensitivity.RELATIVE) - - dependsOn project(':dd-trace-api').tasks.named("jar") +def appBuildDir = layout.buildDirectory.dir("spring-ear") +evaluationDependsOn(':dd-trace-api') +def apiJarTask = project(':dd-trace-api').tasks.named('jar') + +// Run the nested EAR build through the Gradle Tooling API. +tasks.register('earBuild', NestedGradleBuild) { + applicationDir = layout.projectDirectory.dir("spring-ear") + applicationBuildDir = appBuildDir + tasksToRun = ['assemble'] + projectJar('apiJar', apiJarTask.flatMap { it.archiveFile }) + dependsOn apiJarTask } tasks.named("compileTestGroovy", GroovyCompile) { @@ -124,8 +115,8 @@ tasks.withType(Jar).configureEach { def wildflyDir = "${buildDir}/${serverName}-${serverVersion}" tasks.register("deploy", Copy) { - dependsOn 'unzip' - from "${appBuildDir}/libs/wildfly-spring-ear-smoketest.ear" + dependsOn 'unzip', 'earBuild' + from appBuildDir.map { it.file("libs/wildfly-spring-ear-smoketest.ear") } into "${wildflyDir}/standalone/deployments" } diff --git a/dd-smoke-tests/wildfly/spring-ear/build.gradle b/dd-smoke-tests/wildfly/spring-ear/build.gradle index fae476be498..df6b5a82cb0 100644 --- a/dd-smoke-tests/wildfly/spring-ear/build.gradle +++ b/dd-smoke-tests/wildfly/spring-ear/build.gradle @@ -15,6 +15,13 @@ if (hasProperty('appBuildDir')) { } version = "" + +// Pin bytecode target: the nested daemon now runs on JDK 21, but the deployed EAR runs in +// WildFly on Java 8. +java { + sourceCompatibility = JavaVersion.VERSION_1_8 +} + dependencies { earlib 'org.springframework:spring-webmvc:5.3.0' deploy project(path: ':war', configuration: 'archives') diff --git a/dd-smoke-tests/wildfly/spring-ear/war/build.gradle b/dd-smoke-tests/wildfly/spring-ear/war/build.gradle index f17d59edf16..5f929755dcb 100644 --- a/dd-smoke-tests/wildfly/spring-ear/war/build.gradle +++ b/dd-smoke-tests/wildfly/spring-ear/war/build.gradle @@ -1,6 +1,12 @@ apply plugin: 'java' apply plugin: 'war' +// Pin bytecode target: the nested daemon now runs on JDK 21, but the WAR is deployed in +// WildFly on Java 8. +java { + sourceCompatibility = JavaVersion.VERSION_1_8 +} + repositories { mavenLocal() if (project.rootProject.hasProperty("mavenRepositoryProxy")) {