diff --git a/initializr-generator/src/main/groovy/io/spring/initializr/generator/ProjectGenerator.groovy b/initializr-generator/src/main/groovy/io/spring/initializr/generator/ProjectGenerator.groovy index fc83c410..0d1acfb6 100644 --- a/initializr-generator/src/main/groovy/io/spring/initializr/generator/ProjectGenerator.groovy +++ b/initializr-generator/src/main/groovy/io/spring/initializr/generator/ProjectGenerator.groovy @@ -46,6 +46,8 @@ class ProjectGenerator { private static final VERSION_1_4_0_M2 = Version.parse('1.4.0.M2') + private static final VERSION_1_4_0_M3 = Version.parse('1.4.0.M3') + @Autowired ApplicationEventPublisher eventPublisher @@ -227,6 +229,9 @@ class ProjectGenerator { // New testing stuff model['newTestInfrastructure'] = isNewTestInfrastructureAvailable(request) + // New Servlet Initializer location + model['newServletInitializer'] = isNewServletInitializerAvailable(request) + model } @@ -264,6 +269,11 @@ class ProjectGenerator { .compareTo(Version.safeParse(request.bootVersion)) <= 0 } + private static boolean isNewServletInitializerAvailable(ProjectRequest request) { + VERSION_1_4_0_M3 + .compareTo(Version.safeParse(request.bootVersion)) <= 0 + } + private byte[] doGenerateMavenPom(Map model) { template 'starter-pom.xml', model } diff --git a/initializr-generator/src/main/resources/templates/ServletInitializer.groovy.tmpl b/initializr-generator/src/main/resources/templates/ServletInitializer.groovy.tmpl index 793260d4..5f3f1a87 100644 --- a/initializr-generator/src/main/resources/templates/ServletInitializer.groovy.tmpl +++ b/initializr-generator/src/main/resources/templates/ServletInitializer.groovy.tmpl @@ -1,7 +1,8 @@ package ${packageName} -import org.springframework.boot.builder.SpringApplicationBuilder -import org.springframework.boot.context.web.SpringBootServletInitializer +import org.springframework.boot.builder.SpringApplicationBuilder<% if (newTestInfrastructure) { %> +import org.springframework.boot.web.support.SpringBootServletInitializer<% } else { %> +import org.springframework.boot.context.web.SpringBootServletInitializer<% } %> class ServletInitializer extends SpringBootServletInitializer { diff --git a/initializr-generator/src/main/resources/templates/ServletInitializer.java b/initializr-generator/src/main/resources/templates/ServletInitializer.java index eca3ef88..4a6f9722 100644 --- a/initializr-generator/src/main/resources/templates/ServletInitializer.java +++ b/initializr-generator/src/main/resources/templates/ServletInitializer.java @@ -1,7 +1,8 @@ package ${packageName}; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.context.web.SpringBootServletInitializer; +import org.springframework.boot.builder.SpringApplicationBuilder;<% if (newTestInfrastructure) { %> +import org.springframework.boot.web.support.SpringBootServletInitializer;<% } else { %> +import org.springframework.boot.context.web.SpringBootServletInitializer;<% } %> public class ServletInitializer extends SpringBootServletInitializer { diff --git a/initializr-generator/src/main/resources/templates/ServletInitializer.kt b/initializr-generator/src/main/resources/templates/ServletInitializer.kt index 9fca14c6..495f9392 100644 --- a/initializr-generator/src/main/resources/templates/ServletInitializer.kt +++ b/initializr-generator/src/main/resources/templates/ServletInitializer.kt @@ -1,7 +1,8 @@ package ${packageName} -import org.springframework.boot.builder.SpringApplicationBuilder -import org.springframework.boot.context.web.SpringBootServletInitializer +import org.springframework.boot.builder.SpringApplicationBuilder<% if (newTestInfrastructure) { %> +import org.springframework.boot.web.support.SpringBootServletInitializer<% } else { %> +import org.springframework.boot.context.web.SpringBootServletInitializer<% } %> class ServletInitializer : SpringBootServletInitializer() { diff --git a/initializr-generator/src/test/groovy/io/spring/initializr/generator/ProjectGeneratorLanguageTests.groovy b/initializr-generator/src/test/groovy/io/spring/initializr/generator/ProjectGeneratorLanguageTests.groovy index 1ede7597..e70c8130 100644 --- a/initializr-generator/src/test/groovy/io/spring/initializr/generator/ProjectGeneratorLanguageTests.groovy +++ b/initializr-generator/src/test/groovy/io/spring/initializr/generator/ProjectGeneratorLanguageTests.groovy @@ -110,25 +110,36 @@ class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests { } @Test - public void test14TestClass() { + public void springBoot14ServletInitializer() { + def request = createProjectRequest() + request.language = language + request.packaging = 'war' + request.bootVersion = '1.4.0.M3' + def project = generateProject(request) + project.sourceCodeAssert("src/main/$language/com/example/ServletInitializer.$extension") + .equalsTo(new ClassPathResource("project/$language/spring-boot-1.4/ServletInitializer.$expectedExtension")) + } + + @Test + public void springBoot14TestClass() { def request = createProjectRequest() request.language = language request.bootVersion = '1.4.0.M2' def project = generateProject(request) project.sourceCodeAssert("src/test/$language/com/example/DemoApplicationTests.$extension") - .equalsTo(new ClassPathResource("project/$language/test-1.4/DemoApplicationTests.$expectedExtension")) + .equalsTo(new ClassPathResource("project/$language/spring-boot-1.4/DemoApplicationTests.$expectedExtension")) } @Test - public void test14TestClassWeb() { + public void springBoot14TestClassWeb() { def request = createProjectRequest('web') request.language = language request.bootVersion = '1.4.0.M2' def project = generateProject(request) project.sourceCodeAssert("src/test/$language/com/example/DemoApplicationTests.$extension") - .equalsTo(new ClassPathResource("project/$language/test-1.4/DemoApplicationTests.$expectedExtension")) + .equalsTo(new ClassPathResource("project/$language/spring-boot-1.4/DemoApplicationTests.$expectedExtension")) } } diff --git a/initializr-generator/src/test/resources/project/groovy/test-1.4/DemoApplicationTests.groovy.gen b/initializr-generator/src/test/resources/project/groovy/spring-boot-1.4/DemoApplicationTests.groovy.gen similarity index 100% rename from initializr-generator/src/test/resources/project/groovy/test-1.4/DemoApplicationTests.groovy.gen rename to initializr-generator/src/test/resources/project/groovy/spring-boot-1.4/DemoApplicationTests.groovy.gen diff --git a/initializr-generator/src/test/resources/project/groovy/spring-boot-1.4/ServletInitializer.groovy.gen b/initializr-generator/src/test/resources/project/groovy/spring-boot-1.4/ServletInitializer.groovy.gen new file mode 100644 index 00000000..69e42c51 --- /dev/null +++ b/initializr-generator/src/test/resources/project/groovy/spring-boot-1.4/ServletInitializer.groovy.gen @@ -0,0 +1,13 @@ +package com.example + +import org.springframework.boot.builder.SpringApplicationBuilder +import org.springframework.boot.web.support.SpringBootServletInitializer + +class ServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + application.sources(DemoApplication) + } + +} diff --git a/initializr-generator/src/test/resources/project/java/test-1.4/DemoApplicationTests.java.gen b/initializr-generator/src/test/resources/project/java/spring-boot-1.4/DemoApplicationTests.java.gen similarity index 100% rename from initializr-generator/src/test/resources/project/java/test-1.4/DemoApplicationTests.java.gen rename to initializr-generator/src/test/resources/project/java/spring-boot-1.4/DemoApplicationTests.java.gen diff --git a/initializr-generator/src/test/resources/project/java/spring-boot-1.4/ServletInitializer.java.gen b/initializr-generator/src/test/resources/project/java/spring-boot-1.4/ServletInitializer.java.gen new file mode 100644 index 00000000..fa52f242 --- /dev/null +++ b/initializr-generator/src/test/resources/project/java/spring-boot-1.4/ServletInitializer.java.gen @@ -0,0 +1,13 @@ +package com.example; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +public class ServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(DemoApplication.class); + } + +} diff --git a/initializr-generator/src/test/resources/project/kotlin/test-1.4/DemoApplicationTests.kt.gen b/initializr-generator/src/test/resources/project/kotlin/spring-boot-1.4/DemoApplicationTests.kt.gen similarity index 100% rename from initializr-generator/src/test/resources/project/kotlin/test-1.4/DemoApplicationTests.kt.gen rename to initializr-generator/src/test/resources/project/kotlin/spring-boot-1.4/DemoApplicationTests.kt.gen diff --git a/initializr-generator/src/test/resources/project/kotlin/spring-boot-1.4/ServletInitializer.kt.gen b/initializr-generator/src/test/resources/project/kotlin/spring-boot-1.4/ServletInitializer.kt.gen new file mode 100644 index 00000000..ee07b8cd --- /dev/null +++ b/initializr-generator/src/test/resources/project/kotlin/spring-boot-1.4/ServletInitializer.kt.gen @@ -0,0 +1,12 @@ +package com.example + +import org.springframework.boot.builder.SpringApplicationBuilder +import org.springframework.boot.web.support.SpringBootServletInitializer + +class ServletInitializer : SpringBootServletInitializer() { + + override fun configure(application: SpringApplicationBuilder) : SpringApplicationBuilder { + return application.sources(DemoApplication::class.java) + } + +}