Move setting of net.bytebuddy.experimental to the Jenkinsfile
The hope is that whenever we add a new JDK version to test, we'll notice this setting, will try to remove it and upgrade bytebuddy if necessary. This would avoid mess-ups like the one that caused https://github.com/hibernate/hibernate-orm/pull/7790
This commit is contained in:
parent
838bed00eb
commit
3b31351234
|
@ -49,7 +49,11 @@ stage('Configure') {
|
||||||
new BuildEnvironment( testJdkVersion: '20', testJdkLauncherArgs: '--enable-preview' ),
|
new BuildEnvironment( testJdkVersion: '20', testJdkLauncherArgs: '--enable-preview' ),
|
||||||
new BuildEnvironment( testJdkVersion: '21', testJdkLauncherArgs: '--enable-preview' ),
|
new BuildEnvironment( testJdkVersion: '21', testJdkLauncherArgs: '--enable-preview' ),
|
||||||
new BuildEnvironment( testJdkVersion: '22', testJdkLauncherArgs: '--enable-preview' ),
|
new BuildEnvironment( testJdkVersion: '22', testJdkLauncherArgs: '--enable-preview' ),
|
||||||
new BuildEnvironment( testJdkVersion: '23', testJdkLauncherArgs: '--enable-preview' )
|
// The following JDKs aren't supported by Hibernate ORM out-of-the box yet:
|
||||||
|
// they require the use of -Dnet.bytebuddy.experimental=true.
|
||||||
|
// Make sure to remove that argument as soon as possible
|
||||||
|
// -- generally that requires upgrading bytebuddy after the JDK goes GA.
|
||||||
|
new BuildEnvironment( testJdkVersion: '23', testJdkLauncherArgs: '--enable-preview -Dnet.bytebuddy.experimental=true' )
|
||||||
];
|
];
|
||||||
|
|
||||||
if ( env.CHANGE_ID ) {
|
if ( env.CHANGE_ID ) {
|
||||||
|
|
|
@ -295,21 +295,6 @@ test {
|
||||||
jvmArgs '-XX:+StartAttachListener'
|
jvmArgs '-XX:+StartAttachListener'
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable the experimental features of ByteBuddy with JDK 22+
|
|
||||||
test {
|
|
||||||
// We need to test the *launcher* version,
|
|
||||||
// because some tests will use Mockito (and thus Bytebuddy) to mock/spy
|
|
||||||
// classes that are part of the JDK,
|
|
||||||
// and those classes always have bytecode matching the version of the launcher.
|
|
||||||
// So for example, when using a JDK22 launcher and compiling tests with --release 21,
|
|
||||||
// Bytebuddy will still encounter classes with Java 22 bytecode.
|
|
||||||
if ( jdkVersions.test.launcher.asInt() >= 22 ) {
|
|
||||||
logger.warn( "The version of Java bytecode that will be tested is not supported by Bytebuddy by default. " +
|
|
||||||
" Setting 'net.bytebuddy.experimental=true'." )
|
|
||||||
systemProperty 'net.bytebuddy.experimental', true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test {
|
test {
|
||||||
if ( project.findProperty( 'log-test-progress' )?.toString()?.toBoolean() ) {
|
if ( project.findProperty( 'log-test-progress' )?.toString()?.toBoolean() ) {
|
||||||
// Log a statement for each test.
|
// Log a statement for each test.
|
||||||
|
|
|
@ -299,12 +299,6 @@ if ( jdkVersions.test.release.asInt() >= 17 && jdkVersions.explicit ) {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
testClassesDirs = sourceSets.testJava17.output.classesDirs
|
testClassesDirs = sourceSets.testJava17.output.classesDirs
|
||||||
classpath = sourceSets.testJava17.runtimeClasspath
|
classpath = sourceSets.testJava17.runtimeClasspath
|
||||||
|
|
||||||
if ( jdkVersions.test.launcher.asInt() >= 19 ) {
|
|
||||||
logger.warn( "The version of Java bytecode that will be tested is not supported by Byte Buddy by default. " +
|
|
||||||
" Setting 'net.bytebuddy.experimental=true'." )
|
|
||||||
systemProperty 'net.bytebuddy.experimental', true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
testClasses.dependsOn compileTestJava17Java
|
testClasses.dependsOn compileTestJava17Java
|
||||||
|
|
|
@ -61,12 +61,6 @@ if ( jdkVersions.test.release.asInt() >= 17 && jdkVersions.explicit ) {
|
||||||
javaLauncher = javaToolchains.launcherFor {
|
javaLauncher = javaToolchains.launcherFor {
|
||||||
languageVersion = jdkVersions.test.launcher
|
languageVersion = jdkVersions.test.launcher
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( jdkVersions.test.launcher.asInt() >= 19 ) {
|
|
||||||
logger.warn( "The version of Java bytecode that will be tested is not supported by Bytebuddy by default. " +
|
|
||||||
" Setting 'net.bytebuddy.experimental=true'." )
|
|
||||||
systemProperty 'net.bytebuddy.experimental', true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|
Loading…
Reference in New Issue