29
29
30
30
import org .springframework .boot .autoconfigure .condition .ConditionalOnJava .Range ;
31
31
import org .springframework .boot .system .JavaVersion ;
32
+ import org .springframework .boot .test .Assume ;
33
+ import org .springframework .boot .test .context .HideClassesClassLoader ;
32
34
import org .springframework .boot .test .context .runner .ApplicationContextRunner ;
33
35
import org .springframework .context .annotation .Bean ;
34
36
import org .springframework .context .annotation .Configuration ;
@@ -50,6 +52,7 @@ public class ConditionalOnJavaTests {
50
52
51
53
@ Test
52
54
public void doesNotMatchIfBetterVersionIsRequired () {
55
+ Assume .javaVersion (JavaVersion .EIGHT );
53
56
this .contextRunner .withUserConfiguration (Java9Required .class )
54
57
.run ((context ) -> assertThat (context ).doesNotHaveBean (String .class ));
55
58
}
@@ -94,18 +97,19 @@ public void olderThanMessage() throws Exception {
94
97
95
98
@ Test
96
99
public void java8IsDetected () throws Exception {
100
+ Assume .javaVersion (JavaVersion .EIGHT );
97
101
assertThat (getJavaVersion ()).isEqualTo ("1.8" );
98
102
}
99
103
100
104
@ Test
101
105
public void java8IsTheFallback () throws Exception {
106
+ Assume .javaVersion (JavaVersion .EIGHT );
102
107
assertThat (getJavaVersion (Function .class , Files .class , ServiceLoader .class ))
103
108
.isEqualTo ("1.8" );
104
109
}
105
110
106
111
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 );
109
113
Class <?> javaVersionClass = classLoader
110
114
.loadClass (JavaVersion .class .getName ());
111
115
Method getJavaVersionMethod = ReflectionUtils .findMethod (javaVersionClass ,
0 commit comments