parent
1403ff1b00
commit
6bf33774fe
|
|
@ -29,6 +29,8 @@ import org.junit.Test;
|
||||||
|
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnJava.Range;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnJava.Range;
|
||||||
import org.springframework.boot.system.JavaVersion;
|
import org.springframework.boot.system.JavaVersion;
|
||||||
|
import org.springframework.boot.test.Assume;
|
||||||
|
import org.springframework.boot.test.context.HideClassesClassLoader;
|
||||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
@ -50,6 +52,7 @@ public class ConditionalOnJavaTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void doesNotMatchIfBetterVersionIsRequired() {
|
public void doesNotMatchIfBetterVersionIsRequired() {
|
||||||
|
Assume.javaVersion(JavaVersion.EIGHT);
|
||||||
this.contextRunner.withUserConfiguration(Java9Required.class)
|
this.contextRunner.withUserConfiguration(Java9Required.class)
|
||||||
.run((context) -> assertThat(context).doesNotHaveBean(String.class));
|
.run((context) -> assertThat(context).doesNotHaveBean(String.class));
|
||||||
}
|
}
|
||||||
|
|
@ -94,18 +97,19 @@ public class ConditionalOnJavaTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void java8IsDetected() throws Exception {
|
public void java8IsDetected() throws Exception {
|
||||||
|
Assume.javaVersion(JavaVersion.EIGHT);
|
||||||
assertThat(getJavaVersion()).isEqualTo("1.8");
|
assertThat(getJavaVersion()).isEqualTo("1.8");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void java8IsTheFallback() throws Exception {
|
public void java8IsTheFallback() throws Exception {
|
||||||
|
Assume.javaVersion(JavaVersion.EIGHT);
|
||||||
assertThat(getJavaVersion(Function.class, Files.class, ServiceLoader.class))
|
assertThat(getJavaVersion(Function.class, Files.class, ServiceLoader.class))
|
||||||
.isEqualTo("1.8");
|
.isEqualTo("1.8");
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getJavaVersion(Class<?>... hiddenClasses) throws Exception {
|
private String getJavaVersion(Class<?>... hiddenClasses) throws Exception {
|
||||||
URL[] urls = ((URLClassLoader) getClass().getClassLoader()).getURLs();
|
HideClassesClassLoader classLoader = new HideClassesClassLoader(hiddenClasses);
|
||||||
URLClassLoader classLoader = new ClassHidingClassLoader(urls, hiddenClasses);
|
|
||||||
Class<?> javaVersionClass = classLoader
|
Class<?> javaVersionClass = classLoader
|
||||||
.loadClass(JavaVersion.class.getName());
|
.loadClass(JavaVersion.class.getName());
|
||||||
Method getJavaVersionMethod = ReflectionUtils.findMethod(javaVersionClass,
|
Method getJavaVersionMethod = ReflectionUtils.findMethod(javaVersionClass,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue