Although the code still has a reference to `bootVersion` for backward
compatible reason, this commit updates the reference guide to refer to
"platform version".
Closes gh-976
This commit makes sure the metadata format uses a backward compatible
version format even if the new format is used. It also introduces a
new metadata version (2.2) that can be used by clients that support the
new version format.
See gh-1092
This commit improves the use case of configuring a custom ProjectRequest
by enforcing consistently a particular type using a generic.
As a result, `ProjectGenerationInvoker` is no longer exposed as a bean
as it is the responsibility of the custom `ProjectGenerationController`
to provide one that matches the requested `ProjectRequest` type.
See gh-990
This commit allows a custom instance to easily bind incoming request
attributes to a custom ProjectRequest instance and map it to a custom
ProjectDescription as well.
Closes gh-990
This commit migrates ProjectDescription to an interface with read-only
accessors and create a MutableProjectDescription implementation that can
be used for both purposes.
As a result, the type separation between ResolvedProjectDescription and
ProjectDescription is no longer necessary.
Closes gh-993
This commit moves project-based assertions to regular AssertJ Assert
classes. `ProjectStructure` is now an assert provider so that it can
be used with the standard `assertThat` method.
Specialized assertions are provided for the supported build systems as
well as text-based content.
Closes gh-764
This commit extracts various test utilities to a dedicated
initializr-generator-test module for easier consumption. The previous
test-jar are no longer published and a dependency to this new module
should be equivalent.
This commit also cleans various resources that were located in the wrong
place. In particular initializr-generator does not know anything about
metadata anymore.
Closes gh-988
This commit makes sure KotlinVersionResolver works with the actual
metadata instance used by the project to generate rather than
potentially using a different instance via the provider.
Rather than requiring such a bean to be present, the configuration
fallbacks to the metadata implementation if none is provided.