Commit a07833fb authored by Andy Wilkinson's avatar Andy Wilkinson Committed by Stephane Nicoll

Make BootRunIntegrationTests compatible with Java 9

Closes gh-10019
parent 3cf0f651
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
package com.example; package com.example;
import java.net.URL; import java.io.File;
import java.net.URLClassLoader; import java.lang.management.ManagementFactory;
/** /**
* Very basic application used for testing {@code BootRun}. * Very basic application used for testing {@code BootRun}.
...@@ -32,11 +32,10 @@ public class BootRunApplication { ...@@ -32,11 +32,10 @@ public class BootRunApplication {
public static void main(String[] args) { public static void main(String[] args) {
int i = 1; int i = 1;
for (URL url : ((URLClassLoader) BootRunApplication.class.getClassLoader()) for (String entry : ManagementFactory.getRuntimeMXBean().getClassPath()
.getURLs()) { .split(File.pathSeparator)) {
System.out.println(i++ + ". " + url); System.out.println(i++ + ". " + entry);
} }
} }
} }
...@@ -48,9 +48,12 @@ public class BootRunIntegrationTests { ...@@ -48,9 +48,12 @@ public class BootRunIntegrationTests {
new File(this.gradleBuild.getProjectDir(), "src/main/resources").mkdirs(); new File(this.gradleBuild.getProjectDir(), "src/main/resources").mkdirs();
BuildResult result = this.gradleBuild.build("bootRun"); BuildResult result = this.gradleBuild.build("bootRun");
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
assertThat(result.getOutput()).contains("1. " + urlOf("build/classes/java/main")); assertThat(result.getOutput())
assertThat(result.getOutput()).contains("2. " + urlOf("build/resources/main")); .contains("1. " + canonicalPathOf("build/classes/java/main"));
assertThat(result.getOutput()).doesNotContain(urlOf("src/main/resources")); assertThat(result.getOutput())
.contains("2. " + canonicalPathOf("build/resources/main"));
assertThat(result.getOutput())
.doesNotContain(canonicalPathOf("src/main/resources"));
} }
@Test @Test
...@@ -58,9 +61,12 @@ public class BootRunIntegrationTests { ...@@ -58,9 +61,12 @@ public class BootRunIntegrationTests {
copyApplication(); copyApplication();
BuildResult result = this.gradleBuild.build("bootRun"); BuildResult result = this.gradleBuild.build("bootRun");
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
assertThat(result.getOutput()).contains("1. " + urlOf("src/main/resources")); assertThat(result.getOutput())
assertThat(result.getOutput()).contains("2. " + urlOf("build/classes/java/main")); .contains("1. " + canonicalPathOf("src/main/resources"));
assertThat(result.getOutput()).doesNotContain(urlOf("build/resources/main")); assertThat(result.getOutput())
.contains("2. " + canonicalPathOf("build/classes/java/main"));
assertThat(result.getOutput())
.doesNotContain(canonicalPathOf("build/resources/main"));
} }
@Test @Test
...@@ -98,9 +104,8 @@ public class BootRunIntegrationTests { ...@@ -98,9 +104,8 @@ public class BootRunIntegrationTests {
FileSystemUtils.copyRecursively(new File("src/test/java/com/example"), output); FileSystemUtils.copyRecursively(new File("src/test/java/com/example"), output);
} }
private String urlOf(String path) throws IOException { private String canonicalPathOf(String path) throws IOException {
return new File(this.gradleBuild.getProjectDir().getCanonicalFile(), path).toURI() return new File(this.gradleBuild.getProjectDir(), path).getCanonicalPath();
.toURL().toString();
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment