This commit upgrades to Spring Boot 2.0.0.
Please note that this commit does not change metrics names to use new
features of Micrometer yet (see gh-526)
Closes gh-611
This commit temporarily removes the `@ConditionalOnBean` condition that
was added in 1bf0d0f as it breaks stats support. As auto-configurations
are not properly ordered, the `@Bean` configuration was backing off even
if a `InitializrMetadataProvider` bean was eventually present.
This commit reuses the `RestTemplateBuilder` infrastructure wherever
a `RestTemplate` is required. This allows to customize the rest template
if necessary.
Closes gh-481
This commit improves the `info` endpoint to contain a
`dependency-ranges` entry that is similar than the `bom-ranges` entry
for BOMs.
Each dependency that has a version mapping is listed with the range and
the related version. Some dependencies weren't managed and are now. For
those a `managed` version is used to indicate which Spring Boot versions
do not require to specify a version for the dependency.
Closes gh-453
This commit derives the package name of the application from the
artifact's `groupId` and `artifactId`. Previously sources were put in a
package that mirrors the groupId value.
This goes against the "unique package per application" policy that we
try to enforce. Even if the package name value can be customized
manually, deriving it automatically from the values provided in those
fields will help structure codebases.
With this change, the package name is derived like this:
* groupId `com.example`, artifactId `bookmarks` -> package
`com.example.bookmarks`
* groupId `com.example`, artifactId `user-management` -> package
`com.example.usermanagement`
This commit fixes the package name generation on the server, but also
in the web interfaces when the user updates the form fields.
Fixes gh-421
This commit removes the auto-configuration that export metrics
automatically to Redis. This feature has been superseded by the stats
feature and can be restored at any time in a custom service.
Closes gh-373
The commons wrapper we were using didn't support executable files
so Ant seems like the best choice ultimately, even if it has a
lot of features we don't use or need.
This commit commit adds restdocs and stub generators and initiate
a reference guide for Initializr.
Most of the controller tests now use MockMvc via a custom version
of the MockMvcClientHttpRequestFactory (from spring-test). The
snippet names are auto-generated in the form
<HttpMethod>/<path>[/queries(/<name-value)*][/headers](/name-value)*]
when there is a comma-separated value in a header it is
abbreviated as <first-value>.MORE.
Wiremock stubs are generated in the same form under
snippets/stubs (with ".json" as the
file extension).
The controller tests that stayed as full stack use a different
base class AbstractFullStackInitializrIntegrationTests.
A long JSON body can be broken out into separate snippets
for each field (or rather a list of fields supplied by the
user). This feature was already used with hard-coded snippets
in the wiki.
See gh-295
This commit improves the version format so that the minor and patch
elements can hold a special 'x' character besides the version, i.e.
`1.x.x.RELEASE` or `2.4.x.BUILD-SNAPSHOT`. A `VersionParser` now takes
care to resolve those against a list of known Spring Boot versions.
This is particularly useful in version ranges that have to change when
the latest Spring Boot versions change. Spring Initializr already auto-
udpates itself based on the sagan metadata. When a range is using this
feature, it is also automatically updated.
It might be hard to track the actual range values on a given instance so
an `InfoContributor` is now automatically exposed to list them.
Closes gh-328
The configuration processor does not work on Groovy classes, so the
metadata for `MetricsProperties` was missing, which causes there to be no
auto-completion in the IDE when using these properties from the
initializr-actuator module. This commit adds the corresponding metadata
for `MetricsProperties`.
See gh-312