In the unlikely (outside the tests of a number of Spring Boot's
modules) event that both Tomcat and Jetty are on the classpath,
there's a risk that Tomcat will try to register its
URLStreamHandlerFactory after JasperInitializer has registered its
WarUrlStreamHandlerFactory. Should this happen, Tomcat will fail to
start.
TomcatURLStreamHandlerFactory registers a handler for the war: URLs
produced by org.apache.tomcat.util.scan.JarFactory that's used by
both Tomcat and Jetty's Jasper integration. This makes it a suitable
replacement for WarUrlStreamHandlerFactory so this commit updates
JasperIntializer to register TomcatURLStreamHandlerFactory when it's
available, falling back to WarUrlStreamHandlerFactory when it's not.
Closes gh-8622
Following the changes made in a7f148091e the environment was being
bound to the SpringApplication instance after it had, if necessary
being converted to a standard, i.e non-web environment. This meant
that if a property in the environment set the web application type
to NONE it would have no effect on the type of environment used by
the application.
This commit reorders the binding of the environment to the
Spring Application instance so that it happens before the environment
is potentially converted.
Closes gh-9161
This commit updates `MapSessionRepository` bean definition return type
and applies equivalent change to `SessionAutoConfigurationTests`.
These changes also ensure compatibility with Spring Session 2.0 which
will merge `ExpiringSession` API with `Session` API.
Closes gh-9145
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