Skip to content

Commit a07833f

Browse files
wilkinsonasnicoll
authored andcommitted
Make BootRunIntegrationTests compatible with Java 9
Closes gh-10019
1 parent 3cf0f65 commit a07833f

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

spring-boot-tools/spring-boot-gradle-plugin/src/test/java/com/example/BootRunApplication.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
package com.example;
1818

19-
import java.net.URL;
20-
import java.net.URLClassLoader;
19+
import java.io.File;
20+
import java.lang.management.ManagementFactory;
2121

2222
/**
2323
* Very basic application used for testing {@code BootRun}.
@@ -32,11 +32,10 @@ protected BootRunApplication() {
3232

3333
public static void main(String[] args) {
3434
int i = 1;
35-
for (URL url : ((URLClassLoader) BootRunApplication.class.getClassLoader())
36-
.getURLs()) {
37-
System.out.println(i++ + ". " + url);
35+
for (String entry : ManagementFactory.getRuntimeMXBean().getClassPath()
36+
.split(File.pathSeparator)) {
37+
System.out.println(i++ + ". " + entry);
3838
}
39-
4039
}
4140

4241
}

spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/run/BootRunIntegrationTests.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,25 @@ public void basicExecution() throws IOException {
4848
new File(this.gradleBuild.getProjectDir(), "src/main/resources").mkdirs();
4949
BuildResult result = this.gradleBuild.build("bootRun");
5050
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
51-
assertThat(result.getOutput()).contains("1. " + urlOf("build/classes/java/main"));
52-
assertThat(result.getOutput()).contains("2. " + urlOf("build/resources/main"));
53-
assertThat(result.getOutput()).doesNotContain(urlOf("src/main/resources"));
51+
assertThat(result.getOutput())
52+
.contains("1. " + canonicalPathOf("build/classes/java/main"));
53+
assertThat(result.getOutput())
54+
.contains("2. " + canonicalPathOf("build/resources/main"));
55+
assertThat(result.getOutput())
56+
.doesNotContain(canonicalPathOf("src/main/resources"));
5457
}
5558

5659
@Test
5760
public void sourceResourcesCanBeUsed() throws IOException {
5861
copyApplication();
5962
BuildResult result = this.gradleBuild.build("bootRun");
6063
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
61-
assertThat(result.getOutput()).contains("1. " + urlOf("src/main/resources"));
62-
assertThat(result.getOutput()).contains("2. " + urlOf("build/classes/java/main"));
63-
assertThat(result.getOutput()).doesNotContain(urlOf("build/resources/main"));
64+
assertThat(result.getOutput())
65+
.contains("1. " + canonicalPathOf("src/main/resources"));
66+
assertThat(result.getOutput())
67+
.contains("2. " + canonicalPathOf("build/classes/java/main"));
68+
assertThat(result.getOutput())
69+
.doesNotContain(canonicalPathOf("build/resources/main"));
6470
}
6571

6672
@Test
@@ -98,9 +104,8 @@ private void copyApplication() throws IOException {
98104
FileSystemUtils.copyRecursively(new File("src/test/java/com/example"), output);
99105
}
100106

101-
private String urlOf(String path) throws IOException {
102-
return new File(this.gradleBuild.getProjectDir().getCanonicalFile(), path).toURI()
103-
.toURL().toString();
107+
private String canonicalPathOf(String path) throws IOException {
108+
return new File(this.gradleBuild.getProjectDir(), path).getCanonicalPath();
104109
}
105110

106111
}

0 commit comments

Comments
 (0)