Previously, dependency management for JNA was provided by
spring-boot-dependencies so it affected users' applications. It was
original added for Elasticsearch but is no longer needed for that
purpose. We use JNA in spring-boot-buildpack-platform which is used
by our Gradle and Maven plugins and should not affect an application's
use of JNA.
This commit moves management of JNA from spring-boot-dependencies into
spring-boot-parent. This means that users' applications will now be
free to use whatever version of JNA meets their needs while still
controlling the version used for image building via Gradle or Maven.
Closes gh-20156
Previously, the configprop macro was being used in the source but the
extension that implements the macro was not available to Asciidoctor.
This led to the references not being checked at build time and the
macro being left as-is in the rendered documentation.
This commit updates the dependencies that are available to Asciidoctor
to include the extension and the projects which define the
configuration properties referenced in the documentation.
Closes gh-20149
This commit fixes the `Created` date and time of the ephemeral builder
container image at the Windows epoch plus one second
(1980-01-01T00:00:01Z). This date matches the created date of the builder
image and influences the created date of the resulting image. Using
a fixed date for images ensures that the digest is consistent for all
images with the same version.
Fixes gh-20126
This commit adds a `createdBy` structure to the metadata of the ephemeral
builder container image that identifies Spring Boot as the creator of the
image, along with the Spring Boot version.
See gh-20126
Prior to this commit, Actuator endpoints would use the application
ObjectMapper instance for serializing payloads as JSON. This was
problematic in several cases:
* application-specific configuration would change the actuator endpoint
output.
* choosing a different JSON mapper implementation in the application
would break completely some endpoints.
Spring Boot Actuator already has a hard dependency on Jackson, and this
commit uses that fact to configure a shared `ObjectMapper` instance that
will be used by the Actuator infrastructure consistently, without
polluting the application context.
This `ObjectMapper` is used in Actuator for:
* JMX endpoints
* Spring MVC endpoints with an HTTP message converter
* Spring WebFlux endpoints with an `Encoder`
* Jersey endpoints with a `ContextResolver<ObjectMapper>`
For all web endpoints, this configuration is limited to the
actuator-specific media types such as
`"application/vnd.spring-boot.actuator.v3+json"`.
Fixes gh-12951
Along with surrounding map keys with dot from VCAP_SERVICES with `[ ]`,
this commit also does that for non-alphanumeric and `-` characters so that
they are not stripped off later.
See gh-18915