Skip to content

Commit 6bf3377

Browse files
committed
Fix ConditionalOnJavaTests with Java 9
See gh-7226
1 parent 1403ff1 commit 6bf3377

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJavaTests.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929

3030
import org.springframework.boot.autoconfigure.condition.ConditionalOnJava.Range;
3131
import org.springframework.boot.system.JavaVersion;
32+
import org.springframework.boot.test.Assume;
33+
import org.springframework.boot.test.context.HideClassesClassLoader;
3234
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3335
import org.springframework.context.annotation.Bean;
3436
import org.springframework.context.annotation.Configuration;
@@ -50,6 +52,7 @@ public class ConditionalOnJavaTests {
5052

5153
@Test
5254
public void doesNotMatchIfBetterVersionIsRequired() {
55+
Assume.javaVersion(JavaVersion.EIGHT);
5356
this.contextRunner.withUserConfiguration(Java9Required.class)
5457
.run((context) -> assertThat(context).doesNotHaveBean(String.class));
5558
}
@@ -94,18 +97,19 @@ public void olderThanMessage() throws Exception {
9497

9598
@Test
9699
public void java8IsDetected() throws Exception {
100+
Assume.javaVersion(JavaVersion.EIGHT);
97101
assertThat(getJavaVersion()).isEqualTo("1.8");
98102
}
99103

100104
@Test
101105
public void java8IsTheFallback() throws Exception {
106+
Assume.javaVersion(JavaVersion.EIGHT);
102107
assertThat(getJavaVersion(Function.class, Files.class, ServiceLoader.class))
103108
.isEqualTo("1.8");
104109
}
105110

106111
private String getJavaVersion(Class<?>... hiddenClasses) throws Exception {
107-
URL[] urls = ((URLClassLoader) getClass().getClassLoader()).getURLs();
108-
URLClassLoader classLoader = new ClassHidingClassLoader(urls, hiddenClasses);
112+
HideClassesClassLoader classLoader = new HideClassesClassLoader(hiddenClasses);
109113
Class<?> javaVersionClass = classLoader
110114
.loadClass(JavaVersion.class.getName());
111115
Method getJavaVersionMethod = ReflectionUtils.findMethod(javaVersionClass,

0 commit comments

Comments
 (0)