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 ff201899..9b3d8439 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 @@ -132,7 +132,7 @@ class ProjectGenerator { write(new File(src, "${applicationName}.${extension}"), "Application.$extension", model) if (request.packaging == 'war') { - def fileName = "ServletInitializer.$language" + def fileName = "ServletInitializer.$extension" write(new File(src, fileName), fileName, model) } diff --git a/initializr-generator/src/test/groovy/io/spring/initializr/generator/ProjectGeneratorTests.groovy b/initializr-generator/src/test/groovy/io/spring/initializr/generator/ProjectGeneratorTests.groovy index 700e9478..c09a8868 100644 --- a/initializr-generator/src/test/groovy/io/spring/initializr/generator/ProjectGeneratorTests.groovy +++ b/initializr-generator/src/test/groovy/io/spring/initializr/generator/ProjectGeneratorTests.groovy @@ -554,6 +554,14 @@ class ProjectGeneratorTests { .hasDependenciesCount(3) } + @Test + void kotlinWar() { + def request = createProjectRequest('web') + request.language = 'kotlin' + request.packaging = 'war' + generateProject(request).isKotlinWarProject() + } + @Test void invalidType() { def request = createProjectRequest('web') diff --git a/initializr-generator/src/test/groovy/io/spring/initializr/test/generator/ProjectAssert.groovy b/initializr-generator/src/test/groovy/io/spring/initializr/test/generator/ProjectAssert.groovy index 6967a580..9dfc7370 100644 --- a/initializr-generator/src/test/groovy/io/spring/initializr/test/generator/ProjectAssert.groovy +++ b/initializr-generator/src/test/groovy/io/spring/initializr/test/generator/ProjectAssert.groovy @@ -130,15 +130,29 @@ class ProjectAssert { } ProjectAssert isJavaWarProject(String expectedApplicationName) { - isJavaProject(DEFAULT_PACKAGE_NAME, expectedApplicationName) - .hasStaticAndTemplatesResources(true) - .hasFile('src/main/java/com/example/ServletInitializer.java') + isGenericWarProject(DEFAULT_PACKAGE_NAME, expectedApplicationName, 'java', 'java') } ProjectAssert isJavaWarProject() { isJavaWarProject(DEFAULT_APPLICATION_NAME) } + ProjectAssert isGroovyWarProject() { + isGenericWarProject(DEFAULT_PACKAGE_NAME, DEFAULT_APPLICATION_NAME, 'groovy', 'groovy') + } + + ProjectAssert isKotlinWarProject() { + isGenericWarProject(DEFAULT_PACKAGE_NAME, DEFAULT_APPLICATION_NAME, 'kotlin', 'kt') + } + + ProjectAssert isGenericWarProject(String expectedPackageName, String expectedApplicationName, + String codeLocation, String extension) { + String packageName = expectedPackageName.replace('.', '/') + isGenericProject(expectedPackageName, expectedApplicationName, codeLocation, extension) + .hasStaticAndTemplatesResources(true) + .hasFile("src/main/$codeLocation/$packageName/ServletInitializer.$extension") + } + ProjectAssert hasStaticAndTemplatesResources(boolean web) { assertFile('src/main/resources/templates', web) assertFile('src/main/resources/static', web)