opentelemetry-java-instrume.../instrumentation/rmi/javaagent/rmi-javaagent.gradle

44 lines
1.2 KiB
Groovy

apply from: "$rootDir/gradle/instrumentation.gradle"
muzzle {
pass {
coreJdk()
}
}
task "rmic", dependsOn: testClasses {
def clazz = 'rmi.app.ServerLegacy'
// Try one level up too in case java.home refers to jre directory inside jdk directory
def rmicBinaryPath = ['/bin/rmic', '/../bin/rmic'].findResult {
def path = new File(System.getProperty("java.home"), it).getAbsoluteFile()
path.isFile() ? path.toString() : null
} ?: "rmic"
String command = """$rmicBinaryPath -g -keep -classpath ${sourceSets.test.output.classesDirs.asPath} -d ${buildDir}/classes/java/test ${clazz}"""
command.execute().text
}
test.dependsOn "rmic"
// We cannot use "--release" javac option here because that will forbid importing "sun.rmi" package.
// We also can't seem to use the toolchain without the "--release" option. So disable everything.
java {
sourceCompatibility = JavaVersion.toVersion(project.ext.release)
targetCompatibility = JavaVersion.toVersion(project.ext.release)
toolchain {
languageVersion = null
}
}
tasks.withType(JavaCompile) {
options.release = null
}
tasks.withType(GroovyCompile) {
options.release = null
}
tasks.withType(Test) {
jvmArgs "-Djava.rmi.server.hostname=127.0.0.1"
}