diff --git a/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/BuildProjectGenerationConfiguration.java b/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/BuildProjectGenerationConfiguration.java index def5e868..61997be0 100644 --- a/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/BuildProjectGenerationConfiguration.java +++ b/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/BuildProjectGenerationConfiguration.java @@ -92,8 +92,8 @@ public class BuildProjectGenerationConfiguration { @Bean public SimpleBuildCustomizer projectDescriptionBuildCustomizer( - ResolvedProjectDescription projectDescription, InitializrMetadata metadata) { - return new SimpleBuildCustomizer(projectDescription, metadata); + ResolvedProjectDescription projectDescription) { + return new SimpleBuildCustomizer(projectDescription); } @Bean diff --git a/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/SimpleBuildCustomizer.java b/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/SimpleBuildCustomizer.java index 4309e407..c42fb204 100644 --- a/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/SimpleBuildCustomizer.java +++ b/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/SimpleBuildCustomizer.java @@ -18,7 +18,6 @@ package io.spring.initializr.generator.spring.build; import io.spring.initializr.generator.buildsystem.Build; import io.spring.initializr.generator.project.ResolvedProjectDescription; -import io.spring.initializr.metadata.InitializrMetadata; import org.springframework.core.Ordered; @@ -33,19 +32,15 @@ public class SimpleBuildCustomizer implements BuildCustomizer { private final ResolvedProjectDescription projectDescription; - private final InitializrMetadata metadata; - - public SimpleBuildCustomizer(ResolvedProjectDescription projectDescription, - InitializrMetadata metadata) { + public SimpleBuildCustomizer(ResolvedProjectDescription projectDescription) { this.projectDescription = projectDescription; - this.metadata = metadata; } @Override public void customize(Build build) { build.setGroup(this.projectDescription.getGroupId()); build.setArtifact(this.projectDescription.getArtifactId()); - build.setVersion(this.metadata.getVersion().getContent()); + build.setVersion(this.projectDescription.getVersion()); this.projectDescription.getRequestedDependencies() .forEach((id, dependency) -> build.dependencies().add(id, dependency)); } diff --git a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/AbstractComplianceTests.java b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/AbstractComplianceTests.java index f3cadbe9..05586243 100644 --- a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/AbstractComplianceTests.java +++ b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/AbstractComplianceTests.java @@ -118,6 +118,7 @@ public abstract class AbstractComplianceTests { description.setLanguage(language); description.setBuildSystem(buildSystem); description.setPlatformVersion(Version.parse(version)); + description.setVersion("0.0.1-SNAPSHOT"); description.setName("demo"); description.setDescription("Demo project for Spring Boot"); } diff --git a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/SimpleBuildCustomizerTests.java b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/SimpleBuildCustomizerTests.java index fae3cc3f..e0ae4aa0 100644 --- a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/SimpleBuildCustomizerTests.java +++ b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/SimpleBuildCustomizerTests.java @@ -22,9 +22,7 @@ import io.spring.initializr.generator.buildsystem.maven.MavenBuild; import io.spring.initializr.generator.language.java.JavaLanguage; import io.spring.initializr.generator.project.ProjectDescription; import io.spring.initializr.generator.project.ResolvedProjectDescription; -import io.spring.initializr.generator.spring.test.InitializrMetadataTestBuilder; import io.spring.initializr.generator.version.Version; -import io.spring.initializr.metadata.InitializrMetadata; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -39,46 +37,39 @@ class SimpleBuildCustomizerTests { @Test void customizeProjectCoordinates() { - InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() - .build(); ProjectDescription description = initializeDescription(); description.setGroupId("com.example.acme"); description.setArtifactId("my-test-project"); - MavenBuild build = customizeBuild(metadata, description); + MavenBuild build = customizeBuild(description); assertThat(build.getGroup()).isEqualTo("com.example.acme"); assertThat(build.getArtifact()).isEqualTo("my-test-project"); } @Test - void customizeShouldSetVersionFromMetadata() { - InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() - .build(); - metadata.getVersion().setContent("1.5.6.RELEASE"); - MavenBuild build = customizeBuild(metadata); + void customizeVersion() { + ProjectDescription description = initializeDescription(); + description.setVersion("1.5.6.RELEASE"); + MavenBuild build = customizeBuild(description); assertThat(build.getVersion()).isEqualTo("1.5.6.RELEASE"); } @Test void customizeWithNoDependency() { - InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() - .build(); ProjectDescription description = initializeDescription(); - MavenBuild build = customizeBuild(metadata, description); + MavenBuild build = customizeBuild(description); assertThat(build.dependencies().ids()).isEmpty(); assertThat(build.dependencies().items()).isEmpty(); } @Test void customizeDependencies() { - InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() - .build(); ProjectDescription description = initializeDescription(); Dependency one = new Dependency("com.example", "one", DependencyScope.COMPILE); Dependency two = new Dependency("com.example.acme", "two", DependencyScope.COMPILE); description.addDependency("two", two); description.addDependency("one", one); - MavenBuild build = customizeBuild(metadata, description); + MavenBuild build = customizeBuild(description); assertThat(build.dependencies().ids()).containsExactly("two", "one"); assertThat(build.dependencies().items()).containsExactly(two, one); } @@ -90,18 +81,12 @@ class SimpleBuildCustomizerTests { return description; } - private MavenBuild customizeBuild(InitializrMetadata metadata) { - ProjectDescription description = initializeDescription(); - return customizeBuild(metadata, description); - } - - private MavenBuild customizeBuild(InitializrMetadata metadata, - ProjectDescription description) { + private MavenBuild customizeBuild(ProjectDescription description) { MavenBuild build = new MavenBuild(); ResolvedProjectDescription resolvedProjectDescription = new ResolvedProjectDescription( description); SimpleBuildCustomizer customizer = new SimpleBuildCustomizer( - resolvedProjectDescription, metadata); + resolvedProjectDescription); customizer.customize(build); return build; } diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/project/ProjectDescription.java b/initializr-generator/src/main/java/io/spring/initializr/generator/project/ProjectDescription.java index b53a256f..3f5663ae 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/project/ProjectDescription.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/project/ProjectDescription.java @@ -47,6 +47,8 @@ public class ProjectDescription { private String artifactId; + private String version; + private String name; private String description; @@ -121,6 +123,14 @@ public class ProjectDescription { this.artifactId = artifactId; } + public String getVersion() { + return this.version; + } + + public void setVersion(String version) { + this.version = version; + } + public String getName() { return this.name; } diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/project/ResolvedProjectDescription.java b/initializr-generator/src/main/java/io/spring/initializr/generator/project/ResolvedProjectDescription.java index bc40f482..245eeddb 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/project/ResolvedProjectDescription.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/project/ResolvedProjectDescription.java @@ -49,6 +49,8 @@ public final class ResolvedProjectDescription { private final String artifactId; + private final String version; + private final String name; private final String description; @@ -66,6 +68,7 @@ public final class ResolvedProjectDescription { this.language = description.getLanguage(); this.groupId = description.getGroupId(); this.artifactId = description.getArtifactId(); + this.version = description.getVersion(); this.name = description.getName(); this.description = description.getDescription(); this.applicationName = description.getApplicationName(); @@ -115,6 +118,10 @@ public final class ResolvedProjectDescription { return this.artifactId; } + public String getVersion() { + return this.version; + } + public String getName() { return this.name; } diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuildWriterTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuildWriterTests.java index ee523f93..d729b815 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuildWriterTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuildWriterTests.java @@ -40,9 +40,9 @@ class GradleBuildWriterTests { void gradleBuildWithCoordinates() throws IOException { GradleBuild build = new GradleBuild(); build.setGroup("com.example"); - build.setVersion("0.0.1-SNAPSHOT"); + build.setVersion("1.0.1-SNAPSHOT"); List lines = generateBuild(build); - assertThat(lines).contains("group = 'com.example'", "version = '0.0.1-SNAPSHOT'"); + assertThat(lines).contains("group = 'com.example'", "version = '1.0.1-SNAPSHOT'"); } @Test diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/maven/MavenBuildWriterTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/maven/MavenBuildWriterTests.java index d739ab47..92fa84ab 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/maven/MavenBuildWriterTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/maven/MavenBuildWriterTests.java @@ -40,11 +40,12 @@ class MavenBuildWriterTests { MavenBuild build = new MavenBuild(); build.setGroup("com.example.demo"); build.setArtifact("demo"); + build.setVersion("1.0.1-SNAPSHOT"); generatePom(build, (pom) -> { assertThat(pom).textAtPath("/project/modelVersion").isEqualTo("4.0.0"); assertThat(pom).textAtPath("/project/groupId").isEqualTo("com.example.demo"); assertThat(pom).textAtPath("/project/artifactId").isEqualTo("demo"); - assertThat(pom).textAtPath("/project/version").isEqualTo("0.0.1-SNAPSHOT"); + assertThat(pom).textAtPath("/project/version").isEqualTo("1.0.1-SNAPSHOT"); }); } diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/test/project/AbstractProjectGenerationTester.java b/initializr-generator/src/test/java/io/spring/initializr/generator/test/project/AbstractProjectGenerationTester.java index a64fecd4..46febb68 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/test/project/AbstractProjectGenerationTester.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/test/project/AbstractProjectGenerationTester.java @@ -102,6 +102,9 @@ public abstract class AbstractProjectGenerationTester metadata.getVersion().getContent())); resolvedDependencies .forEach((dependency) -> description.addDependency(dependency.getId(), MetadataBuildItemMapper.toDependency(dependency))); diff --git a/initializr-web/src/test/java/io/spring/initializr/web/project/ProjectRequestToDescriptionConverterTests.java b/initializr-web/src/test/java/io/spring/initializr/web/project/ProjectRequestToDescriptionConverterTests.java index 0e8ad768..32e087aa 100644 --- a/initializr-web/src/test/java/io/spring/initializr/web/project/ProjectRequestToDescriptionConverterTests.java +++ b/initializr-web/src/test/java/io/spring/initializr/web/project/ProjectRequestToDescriptionConverterTests.java @@ -143,6 +143,22 @@ public class ProjectRequestToDescriptionConverterTests { assertThat(description.getArtifactId()).isEqualTo("foo"); } + @Test + void convertShouldSetVersionFromRequest() { + ProjectRequest request = createProjectRequest(); + request.setVersion("1.0.2-SNAPSHOT"); + ProjectDescription description = this.converter.convert(request, this.metadata); + assertThat(description.getVersion()).isEqualTo("1.0.2-SNAPSHOT"); + } + + @Test + void convertShouldUseDefaultFromMetadataOnEmptyVersion() { + ProjectRequest request = createProjectRequest(); + request.setVersion(" "); + ProjectDescription description = this.converter.convert(request, this.metadata); + assertThat(description.getVersion()).isEqualTo("0.0.1-SNAPSHOT"); + } + @Test void convertShouldSetBaseDirectoryFromRequest() { ProjectRequest request = createProjectRequest();