diff --git a/initializr-actuator/pom.xml b/initializr-actuator/pom.xml
index a2633c82..8fc32298 100644
--- a/initializr-actuator/pom.xml
+++ b/initializr-actuator/pom.xml
@@ -78,6 +78,12 @@
test-jar
test
+
+ io.spring.initializr
+ initializr-metadata
+ test-jar
+ test
+
io.spring.initializr
initializr-web
diff --git a/initializr-metadata/pom.xml b/initializr-metadata/pom.xml
new file mode 100644
index 00000000..40964ae9
--- /dev/null
+++ b/initializr-metadata/pom.xml
@@ -0,0 +1,80 @@
+
+
+ 4.0.0
+
+ io.spring.initializr
+ initializr
+ ${revision}
+
+ initializr-metadata
+ Spring Initializr :: Metadata
+
+
+ ${basedir}/..
+
+
+
+
+ io.spring.initializr
+ initializr-generator
+
+
+ org.springframework.boot
+ spring-boot
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+ org.assertj
+ assertj-core
+ test
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter
+ test
+
+
+ xmlunit
+ xmlunit
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+
+
+
+
+
+
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/BillOfMaterials.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/BillOfMaterials.java
similarity index 100%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/BillOfMaterials.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/BillOfMaterials.java
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/DefaultMetadataElement.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/DefaultMetadataElement.java
similarity index 96%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/DefaultMetadataElement.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/DefaultMetadataElement.java
index d9b75b22..a36fd9c5 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/DefaultMetadataElement.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/DefaultMetadataElement.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/Defaultable.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Defaultable.java
similarity index 93%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/Defaultable.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/Defaultable.java
index 21ff1b70..eb4e1e81 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/Defaultable.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Defaultable.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/DependenciesCapability.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/DependenciesCapability.java
similarity index 100%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/DependenciesCapability.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/DependenciesCapability.java
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/Dependency.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Dependency.java
similarity index 100%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/Dependency.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/Dependency.java
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/DependencyGroup.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/DependencyGroup.java
similarity index 97%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/DependencyGroup.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/DependencyGroup.java
index 179a315c..a289f75a 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/DependencyGroup.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/DependencyGroup.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/DependencyMetadata.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/DependencyMetadata.java
similarity index 100%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/DependencyMetadata.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/DependencyMetadata.java
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/DependencyMetadataProvider.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/DependencyMetadataProvider.java
similarity index 100%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/DependencyMetadataProvider.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/DependencyMetadataProvider.java
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/Describable.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Describable.java
similarity index 93%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/Describable.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/Describable.java
index a9cc024c..8f788cfd 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/Describable.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Describable.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrConfiguration.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrConfiguration.java
similarity index 100%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrConfiguration.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrConfiguration.java
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadata.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadata.java
similarity index 100%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadata.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadata.java
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataBuilder.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataBuilder.java
similarity index 99%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataBuilder.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataBuilder.java
index ff0933c3..c9cb5d5d 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataBuilder.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataBuilder.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataCustomizer.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataCustomizer.java
similarity index 94%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataCustomizer.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataCustomizer.java
index f86204a5..61163ebb 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataCustomizer.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataCustomizer.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataProvider.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataProvider.java
similarity index 94%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataProvider.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataProvider.java
index 72021700..524893cd 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrMetadataProvider.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrMetadataProvider.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrProperties.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrProperties.java
similarity index 98%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrProperties.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrProperties.java
index 5d7880a6..530ff69e 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrProperties.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InitializrProperties.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/InvalidInitializrMetadataException.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/InvalidInitializrMetadataException.java
similarity index 100%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/InvalidInitializrMetadataException.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/InvalidInitializrMetadataException.java
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/Link.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Link.java
similarity index 98%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/Link.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/Link.java
index e9cb08eb..47cd5b6e 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/Link.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Link.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/MetadataElement.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/MetadataElement.java
similarity index 96%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/MetadataElement.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/MetadataElement.java
index d4abbb52..8b2d876f 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/MetadataElement.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/MetadataElement.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/Repository.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Repository.java
similarity index 97%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/Repository.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/Repository.java
index 99e35f1a..e292544d 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/Repository.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Repository.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/ServiceCapability.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/ServiceCapability.java
similarity index 98%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/ServiceCapability.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/ServiceCapability.java
index 63500002..655b19d3 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/ServiceCapability.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/ServiceCapability.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/ServiceCapabilityType.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/ServiceCapabilityType.java
similarity index 95%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/ServiceCapabilityType.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/ServiceCapabilityType.java
index 59daf8d5..c96e6247 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/ServiceCapabilityType.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/ServiceCapabilityType.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/SimpleInitializrMetadataProvider.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/SimpleInitializrMetadataProvider.java
similarity index 94%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/SimpleInitializrMetadataProvider.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/SimpleInitializrMetadataProvider.java
index efc3b3ad..59cb0af7 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/SimpleInitializrMetadataProvider.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/SimpleInitializrMetadataProvider.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2017 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/SingleSelectCapability.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/SingleSelectCapability.java
similarity index 97%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/SingleSelectCapability.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/SingleSelectCapability.java
index 857aa778..c8ba3843 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/SingleSelectCapability.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/SingleSelectCapability.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/TextCapability.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/TextCapability.java
similarity index 96%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/TextCapability.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/TextCapability.java
index 442fdb9c..a57d2356 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/TextCapability.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/TextCapability.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/Type.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Type.java
similarity index 96%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/Type.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/Type.java
index b162e568..455630e4 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/Type.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Type.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/TypeCapability.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/TypeCapability.java
similarity index 97%
rename from initializr-generator/src/main/java/io/spring/initializr/metadata/TypeCapability.java
rename to initializr-metadata/src/main/java/io/spring/initializr/metadata/TypeCapability.java
index 06ecd24e..21558001 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/TypeCapability.java
+++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/TypeCapability.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2018 the original author or authors.
+ * Copyright 2012-2019 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.
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/BillOfMaterialsTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/BillOfMaterialsTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/BillOfMaterialsTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/BillOfMaterialsTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/DependenciesCapabilityTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/DependenciesCapabilityTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/DependenciesCapabilityTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/DependenciesCapabilityTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/DependencyTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/DependencyTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/DependencyTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/DependencyTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrConfigurationTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/InitializrConfigurationTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrConfigurationTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/InitializrConfigurationTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataBuilderTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/InitializrMetadataBuilderTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataBuilderTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/InitializrMetadataBuilderTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/InitializrMetadataTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/InitializrMetadataTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/LinkTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/LinkTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/LinkTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/LinkTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/SingleSelectCapabilityTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/SingleSelectCapabilityTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/SingleSelectCapabilityTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/SingleSelectCapabilityTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/TextCapabilityTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/TextCapabilityTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/TextCapabilityTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/TextCapabilityTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeCapabilityTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/TypeCapabilityTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/TypeCapabilityTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/TypeCapabilityTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeTests.java b/initializr-metadata/src/test/java/io/spring/initializr/metadata/TypeTests.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/metadata/TypeTests.java
rename to initializr-metadata/src/test/java/io/spring/initializr/metadata/TypeTests.java
diff --git a/initializr-generator/src/test/java/io/spring/initializr/test/metadata/InitializrMetadataTestBuilder.java b/initializr-metadata/src/test/java/io/spring/initializr/test/metadata/InitializrMetadataTestBuilder.java
similarity index 100%
rename from initializr-generator/src/test/java/io/spring/initializr/test/metadata/InitializrMetadataTestBuilder.java
rename to initializr-metadata/src/test/java/io/spring/initializr/test/metadata/InitializrMetadataTestBuilder.java
diff --git a/initializr-metadata/src/test/resources/application-test-custom-defaults.yml b/initializr-metadata/src/test/resources/application-test-custom-defaults.yml
new file mode 100644
index 00000000..cc9d9679
--- /dev/null
+++ b/initializr-metadata/src/test/resources/application-test-custom-defaults.yml
@@ -0,0 +1,13 @@
+initializr:
+ groupId:
+ value: org.foo
+ artifactId:
+ value: foo-bar
+ version:
+ value: 1.2.4-SNAPSHOT
+ name:
+ value: FooBar
+ description:
+ value: FooBar Project
+ packageName:
+ value: org.foo.demo
\ No newline at end of file
diff --git a/initializr-metadata/src/test/resources/application-test-custom-env.yml b/initializr-metadata/src/test/resources/application-test-custom-env.yml
new file mode 100644
index 00000000..f271d295
--- /dev/null
+++ b/initializr-metadata/src/test/resources/application-test-custom-env.yml
@@ -0,0 +1,9 @@
+initializr:
+ env:
+ artifactRepository: https://repo.spring.io/lib-release
+ google-analytics-tracking-code: UA-1234567-89
+ fallbackApplicationName: FooBarApplication
+ invalidApplicationNames:
+ - InvalidApplication
+ kotlin:
+ default-version: 1.0.0-beta-2423
\ No newline at end of file
diff --git a/initializr-metadata/src/test/resources/application-test-default.yml b/initializr-metadata/src/test/resources/application-test-default.yml
new file mode 100644
index 00000000..a3daf6ea
--- /dev/null
+++ b/initializr-metadata/src/test/resources/application-test-default.yml
@@ -0,0 +1,167 @@
+info:
+ spring-boot:
+ version: 2.1.4.RELEASE
+
+initializr:
+ env:
+ boms:
+ my-api-bom:
+ groupId: org.acme
+ artifactId: my-api-bom
+ versionProperty: my-api.version
+ additionalBoms: ['my-api-dependencies-bom']
+ mappings:
+ - versionRange: "[2.0.0.RELEASE,2.1.6.RELEASE)"
+ version: 1.0.0.RELEASE
+ repositories: my-api-repo-1
+ - versionRange: "2.2.1.RELEASE"
+ version: 2.0.0.RELEASE
+ repositories: my-api-repo-2
+ my-api-dependencies-bom:
+ groupId: org.acme
+ artifactId: my-api-dependencies-bom
+ version: 1.0.0.RELEASE
+ repositories: my-api-repo-3
+ kotlin:
+ defaultVersion: 1.2
+ mappings:
+ - versionRange: "[1.5.0.RELEASE,2.0.0.M1)"
+ version: 1.0
+ - versionRange: "[2.0.0.M1,2.1.0.M1)"
+ version: 1.1
+ repositories:
+ my-api-repo-1:
+ name: repo1
+ url: http://example.com/repo1
+ my-api-repo-2:
+ name: repo2
+ url: http://example.com/repo2
+ my-api-repo-3:
+ name: repo3
+ url: http://example.com/repo3
+ dependencies:
+ - name: Core
+ content:
+ - name: Web
+ id: web
+ description: Web dependency description
+ facets:
+ - web
+ links:
+ - rel: guide
+ href: https://example.com/guide
+ description: Building a RESTful Web Service
+ - rel: reference
+ href: https://example.com/doc
+ - name: Security
+ id: security
+ - name: Data JPA
+ id: data-jpa
+ aliases:
+ - jpa
+ - name: Other
+ content:
+ - name: Foo
+ groupId: org.acme
+ artifactId: foo
+ version: 1.3.5
+ weight: 42
+ keywords:
+ - thefoo
+ - dafoo
+ links:
+ - rel: guide
+ href: https://example.com/guide1
+ - rel: reference
+ href: https://example.com/{bootVersion}/doc
+ - rel: guide
+ href: https://example.com/guide2
+ description: Some guide for foo
+ - name: Bar
+ id: org.acme:bar
+ version: 2.1.0
+ - name: Biz
+ groupId: org.acme
+ artifactId: biz
+ scope: runtime
+ version: 1.3.5
+ versionRange: 2.2.0.BUILD-SNAPSHOT
+ - name: Bur
+ id: org.acme:bur
+ version: 2.1.0
+ scope: test
+ versionRange: "[2.1.4.RELEASE,2.2.0.BUILD-SNAPSHOT)"
+ - name: My API
+ id : my-api
+ groupId: org.acme
+ artifactId: my-api
+ scope: provided
+ bom: my-api-bom
+ types:
+ - name: Maven POM
+ id: maven-build
+ sts-id: pom.xml
+ tags:
+ build: maven
+ format: build
+ default: false
+ action: /pom.xml
+ - name: Maven Project
+ id: maven-project
+ sts-id: starter.zip
+ tags:
+ build: maven
+ format: project
+ default: true
+ action: /starter.zip
+ - name: Gradle Config
+ id: gradle-build
+ sts-id: build.gradle
+ tags:
+ build: gradle
+ format: build
+ default: false
+ action: /build.gradle
+ - name: Gradle Project
+ id: gradle-project
+ sts-id: gradle.zip
+ tags:
+ build: gradle
+ format: project
+ default: false
+ action: /starter.zip
+ packagings:
+ - name: Jar
+ id: jar
+ default: true
+ - name: War
+ id: war
+ default: false
+ javaVersions:
+ - id: 1.6
+ default: false
+ - id: 1.7
+ default: false
+ - id: 1.8
+ default: true
+ languages:
+ - name: Groovy
+ id: groovy
+ default: false
+ - name: Java
+ id: java
+ default: true
+ - name: Kotlin
+ id: kotlin
+ default: false
+ bootVersions:
+ - name : Latest SNAPSHOT
+ id: 2.2.0.BUILD-SNAPSHOT
+ default: false
+ - name: 2.1.4
+ id: 2.1.4.RELEASE
+ default: true
+ - name: 1.5.17
+ id: 1.5.17.RELEASE
+ default: false
+
diff --git a/initializr-metadata/src/test/resources/application-test-ssl.yml b/initializr-metadata/src/test/resources/application-test-ssl.yml
new file mode 100644
index 00000000..e6e71af0
--- /dev/null
+++ b/initializr-metadata/src/test/resources/application-test-ssl.yml
@@ -0,0 +1,3 @@
+initializr:
+ env:
+ forceSsl: true
\ No newline at end of file
diff --git a/initializr-metadata/src/test/resources/logback-test.xml b/initializr-metadata/src/test/resources/logback-test.xml
new file mode 100644
index 00000000..ddb1ed6e
--- /dev/null
+++ b/initializr-metadata/src/test/resources/logback-test.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/initializr-generator/src/test/resources/metadata/config/test-bom.json b/initializr-metadata/src/test/resources/metadata/config/test-bom.json
similarity index 100%
rename from initializr-generator/src/test/resources/metadata/config/test-bom.json
rename to initializr-metadata/src/test/resources/metadata/config/test-bom.json
diff --git a/initializr-generator/src/test/resources/metadata/config/test-min.json b/initializr-metadata/src/test/resources/metadata/config/test-min.json
similarity index 100%
rename from initializr-generator/src/test/resources/metadata/config/test-min.json
rename to initializr-metadata/src/test/resources/metadata/config/test-min.json
diff --git a/initializr-generator/src/test/resources/metadata/config/test-repository.json b/initializr-metadata/src/test/resources/metadata/config/test-repository.json
similarity index 100%
rename from initializr-generator/src/test/resources/metadata/config/test-repository.json
rename to initializr-metadata/src/test/resources/metadata/config/test-repository.json
diff --git a/initializr-web/pom.xml b/initializr-web/pom.xml
index 1649aabf..4e2573dd 100644
--- a/initializr-web/pom.xml
+++ b/initializr-web/pom.xml
@@ -18,6 +18,10 @@
io.spring.initializr
initializr-generator
+
+ io.spring.initializr
+ initializr-metadata
+
org.springframework.boot
@@ -79,6 +83,12 @@
test-jar
test
+
+ io.spring.initializr
+ initializr-metadata
+ test-jar
+ test
+
io.spring.initializr.experimental
initializr-generator
diff --git a/pom.xml b/pom.xml
index 0e81e7e2..f0250c10 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,6 +51,7 @@
initializr-actuator
initializr-docs
initializr-generator
+ initializr-metadata
initializr-web
@@ -72,6 +73,17 @@
${revision}
test-jar
+
+ io.spring.initializr
+ initializr-metadata
+ ${revision}
+
+
+ io.spring.initializr
+ initializr-metadata
+ ${revision}
+ test-jar
+
io.spring.initializr
initializr-web