This commit allows to specify a deprecation level to a manual metadata
entry. The purpose of that new attribute is to distinguish cases where
the property is still bound (default) from cases where the property no
longer exists and won't be bound.
This gives the opportunity to IDEs to still show the property as an
error and offer documentation and an action to rename it if a
replacement exists.
Closes gh-9074
This commit allows *any* type of `RouterFunction` to be injected in the
WebFlux.fn auto-configuration; previously the `RouterFunction<T>` would
restrict injected beans to a single parameterized type.
Doing requires using the `RouterFunction.andOther` method to collect
them.
Fixes gh-9181
This commit removes the automatic configuration of the Netty request
factory in RestTemplateBuilder, for the following reasons:
* as of Spring 5, `Netty4ClientHttpRequestFactory` is now deprecated
* there are quite a few issues logged in Spring Framework (duplicate
headers, such as SPR-15446 and SPR-15476)
* by default, the `Netty4ClientHttpRequestFactory` is adding a
"Connection: close" request header to all outgoing requests, which
means that the underlying HTTP connection won't be reused between
requests (which is a performance problem)
In that case, using any other request factory is a better choice for
Spring Boot 2.0+.
Note that the `RestTemplateBuilder` still allows to provide it manually
with the request factory to use. Developers can still choose this option
and will be aware of its deprecation status.
Fixes gh-9150
This commit removes the default configuration value previously set
for `spring.thymeleaf.reactive.media-types` since this value overrides
the defaults provided by Thymeleaf.
This value does not drive the default media type used by views, but
rather all media types that the templating engine should support.
Fixes gh-9134
This commit adds a `TomcatWebSocketReactiveWebServerCustomizer`
that customizes the Tomcat context to accept WebSockets connections.
Since reactive servers don't use the JSR 356 for that support,
only Tomcat customization is required for now.
This commit also reorders the server auto-configuration
so that undertow has a chance to be auto-configured before
reactor-netty, which should be a popular dependency thanks to
its HTTP client library.
The existing WebSocket infrastructure for Serlvet based containers
has been moved to a dedicated package and renamed accordingly.
Fixes gh-9113
Previously, if lombok was running before the configuration metadata
annotation processor, duplicated keys were created as both the
getter/setter and the special lombok handling applied.
This commit makes sure to be lenient by removing duplicate metadata
entries. This commit also makes sure to identify the getter of a
nested group if present. That way, the sourceMethod is set consistently
and avoid the creation of a duplicate group.
Closes gh-8886
The restartWithKeepAlive test really appears to be testing
functionality in the container, rather than our configuration of
the container. It's also not clear what role, if any, keep-alive is
playing as it's not explicitly configured in the test.