- 21 Jan, 2016 10 commits
-
-
Andy Wilkinson authored
* gh-4801: Add mainApplicationClass accessor to SpringApplication
-
Matt Benson authored
Closes gh-4801
-
Andy Wilkinson authored
If application context refresh fails, SpringApplication will have a null context. Previously, this would result in an NPE when looking for an ExitCodeExceptionMapper. This commit updates SpringApplication to gracefully handle the context being null when looking for an ExitCodeExceptionMapper. Closes gh-4803
-
Stephane Nicoll authored
Closes gh-4971
-
Andy Wilkinson authored
Previously, if an application’s main method threw an exception, MainMethodRunner would catch the exception and call System.exit(1). This meant that the JVM would exit, irrespective of whether or not any non-daemon threads were running. In contrast, when an application’s main method was invoked directly (in an IDE, for example) the JVM would not exit if one or more non-daemon threads were running. This is standard JVM behaviour that we should be consistent with in the launcher. This commit updates MainMethodRunner to wrap any exception thrown by an application’s main method in a RuntimeException and rethrow it. This alllows the JVM to handle the exception and use its normal rules for deciding whether or not it should exit. Closes gh-4984
-
Stephane Nicoll authored
-
Stephane Nicoll authored
* pr/4987: Update inconsistent documentation
-
Robert Kapala authored
Closes gh-4987
-
Stephane Nicoll authored
While Flyway's `MigrationVersion` is a String value, a simple "0" is also a valid number. When such value is not wrapped in YAML, an integer is injected rather than a String which leads to a failure as we can't convert it. This commit updates the `StringToMigrationVersionConverter` to also supports conversion from a Number. This is a convenience for users using YAML for configuration Closes gh-4981
-
Stephane Nicoll authored
This commit makes sure to also include any `GenericConverter` flagged for inclusion in the conversion service to use to convert configuration keys. Previously, those were ignored as `Converter` and `GenericConverter` are two separate interfaces. Closes gh-4988
-
- 20 Jan, 2016 9 commits
-
-
Andy Wilkinson authored
The same initializer will receive multiple ContextRefreshedEvents when their is an application context hierarchy. This commit updates the initializer to correctly handle multiple ContextRefreshedEvents and only act upon the first that it receives. See gh-4871
-
Andy Wilkinson authored
This commit is a continuation of the changes made in b85b6082. It addresses an additional problem when testing applications where two contexts are refreshed in quick succession. In this scenario, it was possible, theoretically at least, for the first context’s background preinitialization to still be in progress and creating loggers when the second is refreshed and resets the logger context. This commit updates BackgroundPreinitializer so that, upon receipt of a ContextRefreshedEvent, it waits for preinitialization to have completed. In the scenario described above, this ensures that preinitialization has completed before the call to refresh() for the first context returns, thereby preventing it from running in parallel with the refresh of the second context. Closes gh-4871
-
Stephane Nicoll authored
If Both Hazelcast and Hibernate are available, Spring Boot takes the opinion that Hazelcast can be used for 2nd level caching and therefore need to start before Hibernate. Unfortunately, some users require Hibernate in some of their hazelcast use case so the link is actually reversed. One way for such user is to disable the auto-configuration that deals with this link. This class is now public so that users can locate them and exclude them if necessary. Closes gh-4960
-
Andy Wilkinson authored
Closes gh-4964
-
Andy Wilkinson authored
Previously, BackgroundPreinitializer would kick off preinitialization on a separate thread in response to an ApplicationStartedEvent. This work would then race with the logging system being set up in response to an ApplicationEnvironmentPreparedEvent. When Logback’s being used this race is problematic. As part of Logback’s setup, LoggerContext.stop() is called. This calls LoggerContext.reset() which can fail with a ConcurrentModificationException if another thread tries to create a Logger at the same time. This is a known bug in Logback [1]. This commit updates BackgroundPreinitializer to respond to an ApplicationEnvironmentPreparedEvent and to order itself so that it’s called after LoggingApplicationListener has responded to the same event by initializing the logging system. Closes gh-4871 [1] http://jira.qos.ch/browse/LOGBACK-397
-
Andy Wilkinson authored
Spring Boot’s metrics require all values to be Numbers. A Dropwizard Gauge can have a non-Number value. Previously, to prevent this causing a problem, MetricRegistryMetricReader would check the value of a Gauge when it’s being added and ignore it if it had a non-Number value. Unfortunately, retrieving the value of a Gauge can take a non-trivial amount of time (hence CachedGauge) so this approach, while functional, could be improved. This commit updates the filtering to happen when a Metric is being retrieved from MetricRegistryMetricReader (via findOne or findAll) when its value is required anyway. At this point, any Gauge with a non-Number value is ignored. Closes gh-4874
-
Andy Wilkinson authored
-
Andy Wilkinson authored
-
mkwaczynski authored
Closes gh-4976
-
- 19 Jan, 2016 5 commits
-
-
Andy Wilkinson authored
-
Andy Wilkinson authored
EmbeddedVelocityToolboxView is used with both embedded containers and when a Spring Boot application is deployed to a servlet container. It process the ServletContext to intercept calls to getResource so that it can load Velocity’s toolbox.xml file from within an executable jar. Previously, when it created the proxy, it didn’t specify the ClassLoader to use. This resulted in the proxy being created using the ClassLoader that loaded the Class that is being proxied. This fails when the application is deployed to a ServletContainer as the ClassLoader that loaded the ServletContext implementation is the container’s ClassLoader and it cannot see the classes that are specific to the web application. This commit updates EmbeddedVelocityToolboxView to specify the ClassLoader to use when creating the proxy. It specifies its own ClassLoader thereby ensuring that the proxy creation can load application-specific classes. Fixes gh-4967
-
Stephane Nicoll authored
Closes gh-4969
-
Stephane Nicoll authored
-
Stephane Nicoll authored
See gh-4969
-
- 18 Jan, 2016 11 commits
-
-
Andy Wilkinson authored
Mongo’s 2.x driver allowed the credentials list to be null, however the 3.x driver requires an empty list instead. The behaviour of the 2.x driver is the same whether the client is created with a null credential list or an empty credential list. This commit aligns with the requirements of the 3.x driver by ensuring that we never pass in a null credential list when creating the client. Closes gh-4076
-
Andy Wilkinson authored
-
Andy Wilkinson authored
-
Vladimir Tsanev authored
Previously, when Spring Session 1.1.0.M1 and DevTools were declared as dependencies the application failed to start, because sessionRedisTemplate could not be resolved. This commit relaxes the dependency for sessionRedisTemplate in restartCompatibleRedisSerializerConfigurer from RedisTemplate<String, ExpiringSession> to RedisTemplate<?, ?> and uses the bean name in a @Qualifer to ensure that the right RedisTemplate bean gets injected. Fixes gh-4895 Closes gh-4896
-
Andy Wilkinson authored
-
Andy Wilkinson authored
Prior to Tomcat 8.0.30, its default behaviour was for the mapper to redirect a request for context-root to context-root/. This redirection was switched off by default in 8.0.30 by default. This has proven to be problematic and Tomcat 8.0.31 will reinstate the old default. While we are waiting for Tomcat 8.0.31 to be released, this commit explicitly sets the default back to what it was in 8.0.29 and earlier and what it will be in 8.0.31. Closes gh-4937
-
Andy Wilkinson authored
Previously, HalJsonMvcEndpoint used a redirect to go from path/ to path. When the actuator’s configured to use a custom context path this redirect was leading to an infinite redirect loop. This commit removes the redirect in favour of updating the controller advice to apply the links to requests for path and path/. Closes gh-4853
-
Andy Wilkinson authored
Previously, MavenSettings used a FileProfileActivator with no PathTransformer. If a settings.xml file contains a file-activated profile this would result in an NPE within Maven. This was made worse by the NPE not being included in the resulting failure message which hampered diagnosis of the problem. This commit updates MavenSettings to configure its FileProfileActivator with a PathTransformer. It also improves the failure message that’s created from any problems that are reported by Maven while determining the active profiles to include a problem’s exception if it has one. Closes gh-4826
-
Stephane Nicoll authored
-
Stephane Nicoll authored
Webjars locator is a good hint that the resource chain should be enabled. The sole presence of the library now enables the resource chain unless the configuration states otherwise. Closes gh-4403
-
Stephane Nicoll authored
Generalize the `skip` property to start and stop goals so that one can control if the Spring Boot app is starting via a configuration property. Note that this only controls the Spring Boot Maven plugin and the failsafe maven plugin should be updated accordingly. Closes gh-4922
-
- 17 Jan, 2016 3 commits
-
-
Stephane Nicoll authored
-
Stephane Nicoll authored
* pr/4956: Document use of maven wrapper
-
Vedran Pavic authored
Closes gh-4956
-
- 15 Jan, 2016 2 commits
-
-
Brian Kelly authored
Closes gh-4947
-
Andy Wilkinson authored
-