From d0b8a8482160e1cae0671d3b7e7e5b672c4a6ab1 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 1 Mar 2018 11:36:29 +0000 Subject: [PATCH] Use settings.xml to pass repository into server integration tests Closes gh-12293 --- .../context/embedded/ApplicationBuilder.java | 20 +++++++----- .../src/test/resources/pom-template.xml | 28 ---------------- .../src/test/resources/settings-template.xml | 32 +++++++++++++++++++ 3 files changed, 44 insertions(+), 36 deletions(-) create mode 100644 spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/settings-template.xml 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 d8c1988a9a..0bbf8afd7a 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 @@ -24,7 +24,6 @@ import java.io.IOException; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.Properties; import java.util.jar.JarOutputStream; import java.util.zip.ZipEntry; @@ -37,7 +36,6 @@ 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; @@ -74,6 +72,7 @@ class ApplicationBuilder { File resourcesJar = createResourcesJar(); File appFolder = new File(containerFolder, "app"); appFolder.mkdirs(); + writeSettingsXml(appFolder); writePom(appFolder, resourcesJar); copyApplicationSource(appFolder); packageApplication(appFolder); @@ -110,6 +109,16 @@ class ApplicationBuilder { out.close(); } + private void writeSettingsXml(File appFolder) throws IOException { + 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(); + } + private void copyApplicationSource(File appFolder) throws IOException { File examplePackage = new File(appFolder, "src/main/java/com/example"); examplePackage.mkdirs(); @@ -128,12 +137,7 @@ class ApplicationBuilder { InvocationRequest invocation = new DefaultInvocationRequest(); invocation.setBaseDirectory(appFolder); invocation.setGoals(Collections.singletonList("package")); - String repository = System.getProperty("repository"); - if (StringUtils.hasText(repository) && !repository.equals("${repository}")) { - Properties properties = new Properties(); - properties.put("repository", repository); - invocation.setProperties(properties); - } + invocation.setUserSettingsFile(new File(appFolder, "settings.xml")); 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/pom-template.xml b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/pom-template.xml index 6d8206dbd6..b9f0411a4d 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/pom-template.xml +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/pom-template.xml @@ -61,32 +61,4 @@ - - - repository - - - repository - - - - - repository - ${repository} - - true - - - - - - repository - ${repository} - - true - - - - - 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 new file mode 100644 index 0000000000..1ea7c17681 --- /dev/null +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/resources/settings-template.xml @@ -0,0 +1,32 @@ + + + + + repository + + + repository + + + + + repository + ${repository} + + true + + + + + + repository + ${repository} + + true + + + + + +