Rewrite nested jar code to better align with the implementations
provided in Java 17. This update makes two fundamental changes to
the previous implementation:
- Resource cleanup is now handled using the `java.lang.ref.Cleaner`
- Jar URLs now use the form `jar:nested:/my.jar/!nested.jar!/entry`
Unlike the previous `jar🫙/my,jar!/nested.jar!/entry` URL format,
the new format is compatible with Java's default Jar URL handler.
Specifically, it now only uses a single `jar:` prefix and it no longer
includes multiple `!/` separators.
In addition to the changes above, many of the ancillary classes have
also been refactored and updated to create cleaner APIs.
Closes gh-37668
Create alternative launcher classes under the package
`org.springframework.boot.loader.launch` and use them in favor
of the previous location.
This update is designed to improve compatibility with future
changes in the loader.
Closes gh-37667
This commit adds support for configuring a `RestClient.Builder` and
`MockRestServiceServer` support for the `RestClient` when using
`@RestClientTest` sliced tests.
Closes gh-37033
The Apache ActiveMQ project has adopted the label "Classic" for the 5.x
broker in order to more easily compare and contrast it with the broker
code-named Artemis.
See gh-37606
Previously auto-configuration of a user details service (imperative
or reactive) would only back off on the presence of certain beans.
This led to situations where the im-memory service was
auto-configured and the default password was logged even though
another authentication mechanism was in use.
This commit updates the auto-configuration so that it backs off
when depending on Spring Security's OAuth2 Client and OAuth2
Resource Server modules. In the imperative case it will also back
off when depending on the SAML 2 provider.
Closes gh-35338
Spring Boot auto-configures both a `JmsTemplate` and a
`JmsMessagingTemplate`. As of Spring Framework 6.2, JMS has
observability support when publishing messages.
This commit creates a bean post-processor that configures an
`ObservationRegistry` on the template, if the registry is present.
Closes gh-37388
This commit updates the base URLs for reference documentations when the
relevant Spring project is now being published with Antora.
This commit updates the following projects:
* Spring Framework
* Spring Integration
* Spring for GraphQL
* Spring Security, including Authorization Server
* Spring Batch
* Spring Data JPA
Closes gh-37428
This commit removes the auto-configuration of the
`ServerHttpObservationFilter` bean for WebFlux applications as it's been
deprecated by Spring Framework.
The Observability instrumentation is now handled at the
`WebHttpHandlerBuilder` in Framework directly and doesn't need any
auto-configuration from Spring Boot.
Closes gh-37344
This commit documents the relative ordering of `HandlerMapping` support
in Spring MVC and WebFlux applications.
As of Spring Framework 6.1.0, the Welcome Page support acts as a
fallback in case no index route has been defined by the application as a
`RouterFunction` or within an annotated `@Controller`.
Closes gh-34846