This fix for gh-1928 to address a problemw with Log4j was to set
a system property that forces JBoss Logging to use SLF4J. This has the
unwanted side-effect of crashing Glassfish. We no longer support Log4j
so gh-1928 is no longer a concern. However, you can shoot yourself in
the foot by having Logback and Log4j2 on the classpath in that
particular order, but the latter has to be without its
log4j-slf4j-impl module. At this point you don't get any warnings or
error output at startup, but JBoss Logging uses Log4j2 while
everything else uses SLF4J and Logback. As a result, any logging
that's performed through JBoss Logging is silently lost.
Given the problems caused by setting the system property, and the
contrived nature of the arrangement that's necessary to cause a
problem when the property isn't set, this commit updates
LogbackLoggingSystem so that the system property is no longer set.
Closes gh-8669
Introduce an alternative autoconfiguration if the lettuce Redis driver is
available. Add Lettuce-specific configuration property options
"spring.redis.lettuce.shutdown-timeout" to control the shutdown timeout
of the lettuce driver. Add documentation for the properties, the
supported drivers, and how to switch between drivers.
Split client-specific properties from spring.redis.pool to
spring.redis.jedis.pool and introduce spring.redis.lettuce namespace.
Deprecate spring.redis.pool property.
See gh-5311
CachePublicMetrics wasn't explicitly tested and was still using field
injection. This commit improves the situation in preparation of the fix
for gh-8984
Update `SpringApplicationBuilder` so that the `sources(...)` method
updates the primary sources. Prior to this commit, the fix for #8910
had the unfortunate side effect of stopping the
`SpringApplicationBuilder` from being used with
`spring.application.main` properties.
Fixes gh-9053
Update `ConfigurationPropertySourcesPropertySource` to no longer use
`try/catch` when checking for valid names. A new `isValid` method has
been introduced to `ConfigurationPropertyName` which is offers better
performance.
Fixes gh-9058
Update the `Binder` to short circuit potentially expensive bean binding
if there are no known child properties. The shortcut can only be applied
when all used `ConfigurationPropertySources` return a non empty
`containsDescendantOf` result. This should be the case for most
Spring Boot applications, the exception being any apps that are running
in a security restricted environment.
Fixes gh-9023