This commit extends ProjectGenerator so that the configuration of the
ProjectGenerationContext can be externalized if necessary. By default,
a context that does not allow bean overriding is provided.
Closes gh-999
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 reduces the cache metadata lookup to 2h so that clients can
see new Spring Boot version faster. It also offers an option for
custom instance to override the cache strategy any way they like.
Closes gh-979
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 splits MainController to a number of controllers with
dedicated responsibilities. This is a first step to make these features
more modular and potentially opt-in in the future.
Closes gh-994
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