This commit introduces `ProjectRequestPostProcessor` as a mean to modify
an incoming `ProjectRequest` before and after its resolution against the
meta-data.
By default, all beans of that type are invoked automatically and they
are ordered against their `@Order` or `Ordered` settings.
Closes gh-260
This commit allows to specify a property for the version of a BOM. If
that value is defined, a version property is automatically added to the
build to allow to easily configure the value.
Closes gh-181
This commit introduces a `buildProperties` property on the request that
can be used to specify Gradle/Maven build-specific properties as well as
an arbitrary number of version overrides.
Instead of hard-coding some properties in the templates, these defaults
are now inherited from the request itself.
Closes gh-259
This commit makes sure that the generated initializr-service app does
not contain a version number. That way, it is easier to reuse the same
command to push the app, regardless of the current version.
Previously, if one invokes the service asking for dependency `foo` and
`foo` does not exist we created a starter for it, that is
`spring-boot-starter-foo`. This mechanism was put in place because we
don't know all starters and to offer a nice fallback for users who know
what they're doing.
That statement proved to be wrong since users actually discover new
starters via the service and don't seem to attempt to create such starter
that are located in the `org.springframework.boot` groupId anyway. Most
if not all of those are pilot errors.
This commit enables strict validation of dependencies and generate an
appropriate exception if it isn't defined in the meta-data.
Closes gh-234
This commit switches SingleSelectCapability content to
CopyOnWriteArrayList to prevent ArrayIndexOutOfBoundsException in case
of concurrent updates of boot versions.
Note that there is way to mitigate that in 1.4 with the use of the `sync`
attribute, see gh-251
Closes gh-229
As of Spring Boot 1.4.0.M3, `SpringBootServletInitializer` has been
relocated to the `org.springframework.boot.web.support` package. This
commit makes sure to use the new location if a project is generated for
Spring Boot `1.4.0.M3` or higher.
Closes gh-243