This commit stops creating a MustacheTemplateRenderer automatically as
it is only used by the Spring conventions at the moment. This makes sure
that the test infrastructure can be used even if mustache is not
available.
Closes gh-991
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.
This commit improves the HELP.md customizer for links to add a link even
if it does not have a description. Links are defined in three dedicated
areas so it is possible to infer a sensible name if only one link of a
certain type is present.
Closes gh-962
Previously, hasExecutableFile only checked if the
file exists and not if it was executable. This commit
ensures that the file exists and is executable using
ExecTask as Unzip and Untar do not preserve file permissions.
See gh-937