From 05732613dded7c04e94a08403c8d1edb5e046a21 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 1 Nov 2016 14:18:33 +0000 Subject: [PATCH] Update ConditionalOnJava and its usage now that Boot requires Java 8 Closes gh-6982 --- .../condition/ConditionalOnJava.java | 14 +----- .../jackson/JacksonAutoConfiguration.java | 3 -- .../thymeleaf/ThymeleafAutoConfiguration.java | 2 - .../websocket/WebSocketAutoConfiguration.java | 3 -- .../condition/ConditionalOnJavaTests.java | 46 ++++++++----------- 5 files changed, 20 insertions(+), 48 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJava.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJava.java index ed63e2455b..735fe2f987 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJava.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJava.java @@ -86,17 +86,7 @@ public @interface ConditionalOnJava { /** * Java 1.8. */ - EIGHT(8, "1.8", "java.util.function.Function"), - - /** - * Java 1.7. - */ - SEVEN(7, "1.7", "java.nio.file.Files"), - - /** - * Java 1.6. - */ - SIX(6, "1.6", "java.util.ServiceLoader"); + EIGHT(8, "1.8", "java.util.function.Function"); private final int value; @@ -143,7 +133,7 @@ public @interface ConditionalOnJava { return candidate; } } - return SIX; + return EIGHT; } } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.java index f8eef994d3..b395cffcc6 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.java @@ -43,8 +43,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.BeanFactoryUtils; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnJava; -import org.springframework.boot.autoconfigure.condition.ConditionalOnJava.JavaVersion; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.jackson.JsonComponentModule; @@ -148,7 +146,6 @@ public class JacksonAutoConfiguration { } @Configuration - @ConditionalOnJava(JavaVersion.EIGHT) @ConditionalOnClass(ParameterNamesModule.class) static class ParameterNamesModuleConfiguration { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java index 064840d6e3..48a4e19bd2 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java @@ -37,7 +37,6 @@ import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnJava; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; @@ -245,7 +244,6 @@ public class ThymeleafAutoConfiguration { } @Configuration - @ConditionalOnJava(ConditionalOnJava.JavaVersion.EIGHT) @ConditionalOnClass(Java8TimeDialect.class) protected static class ThymeleafJava8TimeDialect { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/WebSocketAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/WebSocketAutoConfiguration.java index 431e337610..ec5702701b 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/WebSocketAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/WebSocketAutoConfiguration.java @@ -24,8 +24,6 @@ import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainer import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnJava; -import org.springframework.boot.autoconfigure.condition.ConditionalOnJava.JavaVersion; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; @@ -64,7 +62,6 @@ public class WebSocketAutoConfiguration { @Bean @ConditionalOnMissingBean(name = "websocketContainerCustomizer") - @ConditionalOnJava(JavaVersion.SEVEN) public TomcatWebSocketContainerCustomizer websocketContainerCustomizer() { return new TomcatWebSocketContainerCustomizer(); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJavaTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJavaTests.java index 6458a32a7f..458b9f9877 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJavaTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJavaTests.java @@ -56,40 +56,40 @@ public class ConditionalOnJavaTests { @Test public void doesNotMatchIfLowerIsRequired() { - registerAndRefresh(Java5Required.class); + registerAndRefresh(Java7Required.class); assertPresent(false); } @Test public void matchesIfVersionIsInRange() { - registerAndRefresh(Java6Required.class); + registerAndRefresh(Java8Required.class); assertPresent(true); } @Test public void boundsTests() throws Exception { - testBounds(Range.EQUAL_OR_NEWER, JavaVersion.SEVEN, JavaVersion.SIX, true); - testBounds(Range.EQUAL_OR_NEWER, JavaVersion.SEVEN, JavaVersion.SEVEN, true); - testBounds(Range.EQUAL_OR_NEWER, JavaVersion.SEVEN, JavaVersion.EIGHT, false); - testBounds(Range.OLDER_THAN, JavaVersion.SEVEN, JavaVersion.SIX, false); - testBounds(Range.OLDER_THAN, JavaVersion.SEVEN, JavaVersion.SEVEN, false); - testBounds(Range.OLDER_THAN, JavaVersion.SEVEN, JavaVersion.EIGHT, true); + testBounds(Range.EQUAL_OR_NEWER, JavaVersion.NINE, JavaVersion.EIGHT, true); + testBounds(Range.EQUAL_OR_NEWER, JavaVersion.EIGHT, JavaVersion.EIGHT, true); + testBounds(Range.EQUAL_OR_NEWER, JavaVersion.EIGHT, JavaVersion.NINE, false); + testBounds(Range.OLDER_THAN, JavaVersion.NINE, JavaVersion.EIGHT, false); + testBounds(Range.OLDER_THAN, JavaVersion.EIGHT, JavaVersion.EIGHT, false); + testBounds(Range.OLDER_THAN, JavaVersion.EIGHT, JavaVersion.NINE, true); } @Test public void equalOrNewerMessage() throws Exception { ConditionOutcome outcome = this.condition.getMatchOutcome(Range.EQUAL_OR_NEWER, - JavaVersion.SEVEN, JavaVersion.SIX); + JavaVersion.NINE, JavaVersion.EIGHT); assertThat(outcome.getMessage()) - .isEqualTo("@ConditionalOnJava (1.6 or newer) found 1.7"); + .isEqualTo("@ConditionalOnJava (1.8 or newer) found 1.9"); } @Test public void olderThanMessage() throws Exception { ConditionOutcome outcome = this.condition.getMatchOutcome(Range.OLDER_THAN, - JavaVersion.SEVEN, JavaVersion.SIX); + JavaVersion.NINE, JavaVersion.EIGHT); assertThat(outcome.getMessage()) - .isEqualTo("@ConditionalOnJava (older than 1.6) found 1.7"); + .isEqualTo("@ConditionalOnJava (older than 1.8) found 1.9"); } @Test @@ -98,19 +98,9 @@ public class ConditionalOnJavaTests { } @Test - public void java7IsDetected() throws Exception { - assertThat(getJavaVersion(Function.class)).isEqualTo("1.7"); - } - - @Test - public void java6IsDetected() throws Exception { - assertThat(getJavaVersion(Function.class, Files.class)).isEqualTo("1.6"); - } - - @Test - public void java6IsTheFallback() throws Exception { + public void java8IsTheFallback() throws Exception { assertThat(getJavaVersion(Function.class, Files.class, ServiceLoader.class)) - .isEqualTo("1.6"); + .isEqualTo("1.8"); } private String getJavaVersion(Class... hiddenClasses) throws Exception { @@ -181,8 +171,8 @@ public class ConditionalOnJavaTests { } @Configuration - @ConditionalOnJava(range = Range.OLDER_THAN, value = JavaVersion.SIX) - static class Java5Required { + @ConditionalOnJava(range = Range.OLDER_THAN, value = JavaVersion.EIGHT) + static class Java7Required { @Bean String foo() { return "foo"; @@ -190,8 +180,8 @@ public class ConditionalOnJavaTests { } @Configuration - @ConditionalOnJava(JavaVersion.SIX) - static class Java6Required { + @ConditionalOnJava(JavaVersion.EIGHT) + static class Java8Required { @Bean String foo() { return "foo";