Skip to content

Commit

Permalink
Set Java to 21 when using Kotlin
Browse files Browse the repository at this point in the history
Closes gh-1473
  • Loading branch information
mhalbritter committed May 22, 2024
1 parent 514c9a9 commit 324a96a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public void customize(MutableProjectDescription description) {
}
if (javaGeneration == 21) {
// Kotlin 1.9.20 is required
if (description.getLanguage() instanceof KotlinLanguage && !KOTLIN_1_9_20_OR_LATER.match(platformVersion)) {
if (isKotlin(description) && !KOTLIN_1_9_20_OR_LATER.match(platformVersion)) {
updateTo(description, "17");
}
}
Expand All @@ -69,9 +69,22 @@ public void customize(MutableProjectDescription description) {
if (!SPRING_BOOT_3_2_4_OR_LATER.match(platformVersion)) {
updateTo(description, "21");
}
if (isKotlin(description)) {
if (KOTLIN_1_9_20_OR_LATER.match(platformVersion)) {
// Kotlin 1.9.x doesn't support Java 22
updateTo(description, "21");
}
else {
updateTo(description, "17");
}
}
}
}

private boolean isKotlin(MutableProjectDescription description) {
return description.getLanguage() instanceof KotlinLanguage;
}

private void updateTo(MutableProjectDescription description, String jvmVersion) {
Language language = Language.forId(description.getLanguage().id(), jvmVersion);
description.setLanguage(language);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ void java22IsNotSupportedWithBoot323() {
assertThat(mavenPom(javaProject("22", "3.2.3"))).hasProperty("java.version", "21");
}

@Test
void java22IsNotSupportedWithKotlin() {
assertThat(mavenPom(kotlinProject("22", "3.2.5"))).hasProperty("java.version", "21");
}

static Stream<Arguments> supportedMavenParameters() {
return Stream.concat(supportedJavaParameters(),
Stream.concat(supportedKotlinParameters(), supportedGroovyParameters()));
Expand All @@ -81,13 +86,12 @@ static Stream<Arguments> supportedGradleGroovyParameters() {
}

private static Stream<Arguments> supportedJavaParameters() {
return Stream.of(java("17", "3.1.0"), java("21", "3.1.0"), java("21", "3.2.0"), java("22", "3.2.4"),
java("21", "3.3.0-M2"), java("22", "3.3.0-M3"));
return Stream.of(java("17", "3.1.0"), java("21", "3.1.0"), java("17", "3.2.0"), java("21", "3.2.0"),
java("22", "3.2.4"), java("17", "3.3.0-RC1"), java("21", "3.3.0-RC1"), java("22", "3.3.0-RC1"));
}

private static Stream<Arguments> supportedKotlinParameters() {
return Stream.of(kotlin("17", "3.1.0"), kotlin("21", "3.2.0-RC2"), kotlin("22", "3.2.4"),
kotlin("21", "3.3.0-M2"), kotlin("22", "3.3.0-M3"));
return Stream.of(kotlin("17", "3.1.0"), kotlin("21", "3.2.0"), kotlin("21", "3.3.0-M2"));
}

private static Stream<Arguments> supportedGroovyParameters() {
Expand Down

0 comments on commit 324a96a

Please sign in to comment.