23
23
import java .util .function .Supplier ;
24
24
import java .util .stream .Stream ;
25
25
26
+ import org .junit .Assume ;
26
27
import org .junit .jupiter .params .ParameterizedTest ;
27
28
import org .junit .jupiter .params .provider .MethodSource ;
28
29
import org .testcontainers .containers .GenericContainer ;
32
33
import org .testcontainers .utility .DockerImageName ;
33
34
import org .testcontainers .utility .MountableFile ;
34
35
36
+ import org .springframework .boot .system .JavaVersion ;
35
37
import org .springframework .util .Assert ;
36
38
37
39
import static org .assertj .core .api .Assertions .assertThat ;
@@ -48,6 +50,7 @@ class LoaderIntegrationTests {
48
50
@ ParameterizedTest
49
51
@ MethodSource ("javaRuntimes" )
50
52
void readUrlsWithoutWarning (JavaRuntime javaRuntime ) {
53
+ javaRuntime .assumeCompatible ();
51
54
try (GenericContainer <?> container = createContainer (javaRuntime )) {
52
55
container .start ();
53
56
System .out .println (this .output .toUtf8String ());
@@ -72,32 +75,48 @@ private File findApplication() {
72
75
73
76
static Stream <JavaRuntime > javaRuntimes () {
74
77
List <JavaRuntime > javaRuntimes = new ArrayList <>();
75
- javaRuntimes .add (JavaRuntime .openJdk ("17" ));
78
+ javaRuntimes .add (JavaRuntime .openJdk (JavaVersion . SEVENTEEN ));
76
79
javaRuntimes .add (JavaRuntime .oracleJdk17 ());
77
80
return javaRuntimes .stream ();
78
81
}
79
82
80
83
static final class JavaRuntime {
81
84
85
+ private final String name ;
86
+
87
+ private final JavaVersion version ;
88
+
82
89
private final Supplier <GenericContainer <?>> container ;
83
90
84
- private JavaRuntime (Supplier <GenericContainer <?>> container ) {
91
+ private JavaRuntime (String name , JavaVersion version , Supplier <GenericContainer <?>> container ) {
92
+ this .name = name ;
93
+ this .version = version ;
85
94
this .container = container ;
86
95
}
87
96
97
+ private void assumeCompatible () {
98
+ Assume .assumeTrue (JavaVersion .getJavaVersion ().isEqualOrNewerThan (this .version ));
99
+ }
100
+
88
101
GenericContainer <?> getContainer () {
89
102
return this .container .get ();
90
103
}
91
104
92
- static JavaRuntime openJdk (String version ) {
93
- DockerImageName image = DockerImageName .parse ("bellsoft/liberica-openjdk-debian:" + version );
94
- return new JavaRuntime (() -> new GenericContainer <>(image ));
105
+ @ Override
106
+ public String toString () {
107
+ return this .name ;
108
+ }
109
+
110
+ static JavaRuntime openJdk (JavaVersion version ) {
111
+ String imageVersion = (version != JavaVersion .EIGHT ) ? version .toString () : "8" ;
112
+ DockerImageName image = DockerImageName .parse ("bellsoft/liberica-openjdk-debian:" + imageVersion );
113
+ return new JavaRuntime ("OpenJDK " + imageVersion , version , () -> new GenericContainer <>(image ));
95
114
}
96
115
97
116
static JavaRuntime oracleJdk17 () {
98
117
ImageFromDockerfile image = new ImageFromDockerfile ("spring-boot-loader/oracle-jdk-17" )
99
118
.withFileFromFile ("Dockerfile" , new File ("src/intTest/resources/conf/oracle-jdk-17/Dockerfile" ));
100
- return new JavaRuntime (() -> new GenericContainer <>(image ));
119
+ return new JavaRuntime ("Oracle JDK 17" , JavaVersion . SEVENTEEN , () -> new GenericContainer <>(image ));
101
120
}
102
121
103
122
}
0 commit comments