HHH-14323 Generate Java 13/14 bytecode for tests when building with JDK13/14

This commit is contained in:
Yoann Rodière 2019-10-21 11:02:11 +02:00
parent 96b2b71393
commit 1b44713d09
No known key found for this signature in database
GPG Key ID: B8D049359DC35ABC
3 changed files with 34 additions and 9 deletions

View File

@ -20,6 +20,21 @@ ext {
jpaVersion = new JpaVersion('2.2') jpaVersion = new JpaVersion('2.2')
} }
if ( JavaVersion.current() == JavaVersion.VERSION_HIGHER ) {
// This JDK is not supported by Gradle.
// Use a hack to retrieve the major as a string.
// This only works for Java 9+ (we're at least on Java 13 here).
def major = System.getProperty( 'java.specification.version' )
logger.warn( "[WARN] The Java version '$major' is not supported by gradle." )
ext.testedJavaVersion = major
}
else {
// This JDK is supported by Gradle.
ext.testedJavaVersion = JavaVersion.current()
}
group = 'org.hibernate' group = 'org.hibernate'
version = project.ormVersion.fullName version = project.ormVersion.fullName

View File

@ -38,10 +38,6 @@ ext {
forbiddenAPITargetJDKCompatibility = '11' forbiddenAPITargetJDKCompatibility = '11'
} }
sourceCompatibility = project.baselineJavaVersion
targetCompatibility = project.baselineJavaVersion
if ( !project.description ) { if ( !project.description ) {
project.description = "The Hibernate ORM $project.name module" project.description = "The Hibernate ORM $project.name module"
} }
@ -114,8 +110,20 @@ dependencies {
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Compilation // Compilation
tasks.withType(JavaCompile) { tasks.withType( JavaCompile ) {
options.encoding = 'UTF-8' options.encoding = 'UTF-8'
sourceCompatibility = project.baselineJavaVersion
targetCompatibility = project.baselineJavaVersion
}
if ( project.baselineJavaVersion != project.testedJavaVersion ) {
logger.info( "Forcing the target bytecode version for test classes to '$project.testedJavaVersion'" )
tasks.compileTestJava {
// For *tests only*, generate bytecode matching the Java version currently in use.
// This allows testing bytecode enhancement on the latest Java versions (13, 14, ...).
targetCompatibility = project.testedJavaVersion
}
} }
task compile(dependsOn: [compileJava, processResources, compileTestJava, processTestResources] ) task compile(dependsOn: [compileJava, processResources, compileTestJava, processTestResources] )

View File

@ -24,10 +24,12 @@ apply from: rootProject.file( 'gradle/java-module.gradle' )
// so we have to use https://github.com/java9-modularity/gradle-modules-plugin // so we have to use https://github.com/java9-modularity/gradle-modules-plugin
apply plugin: "org.javamodularity.moduleplugin" apply plugin: "org.javamodularity.moduleplugin"
// Override -source and -target // Override -source and -target to the version being tested (11+, since this module is enabled)
ext.baselineJavaVersion = 11 ext.baselineJavaVersion = project.testedJavaVersion
sourceCompatibility = project.baselineJavaVersion tasks.withType( JavaCompile ) {
targetCompatibility = project.baselineJavaVersion sourceCompatibility = project.baselineJavaVersion
targetCompatibility = project.baselineJavaVersion
}
// Checkstyle fails for module-info // Checkstyle fails for module-info
checkstyleMain.exclude '**/module-info.java' checkstyleMain.exclude '**/module-info.java'