mirror of
https://github.com/corda/corda.git
synced 2025-03-22 12:05:59 +00:00
ENT-11099: Update Java compile source & target to 17 (#7594)
And removed unused `jdkClassifier` in build files.
This commit is contained in:
parent
fb9a6ef7c5
commit
4cf5fe55dd
50
build.gradle
50
build.gradle
@ -1,9 +1,11 @@
|
|||||||
import com.r3.testing.DistributeTestsBy
|
import com.r3.testing.DistributeTestsBy
|
||||||
import com.r3.testing.PodLogLevel
|
import com.r3.testing.PodLogLevel
|
||||||
|
import net.corda.plugins.apiscanner.GenerateApi
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
import static org.gradle.api.JavaVersion.VERSION_11
|
import static org.gradle.api.JavaVersion.VERSION_17
|
||||||
|
import static org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
|
||||||
import static org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_8
|
import static org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_8
|
||||||
import static org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
|
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
// For sharing constants between builds
|
// For sharing constants between builds
|
||||||
@ -28,8 +30,6 @@ buildscript {
|
|||||||
// Set version of Quasar according to version of Java used:
|
// Set version of Quasar according to version of Java used:
|
||||||
ext.quasar_version = constants.getProperty("quasarVersion")
|
ext.quasar_version = constants.getProperty("quasarVersion")
|
||||||
ext.quasar_classifier = constants.getProperty("quasarClassifier")
|
ext.quasar_classifier = constants.getProperty("quasarClassifier")
|
||||||
ext.jdkClassifier = constants.getProperty("jdkClassifier")
|
|
||||||
ext.cordaScanApiClassifier = jdkClassifier
|
|
||||||
ext.quasar_exclusions = [
|
ext.quasar_exclusions = [
|
||||||
'co.paralleluniverse**',
|
'co.paralleluniverse**',
|
||||||
'groovy**',
|
'groovy**',
|
||||||
@ -238,21 +238,11 @@ if (ext.versionSuffix != ""){
|
|||||||
ext.corda_release_version = "${ext.baseVersion}".toString()
|
ext.corda_release_version = "${ext.baseVersion}".toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
// We need the following three lines even though they're inside an allprojects {} block below because otherwise
|
logger.lifecycle("JDK: {}", System.getProperty("java.home"))
|
||||||
// IntelliJ gets confused when importing the project and ends up erasing and recreating the .idea directory, along
|
|
||||||
// with the run configurations. It also doesn't realise that the project is a Java 8 project and misconfigures
|
|
||||||
// the resulting import. This fixes it.
|
|
||||||
apply plugin: 'java'
|
|
||||||
|
|
||||||
logger.lifecycle("Java version: {}", JavaVersion.current())
|
|
||||||
sourceCompatibility = VERSION_11
|
|
||||||
targetCompatibility = VERSION_11
|
|
||||||
logger.lifecycle("Java source compatibility: {}", sourceCompatibility)
|
|
||||||
logger.lifecycle("Java target compatibility: {}", targetCompatibility)
|
|
||||||
logger.lifecycle("Quasar version: {}", quasar_version)
|
logger.lifecycle("Quasar version: {}", quasar_version)
|
||||||
logger.lifecycle("Quasar classifier: {}", quasar_classifier.toString())
|
logger.lifecycle("Quasar classifier: {}", quasar_classifier.toString())
|
||||||
logger.lifecycle("Building Corda version: {}", corda_release_version)
|
logger.lifecycle("Building Corda version: {}", corda_release_version)
|
||||||
logger.lifecycle("User Home: |{}|", System.getProperty('user.home'))
|
logger.lifecycle("User home: {}", System.getProperty('user.home'))
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
apply plugin: 'org.jetbrains.kotlin.jvm'
|
apply plugin: 'org.jetbrains.kotlin.jvm'
|
||||||
@ -283,8 +273,9 @@ allprojects {
|
|||||||
nugetconfEnabled = false
|
nugetconfEnabled = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sourceCompatibility = VERSION_11
|
|
||||||
targetCompatibility = VERSION_11
|
sourceCompatibility = VERSION_17
|
||||||
|
targetCompatibility = VERSION_17
|
||||||
|
|
||||||
jacoco {
|
jacoco {
|
||||||
// JDK11 official support (https://github.com/jacoco/jacoco/releases/tag/v0.8.3)
|
// JDK11 official support (https://github.com/jacoco/jacoco/releases/tag/v0.8.3)
|
||||||
@ -308,11 +299,11 @@ allprojects {
|
|||||||
options.encoding = 'UTF-8'
|
options.encoding = 'UTF-8'
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
|
tasks.withType(KotlinCompile).configureEach {
|
||||||
compilerOptions {
|
compilerOptions {
|
||||||
languageVersion = KOTLIN_1_8
|
languageVersion = KOTLIN_1_8
|
||||||
apiVersion = KOTLIN_1_8
|
apiVersion = KOTLIN_1_8
|
||||||
jvmTarget = JVM_11
|
jvmTarget = JVM_17
|
||||||
javaParameters = true // Useful for reflection.
|
javaParameters = true // Useful for reflection.
|
||||||
freeCompilerArgs = ['-Xjvm-default=all-compatibility']
|
freeCompilerArgs = ['-Xjvm-default=all-compatibility']
|
||||||
allWarningsAsErrors = warnings_as_errors
|
allWarningsAsErrors = warnings_as_errors
|
||||||
@ -366,13 +357,6 @@ allprojects {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (jdkClassifier) {
|
|
||||||
jar {
|
|
||||||
// JDK11 built and published artifacts to include classifier
|
|
||||||
archiveClassifier = jdkClassifier
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
group 'net.corda'
|
group 'net.corda'
|
||||||
version "$corda_release_version"
|
version "$corda_release_version"
|
||||||
|
|
||||||
@ -561,7 +545,7 @@ jar {
|
|||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
|
tasks.register('jacocoRootReport', JacocoReport) {
|
||||||
dependsOn = subprojects.test
|
dependsOn = subprojects.test
|
||||||
// additionalSourceDirs = files(subprojects.sourceSets.main.allSource.srcDirs)
|
// additionalSourceDirs = files(subprojects.sourceSets.main.allSource.srcDirs)
|
||||||
// sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs)
|
// sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs)
|
||||||
@ -590,13 +574,13 @@ tasks.register('detekt', JavaExec) {
|
|||||||
def plugins = detektPluginsJar.outputs.files.singleFile
|
def plugins = detektPluginsJar.outputs.files.singleFile
|
||||||
def params = ['-i', input, '-c', config, '-b', baseline, '--plugins', plugins]
|
def params = ['-i', input, '-c', config, '-b', baseline, '--plugins', plugins]
|
||||||
inputs.files(detektPluginsJar, config, baseline)
|
inputs.files(detektPluginsJar, config, baseline)
|
||||||
main = "io.gitlab.arturbosch.detekt.cli.Main"
|
mainClass = "io.gitlab.arturbosch.detekt.cli.Main"
|
||||||
classpath = configurations.detekt
|
classpath = configurations.detekt
|
||||||
args(params)
|
args(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register('detektBaseline', JavaExec) {
|
tasks.register('detektBaseline', JavaExec) {
|
||||||
main = "io.gitlab.arturbosch.detekt.cli.Main"
|
mainClass = "io.gitlab.arturbosch.detekt.cli.Main"
|
||||||
classpath = configurations.detekt
|
classpath = configurations.detekt
|
||||||
def input = "$projectDir"
|
def input = "$projectDir"
|
||||||
def config = "$projectDir/detekt-config.yml, $projectDir/detekt-baseline-config.yml"
|
def config = "$projectDir/detekt-config.yml, $projectDir/detekt-baseline-config.yml"
|
||||||
@ -609,7 +593,7 @@ tasks.withType(Test).configureEach {
|
|||||||
reports.html.destination = file("${reporting.baseDir}/${name}")
|
reports.html.destination = file("${reporting.baseDir}/${name}")
|
||||||
}
|
}
|
||||||
|
|
||||||
task testReport(type: TestReport) {
|
tasks.register('testReport', TestReport) {
|
||||||
destinationDir = file("$buildDir/reports/allTests")
|
destinationDir = file("$buildDir/reports/allTests")
|
||||||
// Include the results from the `test` task in all subprojects
|
// Include the results from the `test` task in all subprojects
|
||||||
reportOn subprojects*.test
|
reportOn subprojects*.test
|
||||||
@ -617,7 +601,7 @@ task testReport(type: TestReport) {
|
|||||||
|
|
||||||
// Note: corda.jar is used at runtime so no runtime ZIP is necessary.
|
// Note: corda.jar is used at runtime so no runtime ZIP is necessary.
|
||||||
// Resulting ZIP can be found in "build/distributions"
|
// Resulting ZIP can be found in "build/distributions"
|
||||||
task buildCordappDependenciesZip(type: Zip) {
|
tasks.register('buildCordappDependenciesZip', Zip) {
|
||||||
baseName 'corda-deps'
|
baseName 'corda-deps'
|
||||||
from configurations.runtimeOnly
|
from configurations.runtimeOnly
|
||||||
from configurations.implementation
|
from configurations.implementation
|
||||||
@ -627,7 +611,7 @@ task buildCordappDependenciesZip(type: Zip) {
|
|||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register('generateApi', net.corda.plugins.apiscanner.GenerateApi) {
|
tasks.register('generateApi', GenerateApi) {
|
||||||
baseName = "api-corda"
|
baseName = "api-corda"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ openTelemetrySemConvVersion=1.20.1-alpha
|
|||||||
guavaVersion=28.0-jre
|
guavaVersion=28.0-jre
|
||||||
# Quasar version to use with Java 8:
|
# Quasar version to use with Java 8:
|
||||||
quasarVersion=0.9.0_r3
|
quasarVersion=0.9.0_r3
|
||||||
jdkClassifier11=jdk11
|
|
||||||
dockerJavaVersion=3.2.5
|
dockerJavaVersion=3.2.5
|
||||||
proguardVersion=7.3.1
|
proguardVersion=7.3.1
|
||||||
// bouncy castle version must not be changed on a patch release. Needs a full release test cycle to flush out any issues.
|
// bouncy castle version must not be changed on a patch release. Needs a full release test cycle to flush out any issues.
|
||||||
|
@ -616,5 +616,5 @@ fun Logger.warnOnce(warning: String) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const val JDK1_2_CLASS_FILE_FORMAT_MAJOR_VERSION = 46
|
const val JAVA_1_2_CLASS_FILE_FORMAT_MAJOR_VERSION = 46
|
||||||
const val JDK11_CLASS_FILE_FORMAT_MAJOR_VERSION = 55
|
const val JAVA_17_CLASS_FILE_FORMAT_MAJOR_VERSION = 61
|
||||||
|
@ -8,8 +8,8 @@ import net.corda.core.contracts.TransactionVerificationException
|
|||||||
import net.corda.core.contracts.TransactionVerificationException.OverlappingAttachmentsException
|
import net.corda.core.contracts.TransactionVerificationException.OverlappingAttachmentsException
|
||||||
import net.corda.core.contracts.TransactionVerificationException.PackageOwnershipException
|
import net.corda.core.contracts.TransactionVerificationException.PackageOwnershipException
|
||||||
import net.corda.core.crypto.SecureHash
|
import net.corda.core.crypto.SecureHash
|
||||||
import net.corda.core.internal.JDK1_2_CLASS_FILE_FORMAT_MAJOR_VERSION
|
import net.corda.core.internal.JAVA_1_2_CLASS_FILE_FORMAT_MAJOR_VERSION
|
||||||
import net.corda.core.internal.JDK11_CLASS_FILE_FORMAT_MAJOR_VERSION
|
import net.corda.core.internal.JAVA_17_CLASS_FILE_FORMAT_MAJOR_VERSION
|
||||||
import net.corda.core.internal.JarSignatureCollector
|
import net.corda.core.internal.JarSignatureCollector
|
||||||
import net.corda.core.internal.NamedCacheFactory
|
import net.corda.core.internal.NamedCacheFactory
|
||||||
import net.corda.core.internal.PlatformVersionSwitches
|
import net.corda.core.internal.PlatformVersionSwitches
|
||||||
@ -363,7 +363,7 @@ object AttachmentsClassLoaderBuilder {
|
|||||||
val transactionClassLoader = AttachmentsClassLoader(attachments, key.params, txId, isAttachmentTrusted, parent)
|
val transactionClassLoader = AttachmentsClassLoader(attachments, key.params, txId, isAttachmentTrusted, parent)
|
||||||
val serializers = try {
|
val serializers = try {
|
||||||
createInstancesOfClassesImplementing(transactionClassLoader, SerializationCustomSerializer::class.java,
|
createInstancesOfClassesImplementing(transactionClassLoader, SerializationCustomSerializer::class.java,
|
||||||
JDK1_2_CLASS_FILE_FORMAT_MAJOR_VERSION..JDK11_CLASS_FILE_FORMAT_MAJOR_VERSION)
|
JAVA_1_2_CLASS_FILE_FORMAT_MAJOR_VERSION..JAVA_17_CLASS_FILE_FORMAT_MAJOR_VERSION)
|
||||||
} catch (ex: UnsupportedClassVersionError) {
|
} catch (ex: UnsupportedClassVersionError) {
|
||||||
throw TransactionVerificationException.UnsupportedClassVersionError(txId, ex.message!!, ex)
|
throw TransactionVerificationException.UnsupportedClassVersionError(txId, ex.message!!, ex)
|
||||||
}
|
}
|
||||||
|
@ -40,20 +40,18 @@ capsule {
|
|||||||
def nodeProject = project(':node')
|
def nodeProject = project(':node')
|
||||||
|
|
||||||
configurations.runtimeOnly.canBeResolved = true
|
configurations.runtimeOnly.canBeResolved = true
|
||||||
task buildCordaJAR(type: FatCapsule, dependsOn: [
|
tasks.register('buildCordaJAR', FatCapsule) {
|
||||||
nodeProject.tasks.named('jar'),
|
dependsOn(nodeProject.tasks.named('jar'))
|
||||||
]) {
|
|
||||||
applicationClass 'net.corda.node.Corda'
|
applicationClass 'net.corda.node.Corda'
|
||||||
archiveBaseName = 'corda'
|
archiveBaseName = 'corda'
|
||||||
archiveVersion = corda_release_version
|
archiveVersion = corda_release_version
|
||||||
archiveClassifier = jdkClassifier
|
|
||||||
archiveName = archiveFileName.get()
|
archiveName = archiveFileName.get()
|
||||||
applicationSource = files(
|
applicationSource = files(
|
||||||
nodeProject.configurations.runtimeClasspath,
|
nodeProject.configurations.runtimeClasspath,
|
||||||
nodeProject.tasks.jar,
|
nodeProject.tasks.jar,
|
||||||
nodeProject.buildDir.toString() + '/resources/main/corda-reference.conf',
|
nodeProject.buildDir.toString() + '/resources/main/corda-reference.conf',
|
||||||
"$rootDir/config/dev/log4j2.xml",
|
"$rootDir/config/dev/log4j2.xml",
|
||||||
'NOTICE' // Copy CDDL notice
|
'NOTICE' // Copy CDDL notice
|
||||||
)
|
)
|
||||||
from configurations.capsuleRuntime.files.collect { zipTree(it) }
|
from configurations.capsuleRuntime.files.collect { zipTree(it) }
|
||||||
with jar
|
with jar
|
||||||
|
@ -461,8 +461,8 @@ class JarScanningCordappLoader private constructor(private val cordappJarPaths:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun validateClassFileVersion(classInfo: ClassInfo) {
|
private fun validateClassFileVersion(classInfo: ClassInfo) {
|
||||||
if (classInfo.classfileMajorVersion < JDK1_2_CLASS_FILE_FORMAT_MAJOR_VERSION ||
|
if (classInfo.classfileMajorVersion < JAVA_1_2_CLASS_FILE_FORMAT_MAJOR_VERSION ||
|
||||||
classInfo.classfileMajorVersion > JDK11_CLASS_FILE_FORMAT_MAJOR_VERSION)
|
classInfo.classfileMajorVersion > JAVA_17_CLASS_FILE_FORMAT_MAJOR_VERSION)
|
||||||
throw IllegalStateException("Class ${classInfo.name} from jar file ${cordappJarPath.url} has an invalid version of " +
|
throw IllegalStateException("Class ${classInfo.name} from jar file ${cordappJarPath.url} has an invalid version of " +
|
||||||
"${classInfo.classfileMajorVersion}")
|
"${classInfo.classfileMajorVersion}")
|
||||||
}
|
}
|
||||||
|
@ -24,20 +24,20 @@ capsule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
configurations.runtimeOnly.canBeResolved = true
|
configurations.runtimeOnly.canBeResolved = true
|
||||||
task buildWebserverJar(type: FatCapsule, dependsOn: project(':node').tasks.jar) {
|
tasks.register('buildWebserverJar', FatCapsule) {
|
||||||
|
dependsOn project(':node').tasks.jar
|
||||||
applicationClass 'net.corda.webserver.WebServer'
|
applicationClass 'net.corda.webserver.WebServer'
|
||||||
archiveBaseName = 'corda-testserver'
|
archiveBaseName = 'corda-testserver'
|
||||||
archiveVersion = corda_release_version
|
archiveVersion = corda_release_version
|
||||||
archiveClassifier = jdkClassifier
|
|
||||||
archiveName = archiveFileName.get()
|
archiveName = archiveFileName.get()
|
||||||
applicationSource = files(
|
applicationSource = files(
|
||||||
project(':testing:testserver').configurations.runtimeClasspath,
|
project(':testing:testserver').configurations.runtimeClasspath,
|
||||||
project(':testing:testserver').tasks.jar,
|
project(':testing:testserver').tasks.jar,
|
||||||
project(':testing:testserver').sourceSets.main.java.outputDir.toString() + '/CordaWebserverCaplet.class',
|
project(':testing:testserver').sourceSets.main.java.outputDir.toString() + '/CordaWebserverCaplet.class',
|
||||||
project(':testing:testserver').sourceSets.main.java.outputDir.toString() + '/CordaWebserverCaplet$1.class',
|
project(':testing:testserver').sourceSets.main.java.outputDir.toString() + '/CordaWebserverCaplet$1.class',
|
||||||
project(':node').buildDir.toString() + '/resources/main/corda-reference.conf',
|
project(':node').buildDir.toString() + '/resources/main/corda-reference.conf',
|
||||||
"$rootDir/config/dev/log4j2.xml",
|
"$rootDir/config/dev/log4j2.xml",
|
||||||
project(':node:capsule').projectDir.toString() + '/NOTICE' // Copy CDDL notice
|
project(':node:capsule').projectDir.toString() + '/NOTICE' // Copy CDDL notice
|
||||||
)
|
)
|
||||||
from configurations.capsuleRuntime.files.collect { zipTree(it) }
|
from configurations.capsuleRuntime.files.collect { zipTree(it) }
|
||||||
|
|
||||||
|
@ -13,11 +13,9 @@ javafx {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'java'
|
|
||||||
apply plugin: 'org.jetbrains.kotlin.jvm'
|
apply plugin: 'org.jetbrains.kotlin.jvm'
|
||||||
apply plugin: 'application'
|
apply plugin: 'application'
|
||||||
|
|
||||||
sourceCompatibility = 1.8
|
|
||||||
mainClassName = 'net.corda.explorer.Main'
|
mainClassName = 'net.corda.explorer.Main'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -15,16 +15,16 @@ capsule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
configurations.runtimeOnly.canBeResolved = true
|
configurations.runtimeOnly.canBeResolved = true
|
||||||
task buildExplorerJAR(type: FatCapsule, dependsOn: project(':tools:explorer').tasks.jar) {
|
tasks.register('buildExplorerJAR', FatCapsule) {
|
||||||
|
dependsOn project(':tools:explorer').tasks.jar
|
||||||
applicationClass 'net.corda.explorer.Main'
|
applicationClass 'net.corda.explorer.Main'
|
||||||
archiveBaseName = 'node-explorer'
|
archiveBaseName = 'node-explorer'
|
||||||
archiveVersion = corda_release_version
|
archiveVersion = corda_release_version
|
||||||
archiveClassifier = jdkClassifier
|
|
||||||
archiveName = archiveFileName.get()
|
archiveName = archiveFileName.get()
|
||||||
applicationSource = files(
|
applicationSource = files(
|
||||||
project(':tools:explorer').configurations.runtimeClasspath,
|
project(':tools:explorer').configurations.runtimeClasspath,
|
||||||
project(':tools:explorer').tasks.jar,
|
project(':tools:explorer').tasks.jar,
|
||||||
project(':tools:explorer').sourceSets.main.java.outputDir.toString() + '/ExplorerCaplet.class'
|
project(':tools:explorer').sourceSets.main.java.outputDir.toString() + '/ExplorerCaplet.class'
|
||||||
)
|
)
|
||||||
|
|
||||||
capsuleManifest {
|
capsuleManifest {
|
||||||
|
@ -77,9 +77,8 @@ processResources {
|
|||||||
}
|
}
|
||||||
|
|
||||||
shadowJar {
|
shadowJar {
|
||||||
baseName = 'network-builder'
|
archiveBaseName = 'network-builder'
|
||||||
archiveClassifier = jdkClassifier
|
archiveVersion = null
|
||||||
version = null
|
|
||||||
zip64 true
|
zip64 true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user