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.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
Loading…
Reference in New Issue