Update ConditionalOnJava and its usage now that Boot requires Java 8
Closes gh-6982
This commit is contained in:
parent
8026b2e7a0
commit
05732613dd
|
|
@ -86,17 +86,7 @@ public @interface ConditionalOnJava {
|
||||||
/**
|
/**
|
||||||
* Java 1.8.
|
* Java 1.8.
|
||||||
*/
|
*/
|
||||||
EIGHT(8, "1.8", "java.util.function.Function"),
|
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");
|
|
||||||
|
|
||||||
private final int value;
|
private final int value;
|
||||||
|
|
||||||
|
|
@ -143,7 +133,7 @@ public @interface ConditionalOnJava {
|
||||||
return candidate;
|
return candidate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return SIX;
|
return EIGHT;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,6 @@ import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.BeanFactoryUtils;
|
import org.springframework.beans.factory.BeanFactoryUtils;
|
||||||
import org.springframework.beans.factory.ListableBeanFactory;
|
import org.springframework.beans.factory.ListableBeanFactory;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
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.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.boot.jackson.JsonComponentModule;
|
import org.springframework.boot.jackson.JsonComponentModule;
|
||||||
|
|
@ -148,7 +146,6 @@ public class JacksonAutoConfiguration {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnJava(JavaVersion.EIGHT)
|
|
||||||
@ConditionalOnClass(ParameterNamesModule.class)
|
@ConditionalOnClass(ParameterNamesModule.class)
|
||||||
static class ParameterNamesModuleConfiguration {
|
static class ParameterNamesModuleConfiguration {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ import org.springframework.beans.factory.ObjectProvider;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
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.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||||
|
|
@ -245,7 +244,6 @@ public class ThymeleafAutoConfiguration {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnJava(ConditionalOnJava.JavaVersion.EIGHT)
|
|
||||||
@ConditionalOnClass(Java8TimeDialect.class)
|
@ConditionalOnClass(Java8TimeDialect.class)
|
||||||
protected static class ThymeleafJava8TimeDialect {
|
protected static class ThymeleafJava8TimeDialect {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,6 @@ import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainer
|
||||||
|
|
||||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
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.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||||
import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration;
|
import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration;
|
||||||
|
|
@ -64,7 +62,6 @@ public class WebSocketAutoConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean(name = "websocketContainerCustomizer")
|
@ConditionalOnMissingBean(name = "websocketContainerCustomizer")
|
||||||
@ConditionalOnJava(JavaVersion.SEVEN)
|
|
||||||
public TomcatWebSocketContainerCustomizer websocketContainerCustomizer() {
|
public TomcatWebSocketContainerCustomizer websocketContainerCustomizer() {
|
||||||
return new TomcatWebSocketContainerCustomizer();
|
return new TomcatWebSocketContainerCustomizer();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,40 +56,40 @@ public class ConditionalOnJavaTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void doesNotMatchIfLowerIsRequired() {
|
public void doesNotMatchIfLowerIsRequired() {
|
||||||
registerAndRefresh(Java5Required.class);
|
registerAndRefresh(Java7Required.class);
|
||||||
assertPresent(false);
|
assertPresent(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void matchesIfVersionIsInRange() {
|
public void matchesIfVersionIsInRange() {
|
||||||
registerAndRefresh(Java6Required.class);
|
registerAndRefresh(Java8Required.class);
|
||||||
assertPresent(true);
|
assertPresent(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void boundsTests() throws Exception {
|
public void boundsTests() throws Exception {
|
||||||
testBounds(Range.EQUAL_OR_NEWER, JavaVersion.SEVEN, JavaVersion.SIX, true);
|
testBounds(Range.EQUAL_OR_NEWER, JavaVersion.NINE, JavaVersion.EIGHT, true);
|
||||||
testBounds(Range.EQUAL_OR_NEWER, JavaVersion.SEVEN, JavaVersion.SEVEN, true);
|
testBounds(Range.EQUAL_OR_NEWER, JavaVersion.EIGHT, JavaVersion.EIGHT, true);
|
||||||
testBounds(Range.EQUAL_OR_NEWER, JavaVersion.SEVEN, JavaVersion.EIGHT, false);
|
testBounds(Range.EQUAL_OR_NEWER, JavaVersion.EIGHT, JavaVersion.NINE, false);
|
||||||
testBounds(Range.OLDER_THAN, JavaVersion.SEVEN, JavaVersion.SIX, false);
|
testBounds(Range.OLDER_THAN, JavaVersion.NINE, JavaVersion.EIGHT, false);
|
||||||
testBounds(Range.OLDER_THAN, JavaVersion.SEVEN, JavaVersion.SEVEN, false);
|
testBounds(Range.OLDER_THAN, JavaVersion.EIGHT, JavaVersion.EIGHT, false);
|
||||||
testBounds(Range.OLDER_THAN, JavaVersion.SEVEN, JavaVersion.EIGHT, true);
|
testBounds(Range.OLDER_THAN, JavaVersion.EIGHT, JavaVersion.NINE, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void equalOrNewerMessage() throws Exception {
|
public void equalOrNewerMessage() throws Exception {
|
||||||
ConditionOutcome outcome = this.condition.getMatchOutcome(Range.EQUAL_OR_NEWER,
|
ConditionOutcome outcome = this.condition.getMatchOutcome(Range.EQUAL_OR_NEWER,
|
||||||
JavaVersion.SEVEN, JavaVersion.SIX);
|
JavaVersion.NINE, JavaVersion.EIGHT);
|
||||||
assertThat(outcome.getMessage())
|
assertThat(outcome.getMessage())
|
||||||
.isEqualTo("@ConditionalOnJava (1.6 or newer) found 1.7");
|
.isEqualTo("@ConditionalOnJava (1.8 or newer) found 1.9");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void olderThanMessage() throws Exception {
|
public void olderThanMessage() throws Exception {
|
||||||
ConditionOutcome outcome = this.condition.getMatchOutcome(Range.OLDER_THAN,
|
ConditionOutcome outcome = this.condition.getMatchOutcome(Range.OLDER_THAN,
|
||||||
JavaVersion.SEVEN, JavaVersion.SIX);
|
JavaVersion.NINE, JavaVersion.EIGHT);
|
||||||
assertThat(outcome.getMessage())
|
assertThat(outcome.getMessage())
|
||||||
.isEqualTo("@ConditionalOnJava (older than 1.6) found 1.7");
|
.isEqualTo("@ConditionalOnJava (older than 1.8) found 1.9");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -98,19 +98,9 @@ public class ConditionalOnJavaTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void java7IsDetected() throws Exception {
|
public void java8IsTheFallback() 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 {
|
|
||||||
assertThat(getJavaVersion(Function.class, Files.class, ServiceLoader.class))
|
assertThat(getJavaVersion(Function.class, Files.class, ServiceLoader.class))
|
||||||
.isEqualTo("1.6");
|
.isEqualTo("1.8");
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getJavaVersion(Class<?>... hiddenClasses) throws Exception {
|
private String getJavaVersion(Class<?>... hiddenClasses) throws Exception {
|
||||||
|
|
@ -181,8 +171,8 @@ public class ConditionalOnJavaTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnJava(range = Range.OLDER_THAN, value = JavaVersion.SIX)
|
@ConditionalOnJava(range = Range.OLDER_THAN, value = JavaVersion.EIGHT)
|
||||||
static class Java5Required {
|
static class Java7Required {
|
||||||
@Bean
|
@Bean
|
||||||
String foo() {
|
String foo() {
|
||||||
return "foo";
|
return "foo";
|
||||||
|
|
@ -190,8 +180,8 @@ public class ConditionalOnJavaTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnJava(JavaVersion.SIX)
|
@ConditionalOnJava(JavaVersion.EIGHT)
|
||||||
static class Java6Required {
|
static class Java8Required {
|
||||||
@Bean
|
@Bean
|
||||||
String foo() {
|
String foo() {
|
||||||
return "foo";
|
return "foo";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue