Migrate ProjectDescription to an interface

This commit migrates ProjectDescription to an interface with read-only
accessors and create a MutableProjectDescription implementation that can
be used for both purposes.

As a result, the type separation between ResolvedProjectDescription and
ProjectDescription is no longer necessary.

Closes gh-993
This commit is contained in:
Stephane Nicoll
2019-08-23 18:47:26 +02:00
parent 67de21f629
commit 286e38888c
70 changed files with 565 additions and 592 deletions

View File

@@ -23,8 +23,8 @@ import io.spring.initializr.generator.buildsystem.DependencyScope;
import io.spring.initializr.generator.condition.ConditionalOnPackaging;
import io.spring.initializr.generator.condition.ConditionalOnPlatformVersion;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.ProjectGenerationConfiguration;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.spring.build.maven.DefaultMavenBuildCustomizer;
import io.spring.initializr.metadata.InitializrMetadata;
@@ -72,8 +72,8 @@ public class BuildProjectGenerationConfiguration {
}
@Bean
public DefaultMavenBuildCustomizer initializrMetadataMavenBuildCustomizer(
ResolvedProjectDescription projectDescription, InitializrMetadata metadata) {
public DefaultMavenBuildCustomizer initializrMetadataMavenBuildCustomizer(ProjectDescription projectDescription,
InitializrMetadata metadata) {
return new DefaultMavenBuildCustomizer(projectDescription, metadata);
}
@@ -85,18 +85,17 @@ public class BuildProjectGenerationConfiguration {
@Bean
public DependencyManagementBuildCustomizer dependencyManagementBuildCustomizer(
ResolvedProjectDescription projectDescription, InitializrMetadata metadata) {
ProjectDescription projectDescription, InitializrMetadata metadata) {
return new DependencyManagementBuildCustomizer(projectDescription, metadata);
}
@Bean
public SimpleBuildCustomizer projectDescriptionBuildCustomizer(ResolvedProjectDescription projectDescription) {
public SimpleBuildCustomizer projectDescriptionBuildCustomizer(ProjectDescription projectDescription) {
return new SimpleBuildCustomizer(projectDescription);
}
@Bean
public SpringBootVersionRepositoriesBuildCustomizer repositoriesBuilderCustomizer(
ResolvedProjectDescription description) {
public SpringBootVersionRepositoriesBuildCustomizer repositoriesBuilderCustomizer(ProjectDescription description) {
return new SpringBootVersionRepositoriesBuildCustomizer(description.getPlatformVersion());
}

View File

@@ -22,7 +22,7 @@ import java.util.Objects;
import java.util.stream.Stream;
import io.spring.initializr.generator.buildsystem.Build;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.BillOfMaterials;
import io.spring.initializr.metadata.Dependency;
@@ -39,12 +39,11 @@ import org.springframework.core.Ordered;
*/
public class DependencyManagementBuildCustomizer implements BuildCustomizer<Build> {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final InitializrMetadata metadata;
public DependencyManagementBuildCustomizer(ResolvedProjectDescription projectDescription,
InitializrMetadata metadata) {
public DependencyManagementBuildCustomizer(ProjectDescription projectDescription, InitializrMetadata metadata) {
this.projectDescription = projectDescription;
this.metadata = metadata;
}

View File

@@ -17,22 +17,22 @@
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.generator.project.ProjectDescription;
import org.springframework.core.Ordered;
/**
* Customize the {@link Build} as early as possible based on the information held in the
* {@link ResolvedProjectDescription}.
* {@link ProjectDescription}.
*
* @author Andy Wilkinson
* @author Stephane Nicoll
*/
public class SimpleBuildCustomizer implements BuildCustomizer<Build> {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
public SimpleBuildCustomizer(ResolvedProjectDescription projectDescription) {
public SimpleBuildCustomizer(ProjectDescription projectDescription) {
this.projectDescription = projectDescription;
}

View File

@@ -16,7 +16,7 @@
package io.spring.initializr.generator.spring.build.gradle;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
/**
* Strategy for resolving a dependency management plugin version from a platform version.
@@ -33,6 +33,6 @@ public interface DependencyManagementPluginVersionResolver {
* @return the corresponding version for the {@code io.spring.dependency-management}
* plugin
*/
String resolveDependencyManagementPluginVersion(ResolvedProjectDescription description);
String resolveDependencyManagementPluginVersion(ProjectDescription description);
}

View File

@@ -34,8 +34,8 @@ import io.spring.initializr.generator.condition.ConditionalOnPlatformVersion;
import io.spring.initializr.generator.io.IndentingWriterFactory;
import io.spring.initializr.generator.language.java.JavaLanguage;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.ProjectGenerationConfiguration;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.spring.build.BuildCustomizer;
import io.spring.initializr.generator.spring.util.LambdaSafe;
import io.spring.initializr.metadata.InitializrMetadata;
@@ -78,7 +78,7 @@ public class GradleProjectGenerationConfiguration {
}
@Bean
public BuildCustomizer<GradleBuild> defaultGradleBuildCustomizer(ResolvedProjectDescription projectDescription) {
public BuildCustomizer<GradleBuild> defaultGradleBuildCustomizer(ProjectDescription projectDescription) {
return (build) -> build.setSourceCompatibility(projectDescription.getLanguage().jvmVersion());
}
@@ -101,7 +101,7 @@ public class GradleProjectGenerationConfiguration {
@Bean
@ConditionalOnPlatformVersion("2.0.0.M1")
BuildCustomizer<GradleBuild> springBootPluginContributor(ResolvedProjectDescription projectDescription,
BuildCustomizer<GradleBuild> springBootPluginContributor(ProjectDescription projectDescription,
ObjectProvider<DependencyManagementPluginVersionResolver> versionResolver, InitializrMetadata metadata) {
return new SpringBootPluginBuildCustomizer(projectDescription, versionResolver
.getIfAvailable(() -> new InitializrDependencyManagementPluginVersionResolver(metadata)));
@@ -145,7 +145,7 @@ public class GradleProjectGenerationConfiguration {
}
@Bean
BuildCustomizer<GradleBuild> springBootPluginContributor(ResolvedProjectDescription projectDescription) {
BuildCustomizer<GradleBuild> springBootPluginContributor(ProjectDescription projectDescription) {
return (build) -> {
build.buildscript(
(buildscript) -> buildscript.dependency("org.springframework.boot:spring-boot-gradle-plugin:"
@@ -206,7 +206,7 @@ public class GradleProjectGenerationConfiguration {
}
@Bean
BuildCustomizer<GradleBuild> springBootPluginContributor(ResolvedProjectDescription projectDescription) {
BuildCustomizer<GradleBuild> springBootPluginContributor(ProjectDescription projectDescription) {
return (build) -> build.plugins().add("org.springframework.boot",
(plugin) -> plugin.setVersion(projectDescription.getPlatformVersion().toString()));
}

View File

@@ -16,7 +16,7 @@
package io.spring.initializr.generator.spring.build.gradle;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.metadata.InitializrMetadata;
/**
@@ -34,7 +34,7 @@ public class InitializrDependencyManagementPluginVersionResolver implements Depe
}
@Override
public String resolveDependencyManagementPluginVersion(ResolvedProjectDescription description) {
public String resolveDependencyManagementPluginVersion(ProjectDescription description) {
return this.metadata.getConfiguration().getEnv().getGradle().getDependencyManagementPluginVersion();
}

View File

@@ -19,7 +19,7 @@ package io.spring.initializr.generator.spring.build.gradle;
import java.util.Arrays;
import io.spring.initializr.generator.condition.ProjectGenerationCondition;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionParser;
import io.spring.initializr.generator.version.VersionRange;
@@ -43,7 +43,7 @@ public class OnGradleVersionCondition extends ProjectGenerationCondition {
private static final VersionRange GRADLE_5_VERSION_RANGE = VersionParser.DEFAULT.parseRange("2.1.0.M1");
@Override
protected boolean matches(ResolvedProjectDescription projectDescription, ConditionContext context,
protected boolean matches(ProjectDescription projectDescription, ConditionContext context,
AnnotatedTypeMetadata metadata) {
String gradleGeneration = determineGradleGeneration(projectDescription.getPlatformVersion());
if (gradleGeneration == null) {

View File

@@ -17,7 +17,7 @@
package io.spring.initializr.generator.spring.build.gradle;
import io.spring.initializr.generator.buildsystem.gradle.GradleBuild;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.build.BuildCustomizer;
/**
@@ -34,11 +34,11 @@ public final class SpringBootPluginBuildCustomizer implements BuildCustomizer<Gr
*/
public static final int ORDER = -100;
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final DependencyManagementPluginVersionResolver versionResolver;
public SpringBootPluginBuildCustomizer(ResolvedProjectDescription projectDescription,
public SpringBootPluginBuildCustomizer(ProjectDescription projectDescription,
DependencyManagementPluginVersionResolver versionResolver) {
this.projectDescription = projectDescription;
this.versionResolver = versionResolver;

View File

@@ -18,7 +18,7 @@ package io.spring.initializr.generator.spring.build.maven;
import io.spring.initializr.generator.buildsystem.BillOfMaterials;
import io.spring.initializr.generator.buildsystem.maven.MavenBuild;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.build.BuildCustomizer;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven.ParentPom;
@@ -32,11 +32,11 @@ import io.spring.initializr.metadata.support.MetadataBuildItemMapper;
*/
public class DefaultMavenBuildCustomizer implements BuildCustomizer<MavenBuild> {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final InitializrMetadata metadata;
public DefaultMavenBuildCustomizer(ResolvedProjectDescription projectDescription, InitializrMetadata metadata) {
public DefaultMavenBuildCustomizer(ProjectDescription projectDescription, InitializrMetadata metadata) {
this.projectDescription = projectDescription;
this.metadata = metadata;
}

View File

@@ -26,7 +26,7 @@ import io.spring.initializr.generator.language.CompilationUnit;
import io.spring.initializr.generator.language.SourceCode;
import io.spring.initializr.generator.language.SourceCodeWriter;
import io.spring.initializr.generator.language.TypeDeclaration;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.contributor.ProjectContributor;
import io.spring.initializr.generator.spring.util.LambdaSafe;
@@ -44,7 +44,7 @@ import org.springframework.beans.factory.ObjectProvider;
public class MainSourceCodeProjectContributor<T extends TypeDeclaration, C extends CompilationUnit<T>, S extends SourceCode<T, C>>
implements ProjectContributor {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final Supplier<S> sourceFactory;
@@ -56,7 +56,7 @@ public class MainSourceCodeProjectContributor<T extends TypeDeclaration, C exten
private final ObjectProvider<MainSourceCodeCustomizer<?, ?, ?>> mainSourceCodeCustomizers;
public MainSourceCodeProjectContributor(ResolvedProjectDescription projectDescription, Supplier<S> sourceFactory,
public MainSourceCodeProjectContributor(ProjectDescription projectDescription, Supplier<S> sourceFactory,
SourceCodeWriter<S> sourceWriter, ObjectProvider<MainApplicationTypeCustomizer<?>> mainTypeCustomizers,
ObjectProvider<MainCompilationUnitCustomizer<?, ?>> mainCompilationUnitCustomizers,
ObjectProvider<MainSourceCodeCustomizer<?, ?, ?>> mainSourceCodeCustomizers) {

View File

@@ -21,8 +21,8 @@ import io.spring.initializr.generator.condition.ConditionalOnPlatformVersion;
import io.spring.initializr.generator.language.Annotation;
import io.spring.initializr.generator.language.TypeDeclaration;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.ProjectGenerationConfiguration;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.context.annotation.Bean;
@@ -66,9 +66,9 @@ public class SourceCodeProjectGenerationConfiguration {
@ConditionalOnPackaging(WarPackaging.ID)
static class WarPackagingConfiguration {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
WarPackagingConfiguration(ResolvedProjectDescription projectDescription) {
WarPackagingConfiguration(ProjectDescription projectDescription) {
this.projectDescription = projectDescription;
}

View File

@@ -26,7 +26,7 @@ import io.spring.initializr.generator.language.CompilationUnit;
import io.spring.initializr.generator.language.SourceCode;
import io.spring.initializr.generator.language.SourceCodeWriter;
import io.spring.initializr.generator.language.TypeDeclaration;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.contributor.ProjectContributor;
import io.spring.initializr.generator.spring.util.LambdaSafe;
@@ -43,7 +43,7 @@ import org.springframework.beans.factory.ObjectProvider;
public class TestSourceCodeProjectContributor<T extends TypeDeclaration, C extends CompilationUnit<T>, S extends SourceCode<T, C>>
implements ProjectContributor {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final Supplier<S> sourceFactory;
@@ -53,7 +53,7 @@ public class TestSourceCodeProjectContributor<T extends TypeDeclaration, C exten
private final ObjectProvider<TestSourceCodeCustomizer<?, ?, ?>> testSourceCodeCustomizers;
public TestSourceCodeProjectContributor(ResolvedProjectDescription projectDescription, Supplier<S> sourceFactory,
public TestSourceCodeProjectContributor(ProjectDescription projectDescription, Supplier<S> sourceFactory,
SourceCodeWriter<S> sourceWriter,
ObjectProvider<TestApplicationTypeCustomizer<?>> testApplicationTypeCustomizers,
ObjectProvider<TestSourceCodeCustomizer<?, ?, ?>> testSourceCodeCustomizers) {

View File

@@ -23,8 +23,8 @@ import io.spring.initializr.generator.language.groovy.GroovyLanguage;
import io.spring.initializr.generator.language.groovy.GroovySourceCode;
import io.spring.initializr.generator.language.groovy.GroovySourceCodeWriter;
import io.spring.initializr.generator.language.groovy.GroovyTypeDeclaration;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.ProjectGenerationConfiguration;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.spring.code.MainApplicationTypeCustomizer;
import io.spring.initializr.generator.spring.code.MainCompilationUnitCustomizer;
import io.spring.initializr.generator.spring.code.MainSourceCodeCustomizer;
@@ -48,11 +48,11 @@ import org.springframework.context.annotation.Import;
@Import(GroovyProjectGenerationDefaultContributorsConfiguration.class)
public class GroovyProjectGenerationConfiguration {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final IndentingWriterFactory indentingWriterFactory;
public GroovyProjectGenerationConfiguration(ResolvedProjectDescription projectDescription,
public GroovyProjectGenerationConfiguration(ProjectDescription projectDescription,
IndentingWriterFactory indentingWriterFactory) {
this.projectDescription = projectDescription;
this.indentingWriterFactory = indentingWriterFactory;

View File

@@ -32,7 +32,7 @@ import io.spring.initializr.generator.language.groovy.GroovyMethodInvocation;
import io.spring.initializr.generator.language.groovy.GroovyReturnStatement;
import io.spring.initializr.generator.language.groovy.GroovyTypeDeclaration;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.build.BuildCustomizer;
import io.spring.initializr.generator.spring.code.MainApplicationTypeCustomizer;
import io.spring.initializr.generator.spring.code.ServletInitializerCustomizer;
@@ -95,7 +95,7 @@ class GroovyProjectGenerationDefaultContributorsConfiguration {
@Bean
ServletInitializerCustomizer<GroovyTypeDeclaration> javaServletInitializerCustomizer(
ResolvedProjectDescription projectDescription) {
ProjectDescription projectDescription) {
return (typeDeclaration) -> {
GroovyMethodDeclaration configure = GroovyMethodDeclaration.method("configure")
.modifiers(Modifier.PROTECTED)

View File

@@ -23,8 +23,8 @@ import io.spring.initializr.generator.language.java.JavaLanguage;
import io.spring.initializr.generator.language.java.JavaSourceCode;
import io.spring.initializr.generator.language.java.JavaSourceCodeWriter;
import io.spring.initializr.generator.language.java.JavaTypeDeclaration;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.ProjectGenerationConfiguration;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.spring.code.MainApplicationTypeCustomizer;
import io.spring.initializr.generator.spring.code.MainCompilationUnitCustomizer;
import io.spring.initializr.generator.spring.code.MainSourceCodeCustomizer;
@@ -48,11 +48,11 @@ import org.springframework.context.annotation.Import;
@Import(JavaProjectGenerationDefaultContributorsConfiguration.class)
public class JavaProjectGenerationConfiguration {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final IndentingWriterFactory indentingWriterFactory;
public JavaProjectGenerationConfiguration(ResolvedProjectDescription projectDescription,
public JavaProjectGenerationConfiguration(ProjectDescription projectDescription,
IndentingWriterFactory indentingWriterFactory) {
this.projectDescription = projectDescription;
this.indentingWriterFactory = indentingWriterFactory;

View File

@@ -28,7 +28,7 @@ import io.spring.initializr.generator.language.java.JavaMethodInvocation;
import io.spring.initializr.generator.language.java.JavaReturnStatement;
import io.spring.initializr.generator.language.java.JavaTypeDeclaration;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.code.MainApplicationTypeCustomizer;
import io.spring.initializr.generator.spring.code.ServletInitializerCustomizer;
import io.spring.initializr.generator.spring.code.TestApplicationTypeCustomizer;
@@ -89,7 +89,7 @@ class JavaProjectGenerationDefaultContributorsConfiguration {
@Bean
ServletInitializerCustomizer<JavaTypeDeclaration> javaServletInitializerCustomizer(
ResolvedProjectDescription projectDescription) {
ProjectDescription projectDescription) {
return (typeDeclaration) -> {
typeDeclaration.modifiers(Modifier.PUBLIC);
JavaMethodDeclaration configure = JavaMethodDeclaration.method("configure")

View File

@@ -16,7 +16,7 @@
package io.spring.initializr.generator.spring.code.kotlin;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.metadata.InitializrMetadata;
/**
@@ -34,7 +34,7 @@ public class InitializrMetadataKotlinVersionResolver implements KotlinVersionRes
}
@Override
public String resolveKotlinVersion(ResolvedProjectDescription description) {
public String resolveKotlinVersion(ProjectDescription description) {
return this.metadata.getConfiguration().getEnv().getKotlin()
.resolveKotlinVersion(description.getPlatformVersion());
}

View File

@@ -19,7 +19,7 @@ package io.spring.initializr.generator.spring.code.kotlin;
import io.spring.initializr.generator.buildsystem.Build;
import io.spring.initializr.generator.buildsystem.DependencyScope;
import io.spring.initializr.generator.language.kotlin.KotlinLanguage;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.build.BuildCustomizer;
import io.spring.initializr.generator.spring.build.BuildMetadataResolver;
import io.spring.initializr.metadata.InitializrMetadata;
@@ -37,9 +37,9 @@ public class KotlinJacksonBuildCustomizer implements BuildCustomizer<Build> {
private final BuildMetadataResolver buildMetadataResolver;
private final ResolvedProjectDescription description;
private final ProjectDescription description;
public KotlinJacksonBuildCustomizer(InitializrMetadata metadata, ResolvedProjectDescription description) {
public KotlinJacksonBuildCustomizer(InitializrMetadata metadata, ProjectDescription description) {
this.buildMetadataResolver = new BuildMetadataResolver(metadata);
this.description = description;
}

View File

@@ -23,8 +23,8 @@ import io.spring.initializr.generator.language.kotlin.KotlinLanguage;
import io.spring.initializr.generator.language.kotlin.KotlinSourceCode;
import io.spring.initializr.generator.language.kotlin.KotlinSourceCodeWriter;
import io.spring.initializr.generator.language.kotlin.KotlinTypeDeclaration;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.ProjectGenerationConfiguration;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.spring.code.MainApplicationTypeCustomizer;
import io.spring.initializr.generator.spring.code.MainCompilationUnitCustomizer;
import io.spring.initializr.generator.spring.code.MainSourceCodeCustomizer;
@@ -50,11 +50,11 @@ import org.springframework.context.annotation.Import;
@Import(KotlinProjectGenerationDefaultContributorsConfiguration.class)
public class KotlinProjectGenerationConfiguration {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final IndentingWriterFactory indentingWriterFactory;
public KotlinProjectGenerationConfiguration(ResolvedProjectDescription projectDescription,
public KotlinProjectGenerationConfiguration(ProjectDescription projectDescription,
IndentingWriterFactory indentingWriterFactory) {
this.projectDescription = projectDescription;
this.indentingWriterFactory = indentingWriterFactory;

View File

@@ -33,7 +33,7 @@ import io.spring.initializr.generator.language.kotlin.KotlinReifiedFunctionInvoc
import io.spring.initializr.generator.language.kotlin.KotlinReturnStatement;
import io.spring.initializr.generator.language.kotlin.KotlinTypeDeclaration;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.build.BuildCustomizer;
import io.spring.initializr.generator.spring.code.MainCompilationUnitCustomizer;
import io.spring.initializr.generator.spring.code.ServletInitializerCustomizer;
@@ -74,7 +74,7 @@ class KotlinProjectGenerationDefaultContributorsConfiguration {
}
@Bean
BuildCustomizer<Build> kotlinDependenciesConfigurer(ResolvedProjectDescription projectDescription) {
BuildCustomizer<Build> kotlinDependenciesConfigurer(ProjectDescription projectDescription) {
return new KotlinDependenciesConfigurer(projectDescription.getPlatformVersion());
}
@@ -106,7 +106,7 @@ class KotlinProjectGenerationDefaultContributorsConfiguration {
@Bean
MainCompilationUnitCustomizer<KotlinTypeDeclaration, KotlinCompilationUnit> boot15MainFunctionContributor(
ResolvedProjectDescription projectDescription) {
ProjectDescription projectDescription) {
return (compilationUnit) -> compilationUnit.addTopLevelFunction(
KotlinFunctionDeclaration.function("main").parameters(new Parameter("Array<String>", "args"))
.body(new KotlinExpressionStatement(
@@ -131,7 +131,7 @@ class KotlinProjectGenerationDefaultContributorsConfiguration {
@Bean
MainCompilationUnitCustomizer<KotlinTypeDeclaration, KotlinCompilationUnit> mainFunctionContributor(
ResolvedProjectDescription projectDescription) {
ProjectDescription projectDescription) {
return (compilationUnit) -> compilationUnit.addTopLevelFunction(
KotlinFunctionDeclaration.function("main").parameters(new Parameter("Array<String>", "args"))
.body(new KotlinExpressionStatement(
@@ -150,7 +150,7 @@ class KotlinProjectGenerationDefaultContributorsConfiguration {
@Bean
ServletInitializerCustomizer<KotlinTypeDeclaration> javaServletInitializerCustomizer(
ResolvedProjectDescription projectDescription) {
ProjectDescription projectDescription) {
return (typeDeclaration) -> {
KotlinFunctionDeclaration configure = KotlinFunctionDeclaration.function("configure")
.modifiers(KotlinModifier.OVERRIDE)

View File

@@ -16,7 +16,7 @@
package io.spring.initializr.generator.spring.code.kotlin;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
/**
* Strategy for resolving a Kotlin version from a platform version.
@@ -32,6 +32,6 @@ public interface KotlinVersionResolver {
* @param description the description of the project being generated
* @return the corresponding Kotlin version
*/
String resolveKotlinVersion(ResolvedProjectDescription description);
String resolveKotlinVersion(ProjectDescription description);
}

View File

@@ -16,7 +16,7 @@
package io.spring.initializr.generator.spring.documentation;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.spring.scm.git.GitIgnoreCustomizer;
import io.spring.initializr.metadata.InitializrMetadata;
@@ -33,7 +33,7 @@ public class HelpDocumentProjectGenerationDefaultContributorsConfiguration {
@Bean
public RequestedDependenciesHelpDocumentCustomizer dependenciesHelpDocumentCustomizer(
ResolvedProjectDescription description, InitializrMetadata metadata) {
ProjectDescription description, InitializrMetadata metadata) {
return new RequestedDependenciesHelpDocumentCustomizer(description, metadata);
}

View File

@@ -21,7 +21,7 @@ import java.util.function.Function;
import java.util.function.Supplier;
import io.spring.initializr.generator.io.text.BulletedSection;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.metadata.Link;
@@ -38,11 +38,11 @@ import org.springframework.util.ObjectUtils;
*/
public class RequestedDependenciesHelpDocumentCustomizer implements HelpDocumentCustomizer {
private final ResolvedProjectDescription projectDescription;
private final ProjectDescription projectDescription;
private final InitializrMetadata metadata;
public RequestedDependenciesHelpDocumentCustomizer(ResolvedProjectDescription projectDescription,
public RequestedDependenciesHelpDocumentCustomizer(ProjectDescription projectDescription,
InitializrMetadata metadata) {
this.projectDescription = projectDescription;
this.metadata = metadata;

View File

@@ -24,9 +24,9 @@ import io.spring.initializr.generator.buildsystem.BuildSystem;
import io.spring.initializr.generator.io.IndentingWriterFactory;
import io.spring.initializr.generator.io.SimpleIndentStrategy;
import io.spring.initializr.generator.language.Language;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.ProjectGenerationContext;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.project.ProjectGeneratorTester;
import io.spring.initializr.generator.test.project.ProjectStructure;
@@ -60,21 +60,22 @@ public abstract class AbstractComplianceTests {
}
protected ProjectStructure generateProject(Language language, BuildSystem buildSystem, String version,
Consumer<ProjectDescription> descriptionCustomizer) {
Consumer<MutableProjectDescription> descriptionCustomizer) {
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults().addDependencyGroup("web", WEB)
.build();
return generateProject(language, buildSystem, version, descriptionCustomizer, metadata);
}
protected ProjectStructure generateProject(Language language, BuildSystem buildSystem, String version,
Consumer<ProjectDescription> descriptionCustomizer, Consumer<ProjectGenerationContext> contextCustomizer) {
Consumer<MutableProjectDescription> descriptionCustomizer,
Consumer<ProjectGenerationContext> contextCustomizer) {
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults().addDependencyGroup("web", WEB)
.build();
return generateProject(language, buildSystem, version, descriptionCustomizer, metadata, contextCustomizer);
}
protected ProjectStructure generateProject(Language language, BuildSystem buildSystem, String version,
Consumer<ProjectDescription> descriptionCustomizer, InitializrMetadata metadata) {
Consumer<MutableProjectDescription> descriptionCustomizer, InitializrMetadata metadata) {
return generateProject(language, buildSystem, version, descriptionCustomizer, metadata,
(projectGenerationContext) -> {
});
@@ -82,7 +83,7 @@ public abstract class AbstractComplianceTests {
}
private ProjectStructure generateProject(Language language, BuildSystem buildSystem, String version,
Consumer<ProjectDescription> descriptionCustomizer, InitializrMetadata metadata,
Consumer<MutableProjectDescription> descriptionCustomizer, InitializrMetadata metadata,
Consumer<ProjectGenerationContext> contextCustomizer) {
ProjectGeneratorTester projectTester = new ProjectGeneratorTester().withDirectory(this.tempDir)
.withDescriptionCustomizer(
@@ -90,19 +91,19 @@ public abstract class AbstractComplianceTests {
.withDescriptionCustomizer(descriptionCustomizer)
.withContextInitializer((context) -> setupProjectGenerationContext(metadata, context))
.withContextInitializer(contextCustomizer);
return projectTester.generate(new ProjectDescription());
return projectTester.generate(new MutableProjectDescription());
}
private void setupProjectGenerationContext(InitializrMetadata metadata, ProjectGenerationContext context) {
context.registerBean(InitializrMetadata.class, () -> metadata);
context.registerBean(BuildItemResolver.class, () -> new MetadataBuildItemResolver(metadata,
context.getBean(ResolvedProjectDescription.class).getPlatformVersion()));
context.getBean(ProjectDescription.class).getPlatformVersion()));
context.registerBean(IndentingWriterFactory.class,
() -> IndentingWriterFactory.create(new SimpleIndentStrategy("\t")));
}
private void setupProjectDescription(Language language, String version, BuildSystem buildSystem,
ProjectDescription description) {
MutableProjectDescription description) {
description.setLanguage(language);
description.setBuildSystem(buildSystem);
description.setPlatformVersion(Version.parse(version));

View File

@@ -20,7 +20,7 @@ import java.nio.file.Path;
import io.spring.initializr.generator.buildsystem.maven.MavenBuildSystem;
import io.spring.initializr.generator.language.java.JavaLanguage;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.project.ProjectGenerationConfiguration;
import io.spring.initializr.generator.project.ProjectGenerator;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
@@ -52,7 +52,7 @@ class ProjectGeneratorIntegrationTests {
@Test
void customBaseDirectoryIsUsedWhenGeneratingProject() {
ProjectDescription description = initProjectDescription();
MutableProjectDescription description = initProjectDescription();
description.setBuildSystem(new MavenBuildSystem());
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
description.setLanguage(new JavaLanguage());
@@ -68,8 +68,8 @@ class ProjectGeneratorIntegrationTests {
"test/demo-app/src/test/java/com/example/demo/DemoApplicationTests.java");
}
private ProjectDescription initProjectDescription() {
ProjectDescription description = new ProjectDescription();
private MutableProjectDescription initProjectDescription() {
MutableProjectDescription description = new MutableProjectDescription();
description.setApplicationName("DemoApplication");
return description;
}

View File

@@ -18,7 +18,7 @@ package io.spring.initializr.generator.spring.build;
import io.spring.initializr.generator.buildsystem.Build;
import io.spring.initializr.generator.buildsystem.maven.MavenBuild;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.BillOfMaterials;
@@ -74,9 +74,9 @@ class DependencyManagementBuildCustomizerTests {
}
private void customizeBuild(Build build, InitializrMetadata metadata) {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
projectDescription.setPlatformVersion(Version.parse("2.0.0.RELEASE"));
new DependencyManagementBuildCustomizer(projectDescription.resolve(), metadata).customize(build);
new DependencyManagementBuildCustomizer(projectDescription, metadata).customize(build);
}
}

View File

@@ -20,8 +20,7 @@ import io.spring.initializr.generator.buildsystem.Dependency;
import io.spring.initializr.generator.buildsystem.DependencyScope;
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.project.MutableProjectDescription;
import io.spring.initializr.generator.version.Version;
import org.junit.jupiter.api.Test;
@@ -37,7 +36,7 @@ class SimpleBuildCustomizerTests {
@Test
void customizeProjectCoordinates() {
ProjectDescription description = initializeDescription();
MutableProjectDescription description = initializeDescription();
description.setGroupId("com.example.acme");
description.setArtifactId("my-test-project");
MavenBuild build = customizeBuild(description);
@@ -47,7 +46,7 @@ class SimpleBuildCustomizerTests {
@Test
void customizeVersion() {
ProjectDescription description = initializeDescription();
MutableProjectDescription description = initializeDescription();
description.setVersion("1.5.6.RELEASE");
MavenBuild build = customizeBuild(description);
assertThat(build.getVersion()).isEqualTo("1.5.6.RELEASE");
@@ -55,7 +54,7 @@ class SimpleBuildCustomizerTests {
@Test
void customizeWithNoDependency() {
ProjectDescription description = initializeDescription();
MutableProjectDescription description = initializeDescription();
MavenBuild build = customizeBuild(description);
assertThat(build.dependencies().ids()).isEmpty();
assertThat(build.dependencies().items()).isEmpty();
@@ -63,7 +62,7 @@ class SimpleBuildCustomizerTests {
@Test
void customizeDependencies() {
ProjectDescription description = initializeDescription();
MutableProjectDescription description = initializeDescription();
Dependency one = Dependency.withCoordinates("com.example", "one").scope(DependencyScope.COMPILE).build();
Dependency two = Dependency.withCoordinates("com.example.acme", "two").scope(DependencyScope.COMPILE).build();
description.addDependency("two", two);
@@ -73,17 +72,16 @@ class SimpleBuildCustomizerTests {
assertThat(build.dependencies().items()).containsExactly(two, one);
}
private ProjectDescription initializeDescription() {
ProjectDescription description = new ProjectDescription();
private MutableProjectDescription initializeDescription() {
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.0.0"));
description.setLanguage(new JavaLanguage());
return description;
}
private MavenBuild customizeBuild(ProjectDescription description) {
private MavenBuild customizeBuild(MutableProjectDescription description) {
MavenBuild build = new MavenBuild();
ResolvedProjectDescription resolvedProjectDescription = new ResolvedProjectDescription(description);
SimpleBuildCustomizer customizer = new SimpleBuildCustomizer(resolvedProjectDescription);
SimpleBuildCustomizer customizer = new SimpleBuildCustomizer(description);
customizer.customize(build);
return build;
}

View File

@@ -18,7 +18,7 @@ package io.spring.initializr.generator.spring.build.gradle;
import java.util.Map;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
import io.spring.initializr.generator.version.Version;
import org.junit.jupiter.api.Test;
@@ -40,7 +40,7 @@ public class ConditionalOnGradleVersionTests {
@Test
void outcomeWithSpringBoot15() {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
projectDescription.setPlatformVersion(Version.parse("1.5.18.RELEASE"));
String bean = outcomeFor(projectDescription);
assertThat(bean).isEqualTo("testGradle3");
@@ -48,7 +48,7 @@ public class ConditionalOnGradleVersionTests {
@Test
void outcomeWithSpringBoot20() {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
projectDescription.setPlatformVersion(Version.parse("2.0.9.RELEASE"));
String bean = outcomeFor(projectDescription);
assertThat(bean).isEqualTo("testGradle4");
@@ -56,7 +56,7 @@ public class ConditionalOnGradleVersionTests {
@Test
void outcomeWithSpringBoot21() {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
projectDescription.setPlatformVersion(Version.parse("2.1.3.RELEASE"));
String bean = outcomeFor(projectDescription);
assertThat(bean).isEqualTo("testGradle5");
@@ -64,7 +64,7 @@ public class ConditionalOnGradleVersionTests {
@Test
void outcomeWithNoMatch() {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
projectDescription.setPlatformVersion(Version.parse("1.0.0.RELEASE"));
this.projectTester.generate(projectDescription, (projectGenerationContext) -> {
assertThat(projectGenerationContext.getBeansOfType(String.class)).isEmpty();
@@ -74,7 +74,7 @@ public class ConditionalOnGradleVersionTests {
@Test
void outcomeWithNoAvailableSpringBootVersion() {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
this.projectTester.generate(projectDescription, (projectGenerationContext) -> {
assertThat(projectGenerationContext.getBeansOfType(String.class)).isEmpty();
return null;
@@ -83,7 +83,7 @@ public class ConditionalOnGradleVersionTests {
@Test
void outcomeWithSpringBoot15AndMultipleGenerations() {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
projectDescription.setPlatformVersion(Version.parse("1.5.18.RELEASE"));
Map<String, String> candidates = candidatesFor(projectDescription, Gradle3Or4TestConfiguration.class);
assertThat(candidates).containsOnlyKeys("gradle3", "gradle3AndLater");
@@ -91,7 +91,7 @@ public class ConditionalOnGradleVersionTests {
@Test
void outcomeWithSpringBoot20AndMultipleGenerations() {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
projectDescription.setPlatformVersion(Version.parse("2.0.9.RELEASE"));
Map<String, String> candidates = candidatesFor(projectDescription, Gradle3Or4TestConfiguration.class);
assertThat(candidates).containsOnlyKeys("gradle4", "gradle3AndLater");
@@ -99,20 +99,21 @@ public class ConditionalOnGradleVersionTests {
@Test
void outcomeWithSpringBoot21AndMultipleNonMatchingGenerations() {
ProjectDescription projectDescription = new ProjectDescription();
MutableProjectDescription projectDescription = new MutableProjectDescription();
projectDescription.setPlatformVersion(Version.parse("2.1.3.RELEASE"));
Map<String, String> candidates = candidatesFor(projectDescription, Gradle3Or4TestConfiguration.class);
assertThat(candidates).containsOnlyKeys("gradle5");
}
private String outcomeFor(ProjectDescription projectDescription) {
private String outcomeFor(MutableProjectDescription projectDescription) {
return this.projectTester.generate(projectDescription, (projectGenerationContext) -> {
assertThat(projectGenerationContext.getBeansOfType(String.class)).hasSize(1);
return projectGenerationContext.getBean(String.class);
});
}
private Map<String, String> candidatesFor(ProjectDescription projectDescription, Class<?>... extraConfigurations) {
private Map<String, String> candidatesFor(MutableProjectDescription projectDescription,
Class<?>... extraConfigurations) {
return this.projectTester.withConfiguration(extraConfigurations).generate(projectDescription,
(context) -> context.getBeansOfType(String.class));
}

View File

@@ -26,7 +26,7 @@ import io.spring.initializr.generator.buildsystem.gradle.GradleBuildSystem;
import io.spring.initializr.generator.buildsystem.gradle.KotlinDslGradleBuildWriter;
import io.spring.initializr.generator.language.java.JavaLanguage;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.spring.build.BuildProjectGenerationConfiguration;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
@@ -73,7 +73,7 @@ class GradleKtsProjectGenerationConfigurationTests {
@ParameterizedTest(name = "Spring Boot {0}")
@MethodSource("supportedPlatformVersions")
void buildWriterIsContributed(String platformVersion) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse(platformVersion));
description.setLanguage(new JavaLanguage());
BuildWriter buildWriter = this.projectTester.generate(description,
@@ -91,7 +91,7 @@ class GradleKtsProjectGenerationConfigurationTests {
@MethodSource("gradleWrapperParameters")
void gradleWrapperIsContributedWhenGeneratingGradleKtsProject(String platformVersion,
String expectedGradleVersion) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse(platformVersion));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -103,7 +103,7 @@ class GradleKtsProjectGenerationConfigurationTests {
@Test
void buildDotGradleDotKtsIsContributedWhenGeneratingGradleKtsProject() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
description.setLanguage(new JavaLanguage("11"));
description.addDependency("acme",
@@ -121,7 +121,7 @@ class GradleKtsProjectGenerationConfigurationTests {
@Test
void dependencyManagementPluginFallbacksToMetadataIfNotPresent() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
description.setLanguage(new JavaLanguage("11"));
ProjectStructure project = this.projectTester.generate(description);
@@ -131,7 +131,7 @@ class GradleKtsProjectGenerationConfigurationTests {
@Test
void dependencyManagementPluginVersionResolverIsUsedIfPresent() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
description.setLanguage(new JavaLanguage("11"));
ProjectStructure project = this.projectTester
@@ -143,7 +143,7 @@ class GradleKtsProjectGenerationConfigurationTests {
@Test
void warPluginIsAppliedWhenBuildingProjectThatUsesWarPackaging() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
description.setLanguage(new JavaLanguage());
description.setPackaging(new WarPackaging());
@@ -153,7 +153,7 @@ class GradleKtsProjectGenerationConfigurationTests {
@Test
void junitPlatformIsConfiguredWithCompatibleVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.4.RELEASE"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -163,7 +163,7 @@ class GradleKtsProjectGenerationConfigurationTests {
@Test
void junitPlatformIsNotConfiguredWithIncompatibleVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.4.RELEASE"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);

View File

@@ -27,7 +27,7 @@ import io.spring.initializr.generator.buildsystem.gradle.GradleBuildSystem;
import io.spring.initializr.generator.buildsystem.gradle.GroovyDslGradleBuildWriter;
import io.spring.initializr.generator.language.java.JavaLanguage;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.spring.build.BuildProjectGenerationConfiguration;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
@@ -73,7 +73,7 @@ class GradleProjectGenerationConfigurationTests {
@ParameterizedTest(name = "Spring Boot {0}")
@MethodSource("supportedPlatformVersions")
void buildWriterIsContributed(String platformVersion) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse(platformVersion));
description.setLanguage(new JavaLanguage());
BuildWriter buildWriter = this.projectTester.generate(description,
@@ -91,7 +91,7 @@ class GradleProjectGenerationConfigurationTests {
@ParameterizedTest(name = "Spring Boot {0}")
@MethodSource("gradleWrapperParameters")
void gradleWrapperIsContributedWhenGeneratingGradleProject(String platformVersion, String expectedGradleVersion) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse(platformVersion));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -103,7 +103,7 @@ class GradleProjectGenerationConfigurationTests {
@Test
void buildDotGradleIsContributedWhenGeneratingGradleProject() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
description.setLanguage(new JavaLanguage("11"));
description.addDependency("acme",
@@ -121,7 +121,7 @@ class GradleProjectGenerationConfigurationTests {
@Test
void warPluginIsAppliedWhenBuildingProjectThatUsesWarPackaging() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
description.setLanguage(new JavaLanguage());
description.setPackaging(new WarPackaging());
@@ -131,7 +131,7 @@ class GradleProjectGenerationConfigurationTests {
@Test
void junitPlatformIsConfiguredWithCompatibleVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.4.RELEASE"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -140,7 +140,7 @@ class GradleProjectGenerationConfigurationTests {
@Test
void junitPlatformIsNotConfiguredWithIncompatibleVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.4.RELEASE"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -151,7 +151,7 @@ class GradleProjectGenerationConfigurationTests {
@Test
@Deprecated
void testStarterExcludesVintageEngineAndJUnitWithAppropriateVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.0.M4"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -163,7 +163,7 @@ class GradleProjectGenerationConfigurationTests {
@Test
void testStarterExcludesVintageEngineWithCompatibleVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.0.M5"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -174,7 +174,7 @@ class GradleProjectGenerationConfigurationTests {
@Test
void testStarterDoesNotExcludesVintageEngineAndJUnitWithIncompatibleVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.6.RELEASE"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -190,7 +190,7 @@ class GradleProjectGenerationConfigurationTests {
@MethodSource("annotationProcessorScopeBuildParameters")
void gradleAnnotationProcessorScopeCustomizerIsContributedIfNecessary(String platformVersion,
boolean contributorExpected) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse(platformVersion));
description.setLanguage(new JavaLanguage());
Map<String, GradleAnnotationProcessorScopeBuildCustomizer> generate = this.projectTester.generate(description,

View File

@@ -20,8 +20,7 @@ import io.spring.initializr.generator.buildsystem.BomContainer;
import io.spring.initializr.generator.buildsystem.maven.MavenBuild;
import io.spring.initializr.generator.buildsystem.maven.MavenParent;
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.project.MutableProjectDescription;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.generator.version.VersionProperty;
@@ -41,7 +40,7 @@ class DefaultMavenBuildCustomizerTests {
@Test
void customizeSetNameAndDescription() {
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults().build();
ProjectDescription description = initializeDescription();
MutableProjectDescription description = initializeDescription();
description.setName("my-demo");
description.setDescription("Demonstration project");
MavenBuild build = customizeBuild(metadata, description);
@@ -63,7 +62,7 @@ class DefaultMavenBuildCustomizerTests {
@Test
void customizeSetJavaVersion() {
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults().build();
ProjectDescription description = initializeDescription();
MutableProjectDescription description = initializeDescription();
description.setLanguage(new JavaLanguage("11"));
MavenBuild build = customizeBuild(metadata, description);
assertThat(build.getProperties()).contains(entry("java.version", "11"));
@@ -103,22 +102,21 @@ class DefaultMavenBuildCustomizerTests {
assertThat(boms.items()).hasSize(0);
}
private ProjectDescription initializeDescription() {
ProjectDescription description = new ProjectDescription();
private MutableProjectDescription initializeDescription() {
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.0.0"));
description.setLanguage(new JavaLanguage());
return description;
}
private MavenBuild customizeBuild(InitializrMetadata metadata) {
ProjectDescription description = initializeDescription();
MutableProjectDescription description = initializeDescription();
return customizeBuild(metadata, description);
}
private MavenBuild customizeBuild(InitializrMetadata metadata, ProjectDescription description) {
private MavenBuild customizeBuild(InitializrMetadata metadata, MutableProjectDescription description) {
MavenBuild build = new MavenBuild();
ResolvedProjectDescription resolvedProjectDescription = new ResolvedProjectDescription(description);
DefaultMavenBuildCustomizer customizer = new DefaultMavenBuildCustomizer(resolvedProjectDescription, metadata);
DefaultMavenBuildCustomizer customizer = new DefaultMavenBuildCustomizer(description, metadata);
customizer.customize(build);
return build;
}

View File

@@ -22,7 +22,7 @@ import io.spring.initializr.generator.buildsystem.BuildWriter;
import io.spring.initializr.generator.buildsystem.maven.MavenBuildSystem;
import io.spring.initializr.generator.language.java.JavaLanguage;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.spring.build.BuildProjectGenerationConfiguration;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
@@ -57,7 +57,7 @@ class MavenProjectGenerationConfigurationTests {
@Test
void buildWriterIsContributed() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
BuildWriter buildWriter = this.projectTester.generate(description,
(context) -> context.getBean(BuildWriter.class));
@@ -66,7 +66,7 @@ class MavenProjectGenerationConfigurationTests {
@Test
void mavenWrapperIsContributedWhenGeneratingMavenProject() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).filePaths().contains("mvnw", "mvnw.cmd", ".mvn/wrapper/MavenWrapperDownloader.java",
@@ -75,7 +75,7 @@ class MavenProjectGenerationConfigurationTests {
@Test
void mavenPomIsContributedWhenGeneratingMavenProject() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).filePaths().contains("pom.xml");
@@ -83,7 +83,7 @@ class MavenProjectGenerationConfigurationTests {
@Test
void warPackagingIsUsedWhenBuildingProjectThatUsesWarPackaging() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
description.setPackaging(new WarPackaging());
ProjectStructure project = this.projectTester.generate(description);
@@ -93,7 +93,7 @@ class MavenProjectGenerationConfigurationTests {
@Test
@Deprecated
void testStarterExcludesVintageEngineAndJUnitWithAppropriateVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.0.M4"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -107,7 +107,7 @@ class MavenProjectGenerationConfigurationTests {
@Test
void testStarterExcludesVintageEngineWithCompatibleVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.0.M5"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);
@@ -119,7 +119,7 @@ class MavenProjectGenerationConfigurationTests {
@Test
void testStarterDoesNotExcludesVintageEngineAndJUnitWithIncompatibleVersion() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.6.RELEASE"));
description.setLanguage(new JavaLanguage());
ProjectStructure project = this.projectTester.generate(description);

View File

@@ -19,7 +19,7 @@ import io.spring.initializr.generator.language.CompilationUnit;
import io.spring.initializr.generator.language.SourceCode;
import io.spring.initializr.generator.language.TypeDeclaration;
import io.spring.initializr.generator.packaging.Packaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
import io.spring.initializr.generator.version.Version;
import org.junit.jupiter.api.Test;
@@ -43,7 +43,7 @@ class SourceCodeProjectGenerationConfigurationTests {
@Test
@SuppressWarnings("unchecked")
void addsACustomizerThatAppliesSpringBootApplicationAnnotationOnMainClass() {
TypeDeclaration declaration = this.projectTester.generate(new ProjectDescription(), (context) -> {
TypeDeclaration declaration = this.projectTester.generate(new MutableProjectDescription(), (context) -> {
TypeDeclaration type = new TypeDeclaration("Test");
MainApplicationTypeCustomizer<TypeDeclaration> bean = context.getBean(MainApplicationTypeCustomizer.class);
bean.customize(type);
@@ -76,7 +76,7 @@ class SourceCodeProjectGenerationConfigurationTests {
@SuppressWarnings("unchecked")
private TypeDeclaration generateTestTypeDeclaration(String version) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse(version));
return this.projectTester.generate(description, (context) -> {
TypeDeclaration type = new TypeDeclaration("Test");
@@ -98,7 +98,7 @@ class SourceCodeProjectGenerationConfigurationTests {
@SuppressWarnings("unchecked")
private void runWarTest(String version, String className) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPackaging(Packaging.forId("war"));
description.setPackageName("com.foo");
description.setPlatformVersion(Version.parse(version));

View File

@@ -21,7 +21,7 @@ import java.nio.file.Path;
import io.spring.initializr.generator.buildsystem.maven.MavenBuildSystem;
import io.spring.initializr.generator.language.groovy.GroovyLanguage;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.spring.code.SourceCodeProjectGenerationConfiguration;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
import io.spring.initializr.generator.test.project.ProjectStructure;
@@ -57,13 +57,13 @@ class GroovyProjectGenerationConfigurationTests {
@Test
void mainClassIsContributed() {
ProjectStructure project = this.projectTester.generate(new ProjectDescription());
ProjectStructure project = this.projectTester.generate(new MutableProjectDescription());
assertThat(project).containsFiles("src/main/groovy/com/example/demo/DemoApplication.groovy");
}
@Test
void testClassIsContributedWithJUnit4() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.4.RELEASE"));
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).textFile("src/test/groovy/com/example/demo/DemoApplicationTests.groovy").containsExactly(
@@ -76,7 +76,7 @@ class GroovyProjectGenerationConfigurationTests {
@Test
void testClassIsContributedWithJUnit5() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.0.RELEASE"));
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).textFile("src/test/groovy/com/example/demo/DemoApplicationTests.groovy").containsExactly(
@@ -87,7 +87,7 @@ class GroovyProjectGenerationConfigurationTests {
@Test
void servletInitializerIsContributedWhenGeneratingProjectThatUsesWarPackaging() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPackaging(new WarPackaging());
description.setApplicationName("Demo2Application");
ProjectStructure project = this.projectTester.generate(description);

View File

@@ -21,7 +21,7 @@ import java.nio.file.Path;
import io.spring.initializr.generator.buildsystem.maven.MavenBuildSystem;
import io.spring.initializr.generator.language.java.JavaLanguage;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.spring.code.SourceCodeProjectGenerationConfiguration;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
import io.spring.initializr.generator.test.project.ProjectStructure;
@@ -57,14 +57,14 @@ class JavaProjectGenerationConfigurationTests {
@Test
void mainClassIsContributed() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).containsFiles("src/main/java/com/example/demo/DemoApplication.java");
}
@Test
void testClassIsContributedWithJUnit4() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.4.RELEASE"));
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).textFile("src/test/java/com/example/demo/DemoApplicationTests.java").containsExactly(
@@ -77,7 +77,7 @@ class JavaProjectGenerationConfigurationTests {
@Test
void testClassIsContributedWithJUnit5() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.0.RELEASE"));
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).textFile("src/test/java/com/example/demo/DemoApplicationTests.java").containsExactly(
@@ -88,7 +88,7 @@ class JavaProjectGenerationConfigurationTests {
@Test
void servletInitializerIsContributedWhenGeneratingProjectThatUsesWarPackaging() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPackaging(new WarPackaging());
description.setApplicationName("MyDemoApplication");
ProjectStructure project = this.projectTester.generate(description);
@@ -102,7 +102,7 @@ class JavaProjectGenerationConfigurationTests {
@Test
void customPackageNameIsUsedWhenGeneratingProject() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPackageName("com.example.foo");
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).containsFiles("src/main/java/com/example/foo/DemoApplication.java",
@@ -111,7 +111,7 @@ class JavaProjectGenerationConfigurationTests {
@Test
void customApplicationNameIsUsedWhenGeneratingProject() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setApplicationName("MyApplication");
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).containsFiles("src/main/java/com/example/demo/MyApplication.java",

View File

@@ -21,7 +21,7 @@ import java.util.Collections;
import io.spring.initializr.generator.buildsystem.maven.MavenBuild;
import io.spring.initializr.generator.language.java.JavaLanguage;
import io.spring.initializr.generator.language.kotlin.KotlinLanguage;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.version.Version;
import io.spring.initializr.metadata.Dependency;
@@ -44,7 +44,7 @@ class KotlinJacksonBuildCustomizerTests {
void customizeWhenJsonFacetPresentShouldAddJacksonKotlinModule() {
Dependency dependency = Dependency.withId("foo");
dependency.setFacets(Collections.singletonList("json"));
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setLanguage(new KotlinLanguage());
MavenBuild build = getCustomizedBuild(dependency, description);
io.spring.initializr.generator.buildsystem.Dependency jacksonKotlin = build.dependencies()
@@ -57,7 +57,7 @@ class KotlinJacksonBuildCustomizerTests {
void jacksonModuleKotlinIsNotAddedWithoutKotlin() {
Dependency dependency = Dependency.withId("foo");
dependency.setFacets(Collections.singletonList("json"));
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setLanguage(new JavaLanguage());
MavenBuild build = getCustomizedBuild(dependency, description);
io.spring.initializr.generator.buildsystem.Dependency jacksonKotlin = build.dependencies()
@@ -68,7 +68,7 @@ class KotlinJacksonBuildCustomizerTests {
@Test
void jacksonModuleKotlinIsNotAddedWithoutJsonFacet() {
Dependency dependency = Dependency.withId("foo");
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setLanguage(new KotlinLanguage());
MavenBuild build = getCustomizedBuild(dependency, description);
io.spring.initializr.generator.buildsystem.Dependency jacksonKotlin = build.dependencies()
@@ -76,10 +76,10 @@ class KotlinJacksonBuildCustomizerTests {
assertThat(jacksonKotlin).isNull();
}
private MavenBuild getCustomizedBuild(Dependency dependency, ProjectDescription description) {
private MavenBuild getCustomizedBuild(Dependency dependency, MutableProjectDescription description) {
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
.addDependencyGroup("test", dependency).build();
KotlinJacksonBuildCustomizer customizer = new KotlinJacksonBuildCustomizer(metadata, description.resolve());
KotlinJacksonBuildCustomizer customizer = new KotlinJacksonBuildCustomizer(metadata, description);
MavenBuild build = new MavenBuild(new MetadataBuildItemResolver(metadata, Version.parse("2.0.0.RELEASE")));
build.dependencies().add("foo");
customizer.customize(build);

View File

@@ -23,7 +23,7 @@ import io.spring.initializr.generator.buildsystem.Dependency;
import io.spring.initializr.generator.buildsystem.maven.MavenBuildSystem;
import io.spring.initializr.generator.language.kotlin.KotlinLanguage;
import io.spring.initializr.generator.packaging.war.WarPackaging;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.spring.build.BuildProjectGenerationConfiguration;
import io.spring.initializr.generator.spring.build.maven.MavenProjectGenerationConfiguration;
import io.spring.initializr.generator.spring.code.SourceCodeProjectGenerationConfiguration;
@@ -69,7 +69,7 @@ class KotlinProjectGenerationConfigurationTests {
@Test
void kotlinVersionFallbacksToMetadataIfNotPresent() {
KotlinProjectSettings settings = this.projectTester.generate(new ProjectDescription(),
KotlinProjectSettings settings = this.projectTester.generate(new MutableProjectDescription(),
(context) -> context.getBean(KotlinProjectSettings.class));
assertThat(settings.getVersion()).isEqualTo("1.1.1");
}
@@ -78,19 +78,19 @@ class KotlinProjectGenerationConfigurationTests {
void kotlinVersionResolverIsUsedIfPresent() {
KotlinProjectSettings settings = this.projectTester
.withBean(KotlinProjectSettings.class, () -> new SimpleKotlinProjectSettings("0.9.12"))
.generate(new ProjectDescription(), (context) -> context.getBean(KotlinProjectSettings.class));
.generate(new MutableProjectDescription(), (context) -> context.getBean(KotlinProjectSettings.class));
assertThat(settings.getVersion()).isEqualTo("0.9.12");
}
@Test
void mainClassIsContributedWhenGeneratingProject() {
ProjectStructure project = this.projectTester.generate(new ProjectDescription());
ProjectStructure project = this.projectTester.generate(new MutableProjectDescription());
assertThat(project).containsFiles("src/main/kotlin/com/example/demo/DemoApplication.kt");
}
@Test
void testClassIsContributedWithJunit4() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.1.4.RELEASE"));
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).textFile("src/test/kotlin/com/example/demo/DemoApplicationTests.kt").containsExactly(
@@ -103,7 +103,7 @@ class KotlinProjectGenerationConfigurationTests {
@Test
void testClassIsContributedWithJunit5() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPlatformVersion(Version.parse("2.2.0.RELEASE"));
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).textFile("src/test/kotlin/com/example/demo/DemoApplicationTests.kt").containsExactly(
@@ -114,7 +114,7 @@ class KotlinProjectGenerationConfigurationTests {
@Test
void servletInitializerIsContributedWhenGeneratingProjectThatUsesWarPackaging() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setPackaging(new WarPackaging());
description.setApplicationName("KotlinDemoApplication");
ProjectStructure project = this.projectTester.generate(description);
@@ -128,7 +128,7 @@ class KotlinProjectGenerationConfigurationTests {
@Test
void jacksonKotlinModuleShouldBeAddedWhenJsonFacetPresent() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.addDependency("foo", Dependency.withCoordinates("com.example", "foo").build());
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).textFile("pom.xml").contains(" <dependency>",

View File

@@ -19,7 +19,7 @@ package io.spring.initializr.generator.spring.documentation;
import java.nio.file.Path;
import io.spring.initializr.generator.io.template.MustacheTemplateRenderer;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.spring.scm.git.GitIgnoreCustomizer;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
@@ -54,7 +54,7 @@ class HelpDocumentProjectGenerationConfigurationTests {
@Test
void helpDocumentIsNotContributedWithoutLinks() {
ProjectStructure project = this.projectTester.generate(new ProjectDescription());
ProjectStructure project = this.projectTester.generate(new MutableProjectDescription());
assertThat(project).filePaths().isEmpty();
}
@@ -64,7 +64,7 @@ class HelpDocumentProjectGenerationConfigurationTests {
dependency.getLinks().add(Link.create("guide", "https://example.com/how-to", "How-to example"));
dependency.getLinks().add(Link.create("reference", "https://example.com/doc", "Reference doc example"));
this.metadataBuilder.addDependencyGroup("test", dependency);
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.addDependency("example", null);
ProjectStructure project = this.projectTester.generate(description);
assertThat(project).filePaths().containsOnly("HELP.md");
@@ -72,7 +72,7 @@ class HelpDocumentProjectGenerationConfigurationTests {
@Test
void helpDocumentIsAddedToGitIgnore() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
GitIgnoreCustomizer gitIgnoreCustomizer = this.projectTester.generate(description,
(context) -> context.getBean(GitIgnoreCustomizer.class));
assertThat(gitIgnoreCustomizer).isInstanceOf(HelpDocumentGitIgnoreCustomizer.class);

View File

@@ -20,8 +20,7 @@ import java.util.Arrays;
import io.spring.initializr.generator.io.template.MustacheTemplateRenderer;
import io.spring.initializr.generator.io.text.BulletedSection;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.ResolvedProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.InitializrMetadata;
@@ -135,14 +134,13 @@ class RequestedDependenciesHelpDocumentCustomizerTests {
}
private HelpDocument customizeHelp(String... requestedDependencies) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
for (String requestedDependency : requestedDependencies) {
description.addDependency(requestedDependency, null);
}
InitializrMetadata metadata = this.metadataBuilder.build();
HelpDocument document = new HelpDocument(new MustacheTemplateRenderer("classpath:/templates"));
new RequestedDependenciesHelpDocumentCustomizer(new ResolvedProjectDescription(description), metadata)
.customize(document);
new RequestedDependenciesHelpDocumentCustomizer(description, metadata).customize(document);
return document;
}

View File

@@ -23,7 +23,7 @@ import java.util.List;
import io.spring.initializr.generator.buildsystem.gradle.GradleBuildSystem;
import io.spring.initializr.generator.buildsystem.maven.MavenBuildSystem;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.test.io.TextTestUtils;
import io.spring.initializr.generator.test.project.ProjectAssetTester;
import io.spring.initializr.generator.version.Version;
@@ -44,7 +44,7 @@ class GitProjectGenerationConfigurationTests {
@Test
void gitIgnoreIsContributedToProject(@TempDir Path directory) {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setBuildSystem(new GradleBuildSystem());
Path projectDirectory = this.projectTester.withDirectory(directory).generate(description, (context) -> {
GitIgnoreContributor contributor = context.getBean(GitIgnoreContributor.class);
@@ -56,7 +56,7 @@ class GitProjectGenerationConfigurationTests {
@Test
void gitIgnore() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setBuildSystem(new GradleBuildSystem());
assertThat(generateGitIgnore(description)).contains("### STS ###", "### IntelliJ IDEA ###", "### NetBeans ###",
"### VS Code ###");
@@ -64,7 +64,7 @@ class GitProjectGenerationConfigurationTests {
@Test
void gitIgnoreGradle() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setBuildSystem(new GradleBuildSystem());
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
assertThat(generateGitIgnore(description)).contains(".gradle", "build/", "!gradle/wrapper/gradle-wrapper.jar",
@@ -74,7 +74,7 @@ class GitProjectGenerationConfigurationTests {
@Test
void gitIgnoreMaven() {
ProjectDescription description = new ProjectDescription();
MutableProjectDescription description = new MutableProjectDescription();
description.setBuildSystem(new MavenBuildSystem());
description.setPlatformVersion(Version.parse("2.1.0.RELEASE"));
assertThat(generateGitIgnore(description))
@@ -82,7 +82,7 @@ class GitProjectGenerationConfigurationTests {
.doesNotContain(".gradle", "!gradle/wrapper/gradle-wrapper.jar", "/out/");
}
private List<String> generateGitIgnore(ProjectDescription description) {
private List<String> generateGitIgnore(MutableProjectDescription description) {
return this.projectTester.generate(description, (context) -> {
GitIgnore gitIgnore = context.getBean(GitIgnore.class);
StringWriter out = new StringWriter();