From a07833fb51dab319db6ed5afc30a70a00b0a2bb7 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 10 May 2017 14:53:43 +0100 Subject: [PATCH] Make BootRunIntegrationTests compatible with Java 9 Closes gh-10019 --- .../java/com/example/BootRunApplication.java | 11 ++++----- .../tasks/run/BootRunIntegrationTests.java | 23 +++++++++++-------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/com/example/BootRunApplication.java b/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/com/example/BootRunApplication.java index 95cc04e06f..7d343e2a2d 100644 --- a/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/com/example/BootRunApplication.java +++ b/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/com/example/BootRunApplication.java @@ -16,8 +16,8 @@ package com.example; -import java.net.URL; -import java.net.URLClassLoader; +import java.io.File; +import java.lang.management.ManagementFactory; /** * Very basic application used for testing {@code BootRun}. @@ -32,11 +32,10 @@ public class BootRunApplication { public static void main(String[] args) { int i = 1; - for (URL url : ((URLClassLoader) BootRunApplication.class.getClassLoader()) - .getURLs()) { - System.out.println(i++ + ". " + url); + for (String entry : ManagementFactory.getRuntimeMXBean().getClassPath() + .split(File.pathSeparator)) { + System.out.println(i++ + ". " + entry); } - } } diff --git a/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/run/BootRunIntegrationTests.java b/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/run/BootRunIntegrationTests.java index 6f96fe37f9..45701cf1af 100644 --- a/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/run/BootRunIntegrationTests.java +++ b/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/run/BootRunIntegrationTests.java @@ -48,9 +48,12 @@ public class BootRunIntegrationTests { new File(this.gradleBuild.getProjectDir(), "src/main/resources").mkdirs(); BuildResult result = this.gradleBuild.build("bootRun"); assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); - assertThat(result.getOutput()).contains("1. " + urlOf("build/classes/java/main")); - assertThat(result.getOutput()).contains("2. " + urlOf("build/resources/main")); - assertThat(result.getOutput()).doesNotContain(urlOf("src/main/resources")); + assertThat(result.getOutput()) + .contains("1. " + canonicalPathOf("build/classes/java/main")); + assertThat(result.getOutput()) + .contains("2. " + canonicalPathOf("build/resources/main")); + assertThat(result.getOutput()) + .doesNotContain(canonicalPathOf("src/main/resources")); } @Test @@ -58,9 +61,12 @@ public class BootRunIntegrationTests { copyApplication(); BuildResult result = this.gradleBuild.build("bootRun"); assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); - assertThat(result.getOutput()).contains("1. " + urlOf("src/main/resources")); - assertThat(result.getOutput()).contains("2. " + urlOf("build/classes/java/main")); - assertThat(result.getOutput()).doesNotContain(urlOf("build/resources/main")); + assertThat(result.getOutput()) + .contains("1. " + canonicalPathOf("src/main/resources")); + assertThat(result.getOutput()) + .contains("2. " + canonicalPathOf("build/classes/java/main")); + assertThat(result.getOutput()) + .doesNotContain(canonicalPathOf("build/resources/main")); } @Test @@ -98,9 +104,8 @@ public class BootRunIntegrationTests { FileSystemUtils.copyRecursively(new File("src/test/java/com/example"), output); } - private String urlOf(String path) throws IOException { - return new File(this.gradleBuild.getProjectDir().getCanonicalFile(), path).toURI() - .toURL().toString(); + private String canonicalPathOf(String path) throws IOException { + return new File(this.gradleBuild.getProjectDir(), path).getCanonicalPath(); } }