From b20a96b03bd456ed931fb2f57acd2287a38d31a3 Mon Sep 17 00:00:00 2001 From: ntwigg Date: Mon, 28 Apr 2025 20:52:51 -0700 Subject: [PATCH 1/6] Make sure that we compile to JRE 11. --- jvm/gradle.properties | 4 ++- jvm/gradle/jvm-target.gradle | 35 +++++++++++++++++++++++++++ jvm/selfie-lib/build.gradle | 3 ++- jvm/selfie-runner-junit5/build.gradle | 1 + jvm/selfie-runner-kotest/build.gradle | 1 + 5 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 jvm/gradle/jvm-target.gradle diff --git a/jvm/gradle.properties b/jvm/gradle.properties index df6730c0..641babd3 100644 --- a/jvm/gradle.properties +++ b/jvm/gradle.properties @@ -10,4 +10,6 @@ ver_OKIO=3.9.0 ver_KOTLIN_TEST=2.0.0 ver_KOTLIN_SERIALIZATION=1.7.3 # Kotest 5.4.0 is the oldest that we support -ver_KOTEST=5.4.0 \ No newline at end of file +ver_KOTEST=5.4.0 + +ver_JVM_TARGET=11 \ No newline at end of file diff --git a/jvm/gradle/jvm-target.gradle b/jvm/gradle/jvm-target.gradle new file mode 100644 index 00000000..2f298ee1 --- /dev/null +++ b/jvm/gradle/jvm-target.gradle @@ -0,0 +1,35 @@ +if (plugins.hasPlugin('org.jetbrains.kotlin.jvm')) { + kotlin { + compileKotlin { + kotlinOptions { + jvmTarget = "$ver_JVM_TARGET" + } + } + compileTestKotlin { + kotlinOptions { + jvmTarget = "$ver_JVM_TARGET" + } + } + } + java { + sourceCompatibility = JavaVersion.toVersion("$ver_JVM_TARGET") + targetCompatibility = JavaVersion.toVersion("$ver_JVM_TARGET") + } +} else if (plugins.hasPlugin('org.jetbrains.kotlin.multiplatform')) { + kotlin { + jvm { + compilations.all { + kotlinOptions { + jvmTarget = "$ver_JVM_TARGET" + } + } + } + targets.withType(org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget) { + compilations.all { + kotlinOptions { + jvmTarget = "$ver_JVM_TARGET" + } + } + } + } +} diff --git a/jvm/selfie-lib/build.gradle b/jvm/selfie-lib/build.gradle index 90cf72b2..8bbf7005 100644 --- a/jvm/selfie-lib/build.gradle +++ b/jvm/selfie-lib/build.gradle @@ -58,4 +58,5 @@ tasks.create('test') { // it all needs to get published and formatted apply from: 干.file('base/maven.gradle') -apply from: 干.file('base/sonatype.gradle') \ No newline at end of file +apply from: 干.file('base/sonatype.gradle') +apply from: rootProject.file('gradle/jvm-target.gradle') diff --git a/jvm/selfie-runner-junit5/build.gradle b/jvm/selfie-runner-junit5/build.gradle index 165cf3ca..87371943 100644 --- a/jvm/selfie-runner-junit5/build.gradle +++ b/jvm/selfie-runner-junit5/build.gradle @@ -35,3 +35,4 @@ test { // it all needs to get published and formatted apply from: 干.file('base/maven.gradle') apply from: 干.file('base/sonatype.gradle') +apply from: rootProject.file('gradle/jvm-target.gradle') diff --git a/jvm/selfie-runner-kotest/build.gradle b/jvm/selfie-runner-kotest/build.gradle index 01da20dd..3dcf4f2d 100644 --- a/jvm/selfie-runner-kotest/build.gradle +++ b/jvm/selfie-runner-kotest/build.gradle @@ -59,3 +59,4 @@ jvmTest { // it all needs to get published and formatted apply from: 干.file('base/maven.gradle') apply from: 干.file('base/sonatype.gradle') +apply from: rootProject.file('gradle/jvm-target.gradle') From 0f52cc61a2f0ee374a3bb6f19cdd446c7572e094 Mon Sep 17 00:00:00 2001 From: ntwigg Date: Mon, 28 Apr 2025 21:00:09 -0700 Subject: [PATCH 2/6] Update changelog. --- jvm/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jvm/CHANGELOG.md b/jvm/CHANGELOG.md index b5c16b68..52dfa48a 100644 --- a/jvm/CHANGELOG.md +++ b/jvm/CHANGELOG.md @@ -11,6 +11,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Fixed +- Restore support for JRE 11. (fixes [#528](https://github.com/diffplug/selfie/issues/528)) ## [2.5.2] - 2025-04-28 ### Fixed From 8acf3b5f63cfbf20613d9841cb689ace19f1e202 Mon Sep 17 00:00:00 2001 From: ntwigg Date: Mon, 28 Apr 2025 21:00:42 -0700 Subject: [PATCH 3/6] We don't need to change tests or java test code, just the kotlin target. --- jvm/gradle/jvm-target.gradle | 9 --------- 1 file changed, 9 deletions(-) diff --git a/jvm/gradle/jvm-target.gradle b/jvm/gradle/jvm-target.gradle index 2f298ee1..4dda8c37 100644 --- a/jvm/gradle/jvm-target.gradle +++ b/jvm/gradle/jvm-target.gradle @@ -5,15 +5,6 @@ if (plugins.hasPlugin('org.jetbrains.kotlin.jvm')) { jvmTarget = "$ver_JVM_TARGET" } } - compileTestKotlin { - kotlinOptions { - jvmTarget = "$ver_JVM_TARGET" - } - } - } - java { - sourceCompatibility = JavaVersion.toVersion("$ver_JVM_TARGET") - targetCompatibility = JavaVersion.toVersion("$ver_JVM_TARGET") } } else if (plugins.hasPlugin('org.jetbrains.kotlin.multiplatform')) { kotlin { From 22ca88a55e84b01c0ea8be33d591c3d687499c8c Mon Sep 17 00:00:00 2001 From: ntwigg Date: Tue, 29 Apr 2025 11:28:59 -0700 Subject: [PATCH 4/6] Fix the testing harness. --- jvm/undertest-junit5-kotest/harness/gradle/jvm-target.gradle | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 jvm/undertest-junit5-kotest/harness/gradle/jvm-target.gradle diff --git a/jvm/undertest-junit5-kotest/harness/gradle/jvm-target.gradle b/jvm/undertest-junit5-kotest/harness/gradle/jvm-target.gradle new file mode 100644 index 00000000..e69de29b From c6da2817de042247d7f7a81c99e5c0ce13f6fffd Mon Sep 17 00:00:00 2001 From: ntwigg Date: Tue, 29 Apr 2025 11:29:08 -0700 Subject: [PATCH 5/6] Fix java compilation to match the kotlin. --- jvm/gradle/jvm-target.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jvm/gradle/jvm-target.gradle b/jvm/gradle/jvm-target.gradle index 4dda8c37..6ca8bda9 100644 --- a/jvm/gradle/jvm-target.gradle +++ b/jvm/gradle/jvm-target.gradle @@ -24,3 +24,8 @@ if (plugins.hasPlugin('org.jetbrains.kotlin.jvm')) { } } } + +// Set Java compilation target to match Kotlin +tasks.withType(JavaCompile) { + options.release = Integer.parseInt(ver_JVM_TARGET) +} From a84d5136ce263577d0355b49df8958e40068540c Mon Sep 17 00:00:00 2001 From: ntwigg Date: Tue, 29 Apr 2025 13:30:58 -0700 Subject: [PATCH 6/6] Only adjust `compileJava`, not everything. --- jvm/gradle/jvm-target.gradle | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/jvm/gradle/jvm-target.gradle b/jvm/gradle/jvm-target.gradle index 6ca8bda9..970c60cb 100644 --- a/jvm/gradle/jvm-target.gradle +++ b/jvm/gradle/jvm-target.gradle @@ -6,6 +6,9 @@ if (plugins.hasPlugin('org.jetbrains.kotlin.jvm')) { } } } + tasks.named('compileJava', JavaCompile) { + options.release = Integer.parseInt(ver_JVM_TARGET) + } } else if (plugins.hasPlugin('org.jetbrains.kotlin.multiplatform')) { kotlin { jvm { @@ -24,8 +27,3 @@ if (plugins.hasPlugin('org.jetbrains.kotlin.jvm')) { } } } - -// Set Java compilation target to match Kotlin -tasks.withType(JavaCompile) { - options.release = Integer.parseInt(ver_JVM_TARGET) -}