This commit adds a javadoc note about a usability issue described in
gh-11255. While `RestTemplateBuilder` is an immutable class, providing a
custom instance of request factory and deriving several
builders/templates from that point may have some unexpected behavior,
since that instance is shared amongst builders instances.
This issue is fixed in Spring Boot 2.0 with a replacement method that
leverages a `Supplier<ClientHttpRequestFactory>` instead.
See gh-11255
Previously, the PID system property was set after the
CONSOLE_LOG_PATTERN and FILE_LOG_PATTERN system properties. This meant
that the values of the pattern system properties could not reference
the PID system property, i.e. ${PID} would not resolve.
This commit sets the PID system property before the *_LOG_PATTERN
system properties, thereby allowing the latter to reference the
former.
Closes gh-10594
On WebSphere Liberty, the javax.validation package may be visible but
other javax.validation packages upon which it depends may not be
visible. This can lead to an incorrect assumption that the Bean
Validation API is available when, in fact, it is only partially
available.
Add an additional check for the availability of a class in the
javax.validation.bootstrap package to ensure that it's not just the
javax.validation package that's available.
Closes gh-10877
Previously, rolled over files were always written to logs/. This
commit ensures that rotated logs are written into the directory
specified in the application config's logging.path property.
Closes gh-10554
Previously, if Undertow failed to start, some of Undertow's
internal components would have been started but the started field of
UndertowEmbeddedServletContainer remained false. This meant that when
stop() was called nothing was done as the container believed it had
not been started.
This commit updates UndertowEmbeddedServletContainer to stop both the
DeploymentManager and the Undertow instance in start() if an exception
is thrown. This aligns the behaviour of
UndertowEmbeddedServletContainer with that of the Tomcat equivalent.
Closes gh-10528
Previously, when deploying a Spring Boot application to a container,
the servlet context property source was not fully initialised until
the context was refreshed. This led to a problem where a value from a
property source with lower precedence would be seen during the early
stages of the application starting. Once the servlet context property
source had been initialized, its value for the property would then
become visible effectively making it appear as if the property's
value had changed during startup. This led to a specific problem
with determining active profiles.
If spring.profiles.active was set both in JNDI and via the servlet
context both profiles would end up being active, rather than the
more intuitive behaviour of the profiles made active via the servlet
context overriding those made active via JNDI.
This commit updates SpringBootServletInitializer so that it explicitly
creates the StandardServletEnvironment and initializes its property
sources using the servlet context. This is done before the application
is created and run, thereby ensuring that the servlet context
property source is available throughout the application's startup.
Closes gh-9972
Previously JsonComponentModule tried to instantiate all
inner classes and failed with InstantiationException when
the class is abstract and extends JsonSerializer/JsonDeserializer.
With this change is now possible to have common logic inner abstract classes.
See gh-9443
Previously, when a web environment was converted to a
StandardEnvironment, any customizations of the source environment's
ConversionService were lost.
This commit updates the logic that performs the conversion to copy
the source's ConversionService to the converted environment, thereby
ensuring that any customizations are retained.
Closes gh-9259
See gh-9246
Previously, BeanCurrentlyInCreationFailureAnalyzer would return
a FailureAnalysis for any BeanCurrentlyInCreationException even if
it could not determine where the cycle begins. This could lead to an
inaccurate diagram of the cycle being output.
This commit updates BeanCurrentlyInCreationFailureAnalyzer so that
it abandons its analysis and returns null if it is unable to determine
where the cycle begins.
Closes gh-8164