This commit turns a lazy injection point for `HttpMessageConverters`
into an `ObjectProvider`-backed injection.
This allows to lazily rely on that bean without creating for it; in some
environments, such proxy creation can lead to issues like SPR-16990.
See gh-13785
This commit makes sure that Flyway/Liquibase migrates the schema if
necessary before a `JdbcTemplate` is made available as an injection
point.
This commit also adds a test that validates simple datasource
initialization (spring.datasource.*) happens before a `JdbcTemplate`
bean can be used.
Closes gh-13155
Previously, when a DispatcherServlet was registered via a
ServletRegistrationBean, the mappings endpoint did not expose any
information about it as it wasn't detected.
This commit fixes the detection of available DispatcherServlets in the
context so that the mappings endpoint include them all.
Closes gh-13186
Previously, a NullPointerException would occur when WebFluxTags
attempted to create a method Tag for a request with a non-standard
method.
This commit updates WebFluxTags to use getMethodValue(), which will
never return null, rather than getMethod(), which may return null,
when determining the tag's value for the given request.
Closes gh-13596
Previously, Slf4jLoggingSystem would install SLF4JBridgeHandler into
JUL but would only remove a single root handler that was a
ConsoleHandler. If there were was than one root handler or the single
root handler was of a different type, they would not be uninstalled.
When deploying an application to Tomcat, this led to duplicate log
messages appearing in Tomcat’s console output and to logging from
other application or Tomcat itself being routed into an
application-specific log file enabled using the logging.file
configuration property.
A secondary, related problem was that LogbackLoggingSystem installs a
LevelChangePropagator so that Logback’s log level configuration is
propagated into JUL. This meant that an individual Boot app with
custom log level configuration could change the log levels of Tomcat
itself and of any other applications that had been deployed to Tomcat
and use JUL.
This commit updates both Slf4jLoggingSystem and LogbackLoggingSystem
so that they only change JUL’s configuration if it hasn’t already been
customized. The configuration is deemed to have not been customised if
there’s a single root handler and its a console handler.
Closes gh-13470
Before 2.0.2, if profiles were activated via the environment using the
active and include profile property, profiles specified via the active
property would take precedence. This commit restores that behavior.
Fixes gh-13513
Refine the property source cache key fix so that a copy of the
key is only taken when the values change. This allows us to
retain the previous performance optimization of not creating
unnecessary string arrays.
Closes gh-13344
Update `SpringIterableConfigurationPropertySource` so that the cache
key from a `MapPropertySource` is invalidated when the map contents
changes.
Prior to this commit, the actual keys of the map were used as the key.
This meant that if the underlying map changed, they key wouldn't be
invalidated because it ultimately pointed to the same object instance.
See gh-13344