the type of the extension container
+ * @param the type of the plugin container
+ * @author Akshat Gulati
+ */
+public interface BuildExtensionsAndPlugins {
+
+ /**
+ * Return the container for extensions.
+ * @return the extensions container
+ */
+ E extensions();
+
+ /**
+ * Return the container for plugins.
+ * @return the plugins container
+ */
+ P plugins();
+
+}
diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuild.java b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuild.java
index aaf60e6117..acb24cae54 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuild.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GradleBuild.java
@@ -19,6 +19,7 @@
import java.util.function.Consumer;
import io.spring.initializr.generator.buildsystem.Build;
+import io.spring.initializr.generator.buildsystem.BuildExtensionsAndPlugins;
import io.spring.initializr.generator.buildsystem.BuildItemResolver;
import io.spring.initializr.generator.buildsystem.gradle.GradleBuildSettings.Builder;
@@ -29,7 +30,8 @@
* @author Jean-Baptiste Nizet
* @author Moritz Halbritter
*/
-public class GradleBuild extends Build {
+public class GradleBuild extends Build
+ implements BuildExtensionsAndPlugins {
private final GradleBuildSettings.Builder settings = new Builder();
@@ -75,6 +77,7 @@ public GradleBuildSettings getSettings() {
* plugins.
* @return the {@link GradlePluginContainer}
*/
+ @Override
public GradlePluginContainer plugins() {
return this.plugins;
}
@@ -102,6 +105,7 @@ public GradleTaskContainer tasks() {
* configure extensions.
* @return the {@link GradleExtensionContainer}
*/
+ @Override
public GradleExtensionContainer extensions() {
return this.extensions;
}
diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/maven/MavenBuild.java b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/maven/MavenBuild.java
index db1cf10621..e8606fb76c 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/maven/MavenBuild.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/maven/MavenBuild.java
@@ -17,6 +17,7 @@
package io.spring.initializr.generator.buildsystem.maven;
import io.spring.initializr.generator.buildsystem.Build;
+import io.spring.initializr.generator.buildsystem.BuildExtensionsAndPlugins;
import io.spring.initializr.generator.buildsystem.BuildItemResolver;
import io.spring.initializr.generator.buildsystem.MavenRepositoryContainer;
import io.spring.initializr.generator.buildsystem.maven.MavenBuildSettings.Builder;
@@ -29,7 +30,8 @@
* @author Niklas Herder
* @author Maurice Zeijen
*/
-public class MavenBuild extends Build {
+public class MavenBuild extends Build
+ implements BuildExtensionsAndPlugins {
private final MavenBuildSettings.Builder settings = new Builder();
@@ -123,6 +125,7 @@ public MavenPluginContainer pluginManagementPlugins() {
* plugins.
* @return the {@link MavenPluginContainer}
*/
+ @Override
public MavenPluginContainer plugins() {
return this.plugins;
}
@@ -132,6 +135,7 @@ public MavenPluginContainer plugins() {
* configure extensions.
* @return the {@link MavenExtensionContainer}
*/
+ @Override
public MavenExtensionContainer extensions() {
return this.extensions;
}
diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/maven/MavenBuildWriter.java b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/maven/MavenBuildWriter.java
index 612e556bc4..02e58092b9 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/maven/MavenBuildWriter.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/maven/MavenBuildWriter.java
@@ -355,13 +355,20 @@ private String determineVersion(VersionReference versionReference) {
: versionReference.getValue();
}
+ private boolean isBuildEmpty(MavenBuild build) {
+ return build.resources().isEmpty() && build.testResources().isEmpty()
+ && build.pluginManagementPlugins().isEmpty() && build.plugins().isEmpty()
+ && build.extensions().isEmpty();
+ }
+
+ private boolean isBuildSettingsEmpty(MavenBuildSettings settings) {
+ return settings.getDefaultGoal() == null && settings.getFinalName() == null
+ && settings.getSourceDirectory() == null && settings.getTestSourceDirectory() == null;
+ }
+
private void writeBuild(IndentingWriter writer, MavenBuild build) {
MavenBuildSettings settings = build.getSettings();
- if (settings.getDefaultGoal() == null && settings.getFinalName() == null
- && settings.getSourceDirectory() == null && settings.getTestSourceDirectory() == null
- && build.resources().isEmpty() && build.testResources().isEmpty()
- && build.pluginManagementPlugins().isEmpty() && build.plugins().isEmpty()
- && build.extensions().isEmpty()) {
+ if (isBuildEmpty(build) && isBuildSettingsEmpty(settings)) {
return;
}
writer.println();
diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/language/AbstractLanguage.java b/initializr-generator/src/main/java/io/spring/initializr/generator/language/AbstractLanguage.java
index 5158333924..5b0762c340 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/generator/language/AbstractLanguage.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/generator/language/AbstractLanguage.java
@@ -46,7 +46,7 @@ public String id() {
return this.id;
}
- @Override
+ // @Override
public String jvmVersion() {
return this.jvmVersion;
}
diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/language/Language.java b/initializr-generator/src/main/java/io/spring/initializr/generator/language/Language.java
index 7cfa146bfd..0db2a5761b 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/generator/language/Language.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/generator/language/Language.java
@@ -39,11 +39,11 @@ public interface Language {
*/
String id();
- /**
- * Return the JVM version level to use.
- * @return the JVM version or {@value DEFAULT_JVM_VERSION} if not set
- */
- String jvmVersion();
+ // /**
+ // * Return the JVM version level to use.
+ // * @return the JVM version or {@value DEFAULT_JVM_VERSION} if not set
+ // */
+ // String jvmVersion();
/**
* Return the file extension to use for source file of this language.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/version/VersionParser.java b/initializr-generator/src/main/java/io/spring/initializr/generator/version/VersionParser.java
index 7d78821642..11913c461b 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/generator/version/VersionParser.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/generator/version/VersionParser.java
@@ -38,6 +38,7 @@
* line.
*
* @author Stephane Nicoll
+ * @author Akshat Gulati
*/
public class VersionParser {
@@ -141,17 +142,11 @@ public VersionRange parseRange(String text) {
}
private Version findLatestVersion(Integer major, Integer minor, Version.Qualifier qualifier) {
- List matches = this.latestVersions.stream().filter((it) -> {
- if (major != null && !major.equals(it.getMajor())) {
- return false;
- }
- if (minor != null && !minor.equals(it.getMinor())) {
- return false;
- }
- if (qualifier != null && !qualifier.equals(it.getQualifier())) {
- return false;
- }
- return true;
+ List matches = this.latestVersions.stream().filter((version) -> {
+ boolean majorMismatch = (major != null && !major.equals(version.getMajor()));
+ boolean minorMismatch = (minor != null && !minor.equals(version.getMinor()));
+ boolean qualifierMismatch = (qualifier != null && !qualifier.equals(version.getQualifier()));
+ return !majorMismatch && !minorMismatch && !qualifierMismatch;
}).toList();
return (matches.size() != 1) ? null : matches.get(0);
}
diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/language/LanguageTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/language/LanguageTests.java
index cafecd38ac..7625341446 100644
--- a/initializr-generator/src/test/java/io/spring/initializr/generator/language/LanguageTests.java
+++ b/initializr-generator/src/test/java/io/spring/initializr/generator/language/LanguageTests.java
@@ -37,7 +37,7 @@ void javaLanguage() {
assertThat(java).isInstanceOf(JavaLanguage.class);
assertThat(java.id()).isEqualTo("java");
assertThat(java.toString()).isEqualTo("java");
- assertThat(java.jvmVersion()).isEqualTo("11");
+ assertThat(((JavaLanguage) java).jvmVersion()).isEqualTo("11");
}
@Test
@@ -46,7 +46,7 @@ void kotlinLanguage() {
assertThat(kotlin).isInstanceOf(KotlinLanguage.class);
assertThat(kotlin.id()).isEqualTo("kotlin");
assertThat(kotlin.toString()).isEqualTo("kotlin");
- assertThat(kotlin.jvmVersion()).isEqualTo("1.8");
+ assertThat(((KotlinLanguage) kotlin).jvmVersion()).isEqualTo("1.8");
}
@Test
@@ -55,7 +55,7 @@ void groovyLanguage() {
assertThat(groovy).isInstanceOf(GroovyLanguage.class);
assertThat(groovy.id()).isEqualTo("groovy");
assertThat(groovy.toString()).isEqualTo("groovy");
- assertThat(groovy.jvmVersion()).isEqualTo("1.8");
+ assertThat(((GroovyLanguage) groovy).jvmVersion()).isEqualTo("1.8");
}
@Test
diff --git a/initializr-metadata/.flattened-pom 2.xml b/initializr-metadata/.flattened-pom 2.xml
new file mode 100644
index 0000000000..104ace11fe
--- /dev/null
+++ b/initializr-metadata/.flattened-pom 2.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-metadata
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Metadata
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-metadata
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ io.spring.initializr
+ initializr-generator
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot
+ 3.4.4
+ compile
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.18.3
+ compile
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-metadata/.flattened-pom 3.xml b/initializr-metadata/.flattened-pom 3.xml
new file mode 100644
index 0000000000..104ace11fe
--- /dev/null
+++ b/initializr-metadata/.flattened-pom 3.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-metadata
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Metadata
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-metadata
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ io.spring.initializr
+ initializr-generator
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot
+ 3.4.4
+ compile
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.18.3
+ compile
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-metadata/.flattened-pom 4.xml b/initializr-metadata/.flattened-pom 4.xml
new file mode 100644
index 0000000000..104ace11fe
--- /dev/null
+++ b/initializr-metadata/.flattened-pom 4.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-metadata
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Metadata
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-metadata
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ io.spring.initializr
+ initializr-generator
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot
+ 3.4.4
+ compile
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.18.3
+ compile
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-metadata/.flattened-pom 5.xml b/initializr-metadata/.flattened-pom 5.xml
new file mode 100644
index 0000000000..104ace11fe
--- /dev/null
+++ b/initializr-metadata/.flattened-pom 5.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-metadata
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Metadata
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-metadata
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ io.spring.initializr
+ initializr-generator
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot
+ 3.4.4
+ compile
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.18.3
+ compile
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-metadata/.flattened-pom 6.xml b/initializr-metadata/.flattened-pom 6.xml
new file mode 100644
index 0000000000..104ace11fe
--- /dev/null
+++ b/initializr-metadata/.flattened-pom 6.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-metadata
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Metadata
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-metadata
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ io.spring.initializr
+ initializr-generator
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot
+ 3.4.4
+ compile
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.18.3
+ compile
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-parent/.flattened-pom 2.xml b/initializr-parent/.flattened-pom 2.xml
new file mode 100644
index 0000000000..ac6b556ed8
--- /dev/null
+++ b/initializr-parent/.flattened-pom 2.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-bom
+ 0.22.0-SNAPSHOT
+ ../initializr-bom/pom.xml
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ pom
+ Spring Initializr :: Parent
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
diff --git a/initializr-parent/.flattened-pom 3.xml b/initializr-parent/.flattened-pom 3.xml
new file mode 100644
index 0000000000..ac6b556ed8
--- /dev/null
+++ b/initializr-parent/.flattened-pom 3.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-bom
+ 0.22.0-SNAPSHOT
+ ../initializr-bom/pom.xml
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ pom
+ Spring Initializr :: Parent
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
diff --git a/initializr-parent/.flattened-pom 4.xml b/initializr-parent/.flattened-pom 4.xml
new file mode 100644
index 0000000000..ac6b556ed8
--- /dev/null
+++ b/initializr-parent/.flattened-pom 4.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-bom
+ 0.22.0-SNAPSHOT
+ ../initializr-bom/pom.xml
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ pom
+ Spring Initializr :: Parent
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
diff --git a/initializr-parent/.flattened-pom 5.xml b/initializr-parent/.flattened-pom 5.xml
new file mode 100644
index 0000000000..ac6b556ed8
--- /dev/null
+++ b/initializr-parent/.flattened-pom 5.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-bom
+ 0.22.0-SNAPSHOT
+ ../initializr-bom/pom.xml
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ pom
+ Spring Initializr :: Parent
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
diff --git a/initializr-parent/.flattened-pom 6.xml b/initializr-parent/.flattened-pom 6.xml
new file mode 100644
index 0000000000..ac6b556ed8
--- /dev/null
+++ b/initializr-parent/.flattened-pom 6.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-bom
+ 0.22.0-SNAPSHOT
+ ../initializr-bom/pom.xml
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ pom
+ Spring Initializr :: Parent
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
diff --git a/initializr-parent/.flattened-pom 7.xml b/initializr-parent/.flattened-pom 7.xml
new file mode 100644
index 0000000000..ac6b556ed8
--- /dev/null
+++ b/initializr-parent/.flattened-pom 7.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-bom
+ 0.22.0-SNAPSHOT
+ ../initializr-bom/pom.xml
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ pom
+ Spring Initializr :: Parent
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
diff --git a/initializr-parent/.flattened-pom 8.xml b/initializr-parent/.flattened-pom 8.xml
new file mode 100644
index 0000000000..ac6b556ed8
--- /dev/null
+++ b/initializr-parent/.flattened-pom 8.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-bom
+ 0.22.0-SNAPSHOT
+ ../initializr-bom/pom.xml
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ pom
+ Spring Initializr :: Parent
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
diff --git a/initializr-parent/.flattened-pom 9.xml b/initializr-parent/.flattened-pom 9.xml
new file mode 100644
index 0000000000..ac6b556ed8
--- /dev/null
+++ b/initializr-parent/.flattened-pom 9.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-bom
+ 0.22.0-SNAPSHOT
+ ../initializr-bom/pom.xml
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ pom
+ Spring Initializr :: Parent
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
diff --git a/initializr-service-sample/.flattened-pom 2.xml b/initializr-service-sample/.flattened-pom 2.xml
new file mode 100644
index 0000000000..c0d7920b75
--- /dev/null
+++ b/initializr-service-sample/.flattened-pom 2.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-service-sample
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Service (Sample)
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-service-sample
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ 3.4.4
+ compile
+
+
+ io.spring.initializr
+ initializr-generator-spring
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ io.spring.initializr
+ initializr-web
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-service-sample/.flattened-pom 3.xml b/initializr-service-sample/.flattened-pom 3.xml
new file mode 100644
index 0000000000..c0d7920b75
--- /dev/null
+++ b/initializr-service-sample/.flattened-pom 3.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-service-sample
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Service (Sample)
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-service-sample
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ 3.4.4
+ compile
+
+
+ io.spring.initializr
+ initializr-generator-spring
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ io.spring.initializr
+ initializr-web
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-service-sample/.flattened-pom 4.xml b/initializr-service-sample/.flattened-pom 4.xml
new file mode 100644
index 0000000000..c0d7920b75
--- /dev/null
+++ b/initializr-service-sample/.flattened-pom 4.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-service-sample
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Service (Sample)
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-service-sample
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ 3.4.4
+ compile
+
+
+ io.spring.initializr
+ initializr-generator-spring
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ io.spring.initializr
+ initializr-web
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-service-sample/.flattened-pom 5.xml b/initializr-service-sample/.flattened-pom 5.xml
new file mode 100644
index 0000000000..c0d7920b75
--- /dev/null
+++ b/initializr-service-sample/.flattened-pom 5.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-service-sample
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Service (Sample)
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-service-sample
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ 3.4.4
+ compile
+
+
+ io.spring.initializr
+ initializr-generator-spring
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ io.spring.initializr
+ initializr-web
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ 3.4.4
+ compile
+ true
+
+
+
diff --git a/initializr-version-resolver/.flattened-pom 2.xml b/initializr-version-resolver/.flattened-pom 2.xml
new file mode 100644
index 0000000000..7492d2ece2
--- /dev/null
+++ b/initializr-version-resolver/.flattened-pom 2.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-version-resolver
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Version Resolver
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-version-resolver
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ org.springframework
+ spring-jcl
+ 6.2.5
+ compile
+
+
+ org.apache.maven
+ maven-core
+ 3.9.6
+ compile
+
+
+ org.apache.maven
+ maven-resolver-provider
+ 3.9.6
+ compile
+
+
+ org.apache.maven.resolver
+ maven-resolver-connector-basic
+ 1.9.20
+ compile
+
+
+ org.apache.maven.resolver
+ maven-resolver-transport-http
+ 1.9.20
+ compile
+
+
+
diff --git a/initializr-version-resolver/.flattened-pom 3.xml b/initializr-version-resolver/.flattened-pom 3.xml
new file mode 100644
index 0000000000..7492d2ece2
--- /dev/null
+++ b/initializr-version-resolver/.flattened-pom 3.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-version-resolver
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Version Resolver
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-version-resolver
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ org.springframework
+ spring-jcl
+ 6.2.5
+ compile
+
+
+ org.apache.maven
+ maven-core
+ 3.9.6
+ compile
+
+
+ org.apache.maven
+ maven-resolver-provider
+ 3.9.6
+ compile
+
+
+ org.apache.maven.resolver
+ maven-resolver-connector-basic
+ 1.9.20
+ compile
+
+
+ org.apache.maven.resolver
+ maven-resolver-transport-http
+ 1.9.20
+ compile
+
+
+
diff --git a/initializr-version-resolver/.flattened-pom 4.xml b/initializr-version-resolver/.flattened-pom 4.xml
new file mode 100644
index 0000000000..7492d2ece2
--- /dev/null
+++ b/initializr-version-resolver/.flattened-pom 4.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-version-resolver
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Version Resolver
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-version-resolver
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ org.springframework
+ spring-jcl
+ 6.2.5
+ compile
+
+
+ org.apache.maven
+ maven-core
+ 3.9.6
+ compile
+
+
+ org.apache.maven
+ maven-resolver-provider
+ 3.9.6
+ compile
+
+
+ org.apache.maven.resolver
+ maven-resolver-connector-basic
+ 1.9.20
+ compile
+
+
+ org.apache.maven.resolver
+ maven-resolver-transport-http
+ 1.9.20
+ compile
+
+
+
diff --git a/initializr-version-resolver/.flattened-pom 5.xml b/initializr-version-resolver/.flattened-pom 5.xml
new file mode 100644
index 0000000000..7492d2ece2
--- /dev/null
+++ b/initializr-version-resolver/.flattened-pom 5.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-version-resolver
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Version Resolver
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-version-resolver
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ org.springframework
+ spring-jcl
+ 6.2.5
+ compile
+
+
+ org.apache.maven
+ maven-core
+ 3.9.6
+ compile
+
+
+ org.apache.maven
+ maven-resolver-provider
+ 3.9.6
+ compile
+
+
+ org.apache.maven.resolver
+ maven-resolver-connector-basic
+ 1.9.20
+ compile
+
+
+ org.apache.maven.resolver
+ maven-resolver-transport-http
+ 1.9.20
+ compile
+
+
+
diff --git a/initializr-web/.flattened-pom 2.xml b/initializr-web/.flattened-pom 2.xml
new file mode 100644
index 0000000000..bfd8df5c2d
--- /dev/null
+++ b/initializr-web/.flattened-pom 2.xml
@@ -0,0 +1,103 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-web
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Web
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-web
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ io.spring.initializr
+ initializr-generator
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ io.spring.initializr
+ initializr-metadata
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot-starter-cache
+ 3.4.4
+ compile
+
+
+ org.springframework.boot
+ spring-boot-starter-mustache
+ 3.4.4
+ compile
+
+
+ org.springframework
+ spring-webmvc
+ 6.2.5
+ compile
+
+
+ org.springframework.hateoas
+ spring-hateoas
+ 2.4.1
+ compile
+
+
+ org.apache.commons
+ commons-compress
+ 1.26.1
+ compile
+
+
+ org.apache.commons
+ commons-text
+ 1.12.0
+ compile
+
+
+ javax.cache
+ cache-api
+ 1.1.1
+ compile
+ true
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.0.0
+ provided
+
+
+
diff --git a/initializr-web/.flattened-pom 3.xml b/initializr-web/.flattened-pom 3.xml
new file mode 100644
index 0000000000..bfd8df5c2d
--- /dev/null
+++ b/initializr-web/.flattened-pom 3.xml
@@ -0,0 +1,103 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-web
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Web
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-web
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ io.spring.initializr
+ initializr-generator
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ io.spring.initializr
+ initializr-metadata
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot-starter-cache
+ 3.4.4
+ compile
+
+
+ org.springframework.boot
+ spring-boot-starter-mustache
+ 3.4.4
+ compile
+
+
+ org.springframework
+ spring-webmvc
+ 6.2.5
+ compile
+
+
+ org.springframework.hateoas
+ spring-hateoas
+ 2.4.1
+ compile
+
+
+ org.apache.commons
+ commons-compress
+ 1.26.1
+ compile
+
+
+ org.apache.commons
+ commons-text
+ 1.12.0
+ compile
+
+
+ javax.cache
+ cache-api
+ 1.1.1
+ compile
+ true
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.0.0
+ provided
+
+
+
diff --git a/initializr-web/.flattened-pom 4.xml b/initializr-web/.flattened-pom 4.xml
new file mode 100644
index 0000000000..bfd8df5c2d
--- /dev/null
+++ b/initializr-web/.flattened-pom 4.xml
@@ -0,0 +1,103 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr-parent
+ 0.22.0-SNAPSHOT
+ ../initializr-parent/pom.xml
+
+ io.spring.initializr
+ initializr-web
+ 0.22.0-SNAPSHOT
+ Spring Initializr :: Web
+ JVM-based project generator
+ https://github.com/spring-io/initializr/initializr-bom/initializr-parent/initializr-web
+
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Spring
+ ask@spring.io
+ Broadcom Inc.
+ https://www.spring.io
+
+
+
+ scm:git:https://github.com/spring-io/initializr
+ scm:git:ssh://git@github.com/spring-io/initializr.git
+ https://github.com/spring-io/initializr
+
+
+
+ io.spring.initializr
+ initializr-generator
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ io.spring.initializr
+ initializr-metadata
+ 0.22.0-SNAPSHOT
+ compile
+
+
+ org.springframework.boot
+ spring-boot-starter-cache
+ 3.4.4
+ compile
+
+
+ org.springframework.boot
+ spring-boot-starter-mustache
+ 3.4.4
+ compile
+
+
+ org.springframework
+ spring-webmvc
+ 6.2.5
+ compile
+
+
+ org.springframework.hateoas
+ spring-hateoas
+ 2.4.1
+ compile
+
+
+ org.apache.commons
+ commons-compress
+ 1.26.1
+ compile
+
+
+ org.apache.commons
+ commons-text
+ 1.12.0
+ compile
+
+
+ javax.cache
+ cache-api
+ 1.1.1
+ compile
+ true
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.0.0
+ provided
+
+
+
diff --git a/initializr-web/src/main/java/io/spring/initializr/web/project/DefaultProjectRequestToDescriptionConverter.java b/initializr-web/src/main/java/io/spring/initializr/web/project/DefaultProjectRequestToDescriptionConverter.java
index 6e4c053382..cf1cf65c7f 100644
--- a/initializr-web/src/main/java/io/spring/initializr/web/project/DefaultProjectRequestToDescriptionConverter.java
+++ b/initializr-web/src/main/java/io/spring/initializr/web/project/DefaultProjectRequestToDescriptionConverter.java
@@ -27,11 +27,8 @@
import io.spring.initializr.generator.project.MutableProjectDescription;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.version.Version;
-import io.spring.initializr.metadata.DefaultMetadataElement;
import io.spring.initializr.metadata.Dependency;
-import io.spring.initializr.metadata.InitializrConfiguration.Platform;
import io.spring.initializr.metadata.InitializrMetadata;
-import io.spring.initializr.metadata.Type;
import io.spring.initializr.metadata.support.MetadataBuildItemMapper;
import org.springframework.util.Assert;
@@ -79,7 +76,8 @@ public ProjectDescription convert(ProjectRequest request, InitializrMetadata met
* @param metadata the metadata instance to use to apply defaults if necessary
*/
public void convert(ProjectRequest request, MutableProjectDescription description, InitializrMetadata metadata) {
- validate(request, metadata);
+ ProjectRequestValidator validator = new ProjectRequestValidator(metadata);
+ validator.validate(request);
Version platformVersion = getPlatformVersion(request, metadata);
List resolvedDependencies = getResolvedDependencies(request, platformVersion, metadata);
validateDependencyRange(platformVersion, resolvedDependencies);
@@ -110,65 +108,6 @@ protected String cleanInputValue(String value) {
: value;
}
- private void validate(ProjectRequest request, InitializrMetadata metadata) {
- validatePlatformVersion(request, metadata);
- validateType(request.getType(), metadata);
- validateLanguage(request.getLanguage(), metadata);
- validatePackaging(request.getPackaging(), metadata);
- validateDependencies(request, metadata);
- }
-
- private void validatePlatformVersion(ProjectRequest request, InitializrMetadata metadata) {
- Version platformVersion = Version.safeParse(request.getBootVersion());
- Platform platform = metadata.getConfiguration().getEnv().getPlatform();
- if (platformVersion != null && !platform.isCompatibleVersion(platformVersion)) {
- throw new InvalidProjectRequestException("Invalid Spring Boot version '" + platformVersion
- + "', Spring Boot compatibility range is " + platform.determineCompatibilityRangeRequirement());
- }
- }
-
- private void validateType(String type, InitializrMetadata metadata) {
- if (type != null) {
- Type typeFromMetadata = metadata.getTypes().get(type);
- if (typeFromMetadata == null) {
- throw new InvalidProjectRequestException("Unknown type '" + type + "' check project metadata");
- }
- if (!typeFromMetadata.getTags().containsKey("build")) {
- throw new InvalidProjectRequestException(
- "Invalid type '" + type + "' (missing build tag) check project metadata");
- }
- }
- }
-
- private void validateLanguage(String language, InitializrMetadata metadata) {
- if (language != null) {
- DefaultMetadataElement languageFromMetadata = metadata.getLanguages().get(language);
- if (languageFromMetadata == null) {
- throw new InvalidProjectRequestException("Unknown language '" + language + "' check project metadata");
- }
- }
- }
-
- private void validatePackaging(String packaging, InitializrMetadata metadata) {
- if (packaging != null) {
- DefaultMetadataElement packagingFromMetadata = metadata.getPackagings().get(packaging);
- if (packagingFromMetadata == null) {
- throw new InvalidProjectRequestException(
- "Unknown packaging '" + packaging + "' check project metadata");
- }
- }
- }
-
- private void validateDependencies(ProjectRequest request, InitializrMetadata metadata) {
- List dependencies = request.getDependencies();
- dependencies.forEach((dep) -> {
- Dependency dependency = metadata.getDependencies().get(dep);
- if (dependency == null) {
- throw new InvalidProjectRequestException("Unknown dependency '" + dep + "' check project metadata");
- }
- });
- }
-
private void validateDependencyRange(Version platformVersion, List resolvedDependencies) {
resolvedDependencies.forEach((dep) -> {
if (!dep.match(platformVersion)) {
diff --git a/initializr-web/src/main/java/io/spring/initializr/web/project/ProjectRequestValidator.java b/initializr-web/src/main/java/io/spring/initializr/web/project/ProjectRequestValidator.java
new file mode 100644
index 0000000000..4961259134
--- /dev/null
+++ b/initializr-web/src/main/java/io/spring/initializr/web/project/ProjectRequestValidator.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright 2012-2022 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.spring.initializr.web.project;
+
+import java.util.List;
+
+import io.spring.initializr.generator.version.Version;
+import io.spring.initializr.metadata.DefaultMetadataElement;
+import io.spring.initializr.metadata.Dependency;
+import io.spring.initializr.metadata.InitializrConfiguration;
+import io.spring.initializr.metadata.InitializrMetadata;
+import io.spring.initializr.metadata.Type;
+
+/**
+ * A validator for {@link ProjectRequest} instances, ensuring they meet the requirements
+ * defined in the {@link InitializrMetadata}. This class performs validation on various
+ * aspects of the project request, including the platform version, type, language,
+ * packaging, and dependencies. Each validation step checks against the provided metadata
+ * to ensure the request is valid and compatible.
+ *
+ * @author Akshat Gulati
+ */
+public class ProjectRequestValidator {
+
+ private final InitializrMetadata metadata;
+
+ /**
+ * Constructs a new {@link ProjectRequestValidator} with the specified metadata.
+ * @param metadata the metadata to use for validation
+ */
+ public ProjectRequestValidator(InitializrMetadata metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * Validates the specified {@link ProjectRequest}. This method orchestrates the
+ * validation process by calling individual validation methods for each aspect of the
+ * project request. If any validation fails, an {@link InvalidProjectRequestException}
+ * is thrown.
+ * @param request the project request to validate
+ * @throws InvalidProjectRequestException if the request is invalid
+ */
+ public void validate(ProjectRequest request) {
+ validatePlatformVersion(request);
+ validateType(request.getType());
+ validateLanguage(request.getLanguage());
+ validatePackaging(request.getPackaging());
+ validateDependencies(request);
+ }
+
+ /**
+ * Validates the platform version specified in the request. Checks if the provided
+ * Spring Boot version is compatible with the platform's compatibility range defined
+ * in the metadata.
+ * @param request the project request containing the boot version
+ * @throws InvalidProjectRequestException if the version is invalid or incompatible
+ */
+ private void validatePlatformVersion(ProjectRequest request) {
+ Version platformVersion = Version.safeParse(request.getBootVersion());
+ InitializrConfiguration.Platform platform = this.metadata.getConfiguration().getEnv().getPlatform();
+ if (platformVersion != null && !platform.isCompatibleVersion(platformVersion)) {
+ throw new InvalidProjectRequestException("Invalid Spring Boot version '" + platformVersion
+ + "', Spring Boot compatibility range is " + platform.determineCompatibilityRangeRequirement());
+ }
+ }
+
+ /**
+ * Validates the type specified in the request. Ensures that the type exists in the
+ * metadata and has the required 'build' tag.
+ * @param type the type to validate
+ * @throws InvalidProjectRequestException if the type is unknown or missing the build
+ * tag
+ */
+ private void validateType(String type) {
+ if (type != null) {
+ Type typeFromMetadata = this.metadata.getTypes().get(type);
+ if (typeFromMetadata == null) {
+ throw new InvalidProjectRequestException("Unknown type '" + type + "' check project metadata");
+ }
+ if (!typeFromMetadata.getTags().containsKey("build")) {
+ throw new InvalidProjectRequestException(
+ "Invalid type '" + type + "' (missing build tag) check project metadata");
+ }
+ }
+ }
+
+ /**
+ * Validates the language specified in the request.
+ *
+ *
+ * Checks if the language is defined in the metadata.
+ * @param language the language to validate
+ * @throws InvalidProjectRequestException if the language is unknown
+ */
+ private void validateLanguage(String language) {
+ if (language != null) {
+ DefaultMetadataElement languageFromMetadata = this.metadata.getLanguages().get(language);
+ if (languageFromMetadata == null) {
+ throw new InvalidProjectRequestException("Unknown language '" + language + "' check project metadata");
+ }
+ }
+ }
+
+ /**
+ * Validates the packaging specified in the request. Ensures that the packaging type
+ * is defined in the metadata.
+ * @param packaging the packaging to validate
+ * @throws InvalidProjectRequestException if the packaging is unknown
+ */
+ private void validatePackaging(String packaging) {
+ if (packaging != null) {
+ DefaultMetadataElement packagingFromMetadata = this.metadata.getPackagings().get(packaging);
+ if (packagingFromMetadata == null) {
+ throw new InvalidProjectRequestException(
+ "Unknown packaging '" + packaging + "' check project metadata");
+ }
+ }
+ }
+
+ /**
+ * Validates the dependencies specified in the request. Checks that each dependency
+ * exists in the metadata.
+ * @param request the project request containing the dependencies
+ * @throws InvalidProjectRequestException if any dependency is unknown
+ */
+ private void validateDependencies(ProjectRequest request) {
+ List dependencies = request.getDependencies();
+ dependencies.forEach((dep) -> {
+ Dependency dependency = this.metadata.getDependencies().get(dep);
+ if (dependency == null) {
+ throw new InvalidProjectRequestException("Unknown dependency '" + dep + "' check project metadata");
+ }
+ });
+ }
+
+}
diff --git a/initializr-web/src/main/java/io/spring/initializr/web/support/DefaultDependencyMetadataProvider.java b/initializr-web/src/main/java/io/spring/initializr/web/support/DefaultDependencyMetadataProvider.java
index 02ae329a38..473240ec7c 100644
--- a/initializr-web/src/main/java/io/spring/initializr/web/support/DefaultDependencyMetadataProvider.java
+++ b/initializr-web/src/main/java/io/spring/initializr/web/support/DefaultDependencyMetadataProvider.java
@@ -33,12 +33,28 @@
* A default {@link DependencyMetadataProvider} implementation.
*
* @author Stephane Nicoll
+ * @author Akshat Gulati
*/
public class DefaultDependencyMetadataProvider implements DependencyMetadataProvider {
@Override
@Cacheable(cacheNames = "initializr.dependency-metadata", key = "#p1")
public DependencyMetadata get(InitializrMetadata metadata, Version bootVersion) {
+ Map dependencies = getDependencies(metadata, bootVersion);
+ Map repositories = getRepositoriesDependencies(metadata, dependencies);
+ Map boms = getBoms(metadata, dependencies, bootVersion);
+
+ // Each resolved bom may require additional repositories
+ for (BillOfMaterials bom : boms.values()) {
+ for (String id : bom.getRepositories()) {
+ repositories.put(id, metadata.getConfiguration().getEnv().getRepositories().get(id));
+ }
+ }
+
+ return new DependencyMetadata(bootVersion, dependencies, repositories, boms);
+ }
+
+ private Map getDependencies(InitializrMetadata metadata, Version bootVersion) {
Map dependencies = new LinkedHashMap<>();
for (Dependency dependency : metadata.getDependencies().getAll()) {
if (dependency.match(bootVersion)) {
@@ -46,6 +62,11 @@ public DependencyMetadata get(InitializrMetadata metadata, Version bootVersion)
}
}
+ return dependencies;
+ }
+
+ private Map getRepositoriesDependencies(InitializrMetadata metadata,
+ Map dependencies) {
Map repositories = new LinkedHashMap<>();
for (Dependency dependency : dependencies.values()) {
if (dependency.getRepository() != null) {
@@ -53,7 +74,11 @@ public DependencyMetadata get(InitializrMetadata metadata, Version bootVersion)
metadata.getConfiguration().getEnv().getRepositories().get(dependency.getRepository()));
}
}
+ return repositories;
+ }
+ private Map getBoms(InitializrMetadata metadata, Map dependencies,
+ Version bootVersion) {
Map boms = new LinkedHashMap<>();
for (Dependency dependency : dependencies.values()) {
if (dependency.getBom() != null) {
@@ -61,14 +86,8 @@ public DependencyMetadata get(InitializrMetadata metadata, Version bootVersion)
metadata.getConfiguration().getEnv().getBoms().get(dependency.getBom()).resolve(bootVersion));
}
}
- // Each resolved bom may require additional repositories
- for (BillOfMaterials bom : boms.values()) {
- for (String id : bom.getRepositories()) {
- repositories.put(id, metadata.getConfiguration().getEnv().getRepositories().get(id));
- }
- }
- return new DependencyMetadata(bootVersion, dependencies, repositories, boms);
+ return boms;
}
}
diff --git a/initializr-web/src/test/java/io/spring/initializr/web/project/DefaultProjectRequestToDescriptionConverterTests.java b/initializr-web/src/test/java/io/spring/initializr/web/project/DefaultProjectRequestToDescriptionConverterTests.java
index e9080a1073..05539d4083 100644
--- a/initializr-web/src/test/java/io/spring/initializr/web/project/DefaultProjectRequestToDescriptionConverterTests.java
+++ b/initializr-web/src/test/java/io/spring/initializr/web/project/DefaultProjectRequestToDescriptionConverterTests.java
@@ -19,6 +19,7 @@
import java.util.Collections;
import io.spring.initializr.generator.buildsystem.gradle.GradleBuildSystem;
+import io.spring.initializr.generator.language.AbstractLanguage;
import io.spring.initializr.generator.project.ProjectDescription;
import io.spring.initializr.generator.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.version.Version;
@@ -274,7 +275,7 @@ void convertShouldSetLanguageForProjectDescriptionFromRequest() {
request.setJavaVersion("1.8");
ProjectDescription description = this.converter.convert(request, this.metadata);
assertThat(description.getLanguage().id()).isEqualTo("java");
- assertThat(description.getLanguage().jvmVersion()).isEqualTo("1.8");
+ assertThat(((AbstractLanguage) description.getLanguage()).jvmVersion()).isEqualTo("1.8");
}
private ProjectRequest createProjectRequest() {