diff --git a/initializr-generator-spring/src/test/resources/project/gradle/bom-property-build.gradle.kts.gen b/initializr-generator-spring/src/test/resources/project/gradle/bom-property-build.gradle.kts.gen index d87908ce..17ed3bdf 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/bom-property-build.gradle.kts.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/bom-property-build.gradle.kts.gen @@ -21,6 +21,6 @@ dependencies { dependencyManagement { imports { - mavenBom("org.acme:foo-bom:${fooVersion}") + mavenBom("org.acme:foo-bom:${property("fooVersion")}") } } diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuildWriter.java b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuildWriter.java index ccb5d5b1..915f5df0 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuildWriter.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuildWriter.java @@ -40,7 +40,6 @@ import io.spring.initializr.generator.buildsystem.gradle.GradleBuild.Configurati import io.spring.initializr.generator.buildsystem.gradle.GradleBuild.TaskCustomization; import io.spring.initializr.generator.io.IndentingWriter; import io.spring.initializr.generator.version.VersionProperty; -import io.spring.initializr.generator.version.VersionReference; /** * {@link GradleBuild} writer abstraction. @@ -188,27 +187,7 @@ public abstract class GradleBuildWriter { writer.println("}"); } - private String bomAsString(BillOfMaterials bom) { - String version = determineVersion(bom.getVersion()); - return bomAsString(bom, version); - } - - protected abstract String bomAsString(BillOfMaterials bom, String version); - - protected final String determineVersion(VersionReference versionReference) { - if (versionReference != null) { - if (versionReference.isProperty()) { - VersionProperty property = versionReference.getProperty(); - return "${" + (property.isInternal() ? property.toCamelCaseFormat() - : externalVersionPropertyAsString(property.toStandardFormat())) - + "}"; - } - return versionReference.getValue(); - } - return null; - } - - protected abstract String externalVersionPropertyAsString(String standardFormat); + protected abstract String bomAsString(BillOfMaterials bom); protected abstract void writeTasksWithTypeCustomizations(IndentingWriter writer, GradleBuild build); diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java index 6d7c758d..55f79eda 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java @@ -24,6 +24,7 @@ import io.spring.initializr.generator.buildsystem.BillOfMaterials; import io.spring.initializr.generator.buildsystem.Dependency; import io.spring.initializr.generator.buildsystem.MavenRepository; import io.spring.initializr.generator.io.IndentingWriter; +import io.spring.initializr.generator.version.VersionProperty; import io.spring.initializr.generator.version.VersionReference; /** @@ -138,15 +139,24 @@ public class GroovyDslGradleBuildWriter extends GradleBuildWriter { } @Override - protected String bomAsString(BillOfMaterials bom, String version) { + protected String bomAsString(BillOfMaterials bom) { String quoteStyle = determineQuoteStyle(bom.getVersion()); return "mavenBom " + quoteStyle + bom.getGroupId() + ":" + bom.getArtifactId() - + ":" + version + quoteStyle; + + ":" + determineVersion(bom.getVersion()) + quoteStyle; } - @Override - protected String externalVersionPropertyAsString(String standardFormat) { - return "property('" + standardFormat + "')"; + private String determineVersion(VersionReference versionReference) { + if (versionReference != null) { + if (versionReference.isProperty()) { + VersionProperty property = versionReference.getProperty(); + return "${" + + (property.isInternal() ? property.toCamelCaseFormat() + : ("property('" + property.toStandardFormat() + "')")) + + "}"; + } + return versionReference.getValue(); + } + return null; } @Override diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/KotlinDslGradleBuildWriter.java b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/KotlinDslGradleBuildWriter.java index 3a98f5fe..525a52cd 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/KotlinDslGradleBuildWriter.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/KotlinDslGradleBuildWriter.java @@ -27,6 +27,8 @@ import io.spring.initializr.generator.buildsystem.MavenRepository; import io.spring.initializr.generator.buildsystem.gradle.GradleBuild.ConfigurationCustomization; import io.spring.initializr.generator.buildsystem.gradle.GradleBuild.TaskCustomization; import io.spring.initializr.generator.io.IndentingWriter; +import io.spring.initializr.generator.version.VersionProperty; +import io.spring.initializr.generator.version.VersionReference; /** * A {@link GradleBuild} writer for {@code build.gradle.kts}. @@ -151,14 +153,22 @@ public class KotlinDslGradleBuildWriter extends GradleBuildWriter { } @Override - protected String bomAsString(BillOfMaterials bom, String version) { + protected String bomAsString(BillOfMaterials bom) { return "mavenBom(\"" + bom.getGroupId() + ":" + bom.getArtifactId() + ":" - + version + "\")"; + + determineVersion(bom.getVersion()) + "\")"; } - @Override - protected String externalVersionPropertyAsString(String standardFormat) { - return "property(\"" + standardFormat + "\")"; + private String determineVersion(VersionReference versionReference) { + if (versionReference != null) { + if (versionReference.isProperty()) { + VersionProperty property = versionReference.getProperty(); + return "${property(\"" + (property.isInternal() + ? property.toCamelCaseFormat() : property.toStandardFormat()) + + "\")}"; + } + return versionReference.getValue(); + } + return null; } @Override diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/KotlinDslGradleBuildWriterTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/KotlinDslGradleBuildWriterTests.java index 29253458..0298d621 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/KotlinDslGradleBuildWriterTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/KotlinDslGradleBuildWriterTests.java @@ -251,7 +251,7 @@ class KotlinDslGradleBuildWriterTests { DependencyScope.COMPILE); List lines = generateBuild(build); assertThat(lines).containsSequence("dependencies {", - " implementation(\"org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}\")", + " implementation(\"org.jetbrains.kotlin:kotlin-stdlib-jdk8:${property(\"kotlinVersion\")}\")", "}"); } @@ -425,7 +425,7 @@ class KotlinDslGradleBuildWriterTests { List lines = generateBuild(build); assertThat(lines).containsSequence("dependencyManagement {", " imports {", " mavenBom(\"com.example:my-project-dependencies:1.0.0.RELEASE\")", - " mavenBom(\"com.example:root-dependencies:${rootVersion}\")", + " mavenBom(\"com.example:root-dependencies:${property(\"rootVersion\")}\")", " }", "}"); }