diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/system/JavaVersion.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/system/JavaVersion.java index f4f38936d9af..d6c2a43f1e73 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/system/JavaVersion.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/system/JavaVersion.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.concurrent.Future; import org.springframework.util.ClassUtils; @@ -41,7 +42,12 @@ public enum JavaVersion { /** * Java 18. */ - EIGHTEEN("18", Duration.class, "isPositive"); + EIGHTEEN("18", Duration.class, "isPositive"), + + /** + * Java 19. + */ + NINETEEN("19", Future.class, "state"); private final String name; diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/system/JavaVersionTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/system/JavaVersionTests.java index f73054eabc95..d3ca167e9d2d 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/system/JavaVersionTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/system/JavaVersionTests.java @@ -17,6 +17,7 @@ package org.springframework.boot.system; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIf; import org.junit.jupiter.api.condition.EnabledOnJre; import org.junit.jupiter.api.condition.JRE; @@ -91,4 +92,14 @@ void currentJavaVersionEighteen() { assertThat(JavaVersion.getJavaVersion()).isEqualTo(JavaVersion.EIGHTEEN); } + @Test + @EnabledIf("java19") + void currentJavaVersionNineteen() { + assertThat(JavaVersion.getJavaVersion()).isEqualTo(JavaVersion.NINETEEN); + } + + static boolean java19() { + return "19".equals(System.getProperty("java.version")); + } + }