diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/JavaInfo.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/JavaInfo.java index f5d029f826..9f246bba08 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/JavaInfo.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/JavaInfo.java @@ -25,29 +25,29 @@ package org.springframework.boot.info; */ public class JavaInfo { - private final String vendor; - private final String version; + private final JavaVendorInfo vendor; + private final JavaRuntimeEnvironmentInfo runtime; private final JavaVirtualMachineInfo jvm; public JavaInfo() { - this.vendor = System.getProperty("java.vendor"); this.version = System.getProperty("java.version"); + this.vendor = new JavaVendorInfo(); this.runtime = new JavaRuntimeEnvironmentInfo(); this.jvm = new JavaVirtualMachineInfo(); } - public String getVendor() { - return this.vendor; - } - public String getVersion() { return this.version; } + public JavaVendorInfo getVendor() { + return this.vendor; + } + public JavaRuntimeEnvironmentInfo getRuntime() { return this.runtime; } @@ -56,8 +56,32 @@ public class JavaInfo { return this.jvm; } + /** + * Information about the Java Vendor of the used Java Runtime. + * @since 2.7.0 + */ + public static class JavaVendorInfo { + private final String name; + + private final String version; + + public JavaVendorInfo() { + this.name = System.getProperty("java.vendor"); + this.version = System.getProperty("java.vendor.version"); + } + + public String getName() { + return this.name; + } + + public String getVersion() { + return this.version; + } + } + /** * Information about the Java Runtime Environment the application is running in. + * @since 2.6.0 */ public static class JavaRuntimeEnvironmentInfo { @@ -82,6 +106,7 @@ public class JavaInfo { /** * Information about the Java Virtual Machine the application is running in. + * @since 2.6.0 */ public static class JavaVirtualMachineInfo { diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/JavaInfoTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/JavaInfoTests.java index 421809c563..5bf692a6ce 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/JavaInfoTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/JavaInfoTests.java @@ -31,8 +31,11 @@ class JavaInfoTests { @Test void javaInfoIsAvailable() { JavaInfo javaInfo = new JavaInfo(); - assertThat(javaInfo.getVendor()).isEqualTo(System.getProperty("java.vendor")); assertThat(javaInfo.getVersion()).isEqualTo(System.getProperty("java.version")); + assertThat(javaInfo.getVendor()).satisfies((vendorInfo) -> { + assertThat(vendorInfo.getName()).isEqualTo(System.getProperty("java.vendor")); + assertThat(vendorInfo.getVersion()).isEqualTo(System.getProperty("java.vendor.version")); + }); assertThat(javaInfo.getRuntime()).satisfies((jreInfo) -> { assertThat(jreInfo.getName()).isEqualTo(System.getProperty("java.runtime.name")); assertThat(jreInfo.getVersion()).isEqualTo(System.getProperty("java.runtime.version"));