Manually call jlink because plugin won't work with our build
This commit is contained in:
parent
a3d792b4b9
commit
be60d362ae
|
@ -1,17 +1,9 @@
|
||||||
import org.beryx.jlink.BaseTask
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
id 'org.beryx.jlink' version '2.1.1' // latest version that doesn't have a Java 11+ warning
|
|
||||||
}
|
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
minJavaVersionForTests = JavaVersion.VERSION_1_9
|
minJavaVersionForTests = JavaVersion.VERSION_1_9
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
mainClassName = 'datadog.smoketest.moduleapp.ModuleApplication'
|
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
manifest {
|
manifest {
|
||||||
attributes(
|
attributes(
|
||||||
|
@ -20,20 +12,32 @@ jar {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jlink {
|
/**
|
||||||
moduleName = 'datadog.smoketest.moduleapp'
|
* For each Test task, creates a jlink image using the java bin directory of the test
|
||||||
options = ['--no-man-pages', '--no-header-files', '--add-modules', 'java.instrument']
|
*/
|
||||||
}
|
tasks.withType(Test).each {
|
||||||
|
def javaExecutable = it.executable
|
||||||
|
def javaVersion = getJavaExecutableVersion(javaExecutable)
|
||||||
|
|
||||||
tasks.withType(BaseTask).each {
|
if (JavaVersion.VERSION_1_9.compareTo(javaVersion) > 0) {
|
||||||
it.enabled = JavaVersion.VERSION_1_9.compareTo(JavaVersion.current()) <= 0
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
test {
|
def jlinkExecutable = file(javaExecutable).parent + "/jlink"
|
||||||
dependsOn tasks.jlink
|
def generatedImageDir = "${buildDir}/${it.name}image"
|
||||||
|
|
||||||
|
it.doFirst {
|
||||||
|
exec {
|
||||||
|
commandLine jlinkExecutable, '--no-man-pages', '--no-header-files',
|
||||||
|
'--add-modules', 'java.instrument,datadog.smoketest.moduleapp',
|
||||||
|
"--module-path", jar.archiveFile.get().toString(), "--output", generatedImageDir
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
it.jvmArgs "-Ddatadog.smoketest.module.image=${generatedImageDir}"
|
||||||
|
it.dependsOn jar
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
testCompile project(':dd-smoke-tests')
|
testCompile project(':dd-smoke-tests')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,12 @@ class Java9ModulesSmokeTest extends AbstractSmokeTest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
ProcessBuilder createProcessBuilder() {
|
ProcessBuilder createProcessBuilder() {
|
||||||
|
String imageDir = System.getProperty("datadog.smoketest.module.image")
|
||||||
|
|
||||||
|
assert imageDir != null
|
||||||
|
|
||||||
List<String> command = new ArrayList<>()
|
List<String> command = new ArrayList<>()
|
||||||
command.add(buildDirectory + "/image/bin/java")
|
command.add(imageDir + "/bin/java")
|
||||||
command.addAll(defaultJavaProperties)
|
command.addAll(defaultJavaProperties)
|
||||||
command.addAll((String[]) ["-m", "datadog.smoketest.moduleapp/datadog.smoketest.moduleapp.ModuleApplication"])
|
command.addAll((String[]) ["-m", "datadog.smoketest.moduleapp/datadog.smoketest.moduleapp.ModuleApplication"])
|
||||||
ProcessBuilder processBuilder = new ProcessBuilder(command)
|
ProcessBuilder processBuilder = new ProcessBuilder(command)
|
||||||
|
|
|
@ -246,6 +246,10 @@ JavaVersion getJavaExecutableVersion(String path) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ext {
|
||||||
|
getJavaExecutableVersion = this.&getJavaExecutableVersion
|
||||||
|
}
|
||||||
|
|
||||||
def isJavaVersionAllowed(JavaVersion version) {
|
def isJavaVersionAllowed(JavaVersion version) {
|
||||||
if (project.hasProperty('minJavaVersionForTests') && project.getProperty('minJavaVersionForTests').compareTo(version) > 0) {
|
if (project.hasProperty('minJavaVersionForTests') && project.getProperty('minJavaVersionForTests').compareTo(version) > 0) {
|
||||||
return false
|
return false
|
||||||
|
|
Loading…
Reference in New Issue