diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/AbstractEmbeddedServletContainerIntegrationTests.java b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/AbstractEmbeddedServletContainerIntegrationTests.java index 1a80d4b81a..4982c438df 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/AbstractEmbeddedServletContainerIntegrationTests.java +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/AbstractEmbeddedServletContainerIntegrationTests.java @@ -40,7 +40,14 @@ import org.springframework.web.util.UriTemplateHandler; public abstract class AbstractEmbeddedServletContainerIntegrationTests { @ClassRule - public static final TemporaryFolder temporaryFolder = new TemporaryFolder(); + public static final TemporaryFolder temporaryFolder = new TemporaryFolder() { + + @Override + public void delete() { + + } + + }; @Rule public final AbstractApplicationLauncher launcher; diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/ApplicationBuilder.java b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/ApplicationBuilder.java index 0bbf8afd7a..fc95df1264 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/ApplicationBuilder.java +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/ApplicationBuilder.java @@ -36,6 +36,7 @@ import org.apache.maven.shared.invoker.MavenInvocationException; import org.junit.rules.TemporaryFolder; import org.springframework.util.FileCopyUtils; +import org.springframework.util.StringUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -72,10 +73,10 @@ class ApplicationBuilder { File resourcesJar = createResourcesJar(); File appFolder = new File(containerFolder, "app"); appFolder.mkdirs(); - writeSettingsXml(appFolder); + File settingsXml = writeSettingsXml(appFolder); writePom(appFolder, resourcesJar); copyApplicationSource(appFolder); - packageApplication(appFolder); + packageApplication(appFolder, settingsXml); return new File(appFolder, "target/app-0.0.1." + this.packaging); } @@ -109,14 +110,20 @@ class ApplicationBuilder { out.close(); } - private void writeSettingsXml(File appFolder) throws IOException { + private File writeSettingsXml(File appFolder) throws IOException { + String repository = System.getProperty("repository"); + if (!StringUtils.hasText(repository)) { + return null; + } Map context = new HashMap<>(); - context.put("repository", System.getProperty("repository")); - FileWriter out = new FileWriter(new File(appFolder, "settings.xml")); - Mustache.compiler().escapeHTML(false) - .compile(new FileReader("src/test/resources/settings-template.xml")) - .execute(context, out); - out.close(); + context.put("repository", repository); + File settingsXml = new File(appFolder, "settings.xml"); + try (FileWriter out = new FileWriter(settingsXml)) { + Mustache.compiler().escapeHTML(false) + .compile(new FileReader("src/test/resources/settings-template.xml")) + .execute(context, out); + } + return settingsXml; } private void copyApplicationSource(File appFolder) throws IOException { @@ -133,11 +140,14 @@ class ApplicationBuilder { } } - private void packageApplication(File appFolder) throws MavenInvocationException { + private void packageApplication(File appFolder, File settingsXml) + throws MavenInvocationException { InvocationRequest invocation = new DefaultInvocationRequest(); invocation.setBaseDirectory(appFolder); invocation.setGoals(Collections.singletonList("package")); - invocation.setUserSettingsFile(new File(appFolder, "settings.xml")); + if (settingsXml != null) { + invocation.setUserSettingsFile(settingsXml); + } InvocationResult execute = new DefaultInvoker().execute(invocation); assertThat(execute.getExitCode()).isEqualTo(0); } diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/settings-template.xml b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/settings-template.xml index 1ea7c17681..5cf9a073f9 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/settings-template.xml +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/settings-template.xml @@ -5,14 +5,12 @@ repository - - repository - + true repository - ${repository} + {{repository}} true @@ -21,7 +19,7 @@ repository - ${repository} + {{repository}} true