Commit Graph

908 Commits

Author SHA1 Message Date
Andy Wilkinson 51776af45d Include source of NoSuchMethodError in its failure analysis
Closes gh-15995
2019-02-19 12:34:52 +00:00
Stephane Nicoll 20c39dc554 Document missing keys mapped on third party types
Closes gh-15980
2019-02-18 16:48:51 +01:00
Andy Wilkinson 3f32fbd0de Polish "Remove unwanted @Nullable annotations"
See gh-15876
2019-02-11 16:11:40 +00:00
wonwoo 2855321074 Remove unwanted @Nullable annotations
See gh-15876
2019-02-11 16:07:29 +00:00
Brian Clozel c24f02696f Upgrade to Californium-BUILD-SNAPSHOT
See gh-15878
2019-02-08 19:45:24 +01:00
Johnny Lim 885c28891b Polish
Closes gh-15873
2019-02-08 09:20:15 +01:00
Andy Wilkinson 82bc87560c Use AssertJ’s exception assertions rather than fail
Closes gh-15761
2019-02-04 11:48:26 +00:00
Andy Wilkinson a172e146de Polish "Always fail fast when SSL is enabled without a key store"
Closes gh-15709
2019-01-22 11:51:29 +00:00
Raheela 62c8ac6ee8 Always fail fast when SSL is enabled without a key store
See gh-15709
2019-01-22 11:50:19 +00:00
Stephane Nicoll 485bdc9901 Polish "Remove redundant interface modifiers"
Closes gh-15694
2019-01-14 08:13:08 -05:00
igor-suhorukov 2d873c78fe Remove redundant interface modifiers
See gh-15694
2019-01-14 08:12:41 -05:00
Phillip Webb 9e58942698 Update copyright year for changed files 2019-01-11 16:42:02 -08:00
Phillip Webb 6a901199f5 Polish 2019-01-11 16:42:02 -08:00
Andy Wilkinson 6307cb5943 Disable Tomcat’s reference clearing
Closes gh-15101
2019-01-11 10:34:14 +00:00
Madhura Bhave b345fc8574 Fix validation when key matching the prefix is set
Fixes gh-15597
2019-01-10 13:04:12 -08:00
Brian Clozel c40e61c117 Merge branch '2.0.x' into 2.1.x 2019-01-08 14:26:03 +01:00
Brian Clozel 0e13fd039d Configure HTTP compression for HTTP/2 with Tomcat
This commit ensures that the compression options are also applied on the
`Http2Protocol` when http/2 is enabled with Tomcat.

Closes gh-15591
2019-01-08 14:14:10 +01:00
Stephane Nicoll ca7f338a39 Polish "Remove redundant throws Exception"
Closes gh-15647
2019-01-08 11:27:28 +01:00
Stephane Nicoll 02581c005a Polish "Fix typo"
Closes gh-15642
2019-01-08 11:12:05 +01:00
Michael Simons 7a2313892c Fix typo
See gh-15642
2019-01-08 11:11:34 +01:00
Stephane Nicoll 4729d170a8 Polish "Ensure checking customizer ordering"
Closes gh-15603
2019-01-03 10:26:09 +01:00
Tadaya Tsuyukubo b34e752db6 Ensure checking customizer ordering
See gh-15603
2019-01-03 10:25:49 +01:00
Madhura Bhave d1e1a82b32 Support binding to collection with EnumSet values
Fixes gh-15539
2019-01-02 10:52:31 -08:00
Stephane Nicoll 8e8910b2ff Merge branch '2.0.x' into 2.1.x 2018-12-28 18:20:43 +01:00
dreis2211 9ffb4f69cd Polish javadoc of ConfigurableUndertowWebServerFactory method
Closes gh-15536
2018-12-20 18:01:38 +01:00
igor-suhorukov e578d30722 Replace anonymous inner class with lambda
See gh-15438
2018-12-20 17:47:29 +01:00
Andy Wilkinson 3a7406fe3a Merge branch '2.0.x' into 2.1.x 2018-12-20 15:58:03 +00:00
Andy Wilkinson 0741c90489 Avoid blocking on a Mono indefinitely
Closes gh-15535
2018-12-20 15:31:39 +00:00
Andy Wilkinson ad489baaa3 Merge branch '2.0.x' into 2.1.x 2018-12-20 10:06:32 +00:00
Andy Wilkinson d5c8caab59 Merge branch '1.5.x' into 2.0.x 2018-12-20 10:00:35 +00:00
dreis2211 948902f090 Avoid unnecessary usage of ReflectionTestUtils
Closes gh-15482
2018-12-17 17:07:23 +01:00
Phillip Webb 9c426c63bf Polish 2018-11-29 22:57:04 -08:00
Phillip Webb ed9468a31a Update copyright year for changed files 2018-11-29 22:02:45 -08:00
Stephane Nicoll 33000b6e8e Polish contribution
Closes gh-14985
2018-11-28 11:29:37 +01:00
Alon Bar-Lev 108f28417e Allow to disable SSL client authentication on the management port
When server and management are at different ports, and when server
requires TLS client authentication, then there is no simple method to
disable TLS client authentication for management port.

This commit adds an additional "none" option to ssl.client-auth.

Example:

    server.port=8080
    server.ssl.enabled=true
    server.ssl.client-auth=need
    management.server.port=8081
    management.server.ssl.enabled=true
    management.server.ssl.client-auth=none

See gh-14985
2018-11-28 11:29:21 +01:00
dreis2211 17f04b8b75 Replace DirectFieldAccessor usages by hasFieldOrPropertyWithValue
Closes gh-15312
2018-11-28 08:47:41 +01:00
Andy Wilkinson 2dc8f49f8a Polish 2018-11-27 20:54:41 +00:00
Andy Wilkinson dad6d4beca Merge branch '2.0.x' 2018-11-27 20:37:35 +00:00
Andy Wilkinson 2b22b23aad Polish 2018-11-27 20:35:30 +00:00
Andy Wilkinson e1ad5641d5 Polish "Trim whitespace when coercing to a LogLevel"
Closes gh-15143
2018-11-27 15:14:26 +00:00
Dileep Bapat dfe94a0abb Trim whitespace when coercing to a LogLevel
See gh-15143
2018-11-27 15:10:36 +00:00
Stephane Nicoll ae1979f1ff Merge branch '2.0.x' 2018-11-26 10:35:37 +01:00
Stephane Nicoll e424dfbe15 Polish "Perform best effort to retrieve DataSourceProxy"
Closes gh-15206
2018-11-26 10:18:48 +01:00
Andy Wilkinson ee2107c91b Merge branch '2.0.x' 2018-11-23 20:15:42 +00:00
Andy Wilkinson 44632ea55c Merge branch '1.5.x' into 2.0.x 2018-11-23 20:15:26 +00:00
Andy Wilkinson 548cc05bb6 Polish 2018-11-23 19:33:33 +00:00
Andy Wilkinson 35cce76ae8 Merge branch '2.0.x' 2018-11-23 16:59:27 +00:00
Andy Wilkinson 3331fa2d02 Merge branch '1.5.x' into 2.0.x 2018-11-23 16:59:18 +00:00
Brian Clozel 5bb7b24d7c Fix class cast in ServletContextInitializerBeans
See gh-15166
2018-11-21 11:50:41 +01:00
Brian Clozel d52b599eee Improve Servlet and Filter registration logging
Prior to this commit, the information logged at DEBUG level for the web
infrastructure was not consistent with the experience in Spring
Framework.

This commit moves some logging information about
`ServletContextInitializer` registrations from DEBUG to TRACE level and
gathers the Servlets and Filters registration logs into one-liners at
the DEBUG level.

Closes gh-15166
2018-11-21 10:29:55 +01:00
Phillip Webb bab111b37e Fix ConfigurationPropertyName.equals for uppercase
Commit 7f35f8a9 for gh-14665 was unfortunately incomplete as it didn't
account for uppercase values. The run-off while loop should have used
`Character.toLowerCase` in the same way as the main while loop.

Fixes gh-15152
2018-11-15 13:48:20 -08:00
Phillip Webb cccf5e6d2b Merge branch '2.0.x' 2018-11-14 18:27:28 -08:00
Phillip Webb 3baf782822 Merge branch '1.5.x' into 2.0.x 2018-11-14 18:24:32 -08:00
Brian Clozel 8e86bcafc1 Improve actuator endpoint mapping debug logging
Closes gh-14292
2018-11-14 14:36:52 +01:00
Jonathan Bregler e74348ee30 Fix HANA validation query
This commit updates the validation query for HANA. It should use the
fully qualified dummy table name (SYS.DUMMY) to avoid unexpected results
if there is a local table named DUMMY.

Closes gh-15124
2018-11-10 17:56:51 +01:00
dreis2211 6ac788df2f Add missing @Deprecated annotation
Closes gh-15113
2018-11-07 07:53:39 +01:00
dreis2211 3e95af2c85 Polish some Map operations
Closes gh-15103
2018-11-06 07:41:55 +01:00
Stephane Nicoll dc02616b78 Merge branch '2.0.x' 2018-11-01 17:15:31 +09:00
Nooheat 8380031039 Simplify ArrayList calling addAll() immediately
Closes gh-15033
2018-11-01 17:10:16 +09:00
Stephane Nicoll 8d6d1f4a57 Merge branch '2.0.x' 2018-11-01 10:15:26 +09:00
Misagh Moayyed e820f04926 Polish EnableConfigurationPropertiesImportSelector javadoc
Closes gh-15049
2018-11-01 10:13:35 +09:00
Phillip Webb 33d385cf7a Use US spelling for "favor" 2018-10-29 15:26:34 -07:00
Phillip Webb f3fa20b2d1 Polish 2018-10-29 14:25:45 -07:00
dreis2211 3d2fbdf3bd Polish mocks with default answer
Closes gh-14971
2018-10-26 16:39:48 -07:00
Phillip Webb c393f6262e Merge branch '2.0.x' 2018-10-26 16:36:02 -07:00
Phillip Webb 33c7a74bee Update copyright year for changed files 2018-10-26 16:35:28 -07:00
Phillip Webb 5603d61909 Polish "Consider aliases when checking descendants"
See gh-14967
2018-10-26 16:24:23 -07:00
chang-chao 256ca681fd Consider aliases when checking descendants
Update `AliasedConfigurationPropertySource` to consider aliases in
`containsDescendantOf`.

Prior to this commit, given a source containing `example.name` with
a defined alias of `other.name -> example.name` calling
`containsDescendantOf("other")` would incorrectly return
`ConfigurationPropertyState.ABSENT`.

Closes gh-14967
2018-10-26 16:08:56 -07:00
Phillip Webb 1a85e629d7 Stop using streams when working with sources
Replace `streamSources()` calls with `getSources()` in an attempt to
reduce the amount of garbage created.

Closes gh-13565
2018-10-26 11:30:28 -07:00
Phillip Webb 99e166516d Restore conversion service binary compatibility
Change `ApplicationConversionService.getSharedInstance()` to again
return a `ConversionService` rather than `ApplicationConversionService`.

This restore binary compatibly with Spring Boot 2.0

Closes gh-14938
2018-10-24 15:22:42 -07:00
Madhura Bhave 34156b2137 Rename DatabaseDriver#SAP to DatabaseDriver#HANA
Closes gh-14918
2018-10-24 13:00:38 -07:00
Madhura Bhave fd20618f4b Merge branch '2.0.x' 2018-10-22 21:55:01 -07:00
dreis2211 3fea487c7b Use Errors.hasErrors() in DefaultErrorAttributes
Closes gh-14912
2018-10-22 21:51:21 -07:00
Andy Wilkinson 22e722d9f9 Polish 2018-10-18 15:51:20 +01:00
Andy Wilkinson 9b8ead825c Polish 2018-10-18 15:38:06 +01:00
Johnny Lim c8c3f59e93 Polish
Closes gh-14884
2018-10-18 09:36:27 +02:00
Johnny Lim 7f9671fd14 Polish
Closes gh-14843
2018-10-16 11:38:51 +02:00
Stephane Nicoll 1e6851cf81 Polish "Remove usages of BasicAuthorizationInterceptor"
Closes gh-14830
2018-10-16 10:21:32 +02:00
dreis2211 8b14754cda Remove usages of BasicAuthorizationInterceptor
See gh-14830
2018-10-16 10:21:32 +02:00
Rahul Narula c078d0cb8a Polish SpringBootJoranConfigurator
Closes gh-14845
2018-10-15 22:05:11 -07:00
Stephane Nicoll 1a0d53dec0 Replace ReflectionTestUtils usage by hasFieldOrPropertyWithValue
Closes gh-14696
2018-10-15 08:25:10 +02:00
Phillip Webb 88ac7f1d65 Polish 2018-10-14 12:43:00 -07:00
Andy Wilkinson 83692a22da Polish "Use non-reflective APIs to retrieve config prop binding converters"
Closes gh-14657
2018-10-14 14:09:21 +01:00
Dave Syer 2094e54ef2 Use non-reflective APIs to retrieve config prop binding converters
See gh-14657
2018-10-14 14:09:16 +01:00
Andy Wilkinson 1ac48ee876 Merge branch '2.0.x' 2018-10-13 16:56:21 +01:00
Andy Wilkinson b78c7aca3e Allow ALPNServerConnectionFactory to negotiate use of HTTP/1.1
Closes gh-14444
2018-10-13 16:56:10 +01:00
Madhura Bhave ec6e9d205a Merge branch '2.0.x' 2018-10-12 18:24:23 -07:00
Madhura Bhave a86ba6495c Polish 2018-10-12 18:21:39 -07:00
Madhura Bhave 8f91bbeffa Polish 2018-10-12 18:14:36 -07:00
Madhura Bhave 24a8461749 Merge branch '2.0.x' 2018-10-12 17:59:43 -07:00
Madhura Bhave d2ceb8f7da Polish 2018-10-12 17:59:01 -07:00
Stephane Nicoll 8f1729e322 Merge branch '2.0.x' 2018-10-12 16:00:08 +02:00
Stephane Nicoll 798b37805d Polish "Add support for @ResponseStatus in DefaultErrorAttributes"
Closes gh-14744
2018-10-12 15:57:57 +02:00
Michele Mancioppi 17919749db Add support for @ResponseStatus in DefaultErrorAttributes
This commit adds support for @ResponseStatus in DefaultErrorAttributes
mimicking the semantics of @ResponseStatus in SpringMVC.

Throwables annotated with @ResponseStatus handled by
DefaultErrorAttributes will result in the following error attributes:
* 'status' set as the return value of the HttpStatus#value()
  defined as @ResponseStatus#value()
* 'error' set to the default reason phrase of the HttpStatus
  defined as @ResponseStatus#value()
* 'message' defined as the value of @ResponseStatus#reason(),
  or the default HttpStatus's reason phrase if left unspecified

See gh-14744
2018-10-12 15:47:07 +02:00
Brian Clozel 2588a71ac4 Auto-Configure HTTP ResourceFactories on servers
This commit auto-configures HTTP resource factories on both Reactor
Netty and Jetty server instances. This creates `ReactorResourceFactory`
and `JettyResourceFactory` beans when necessary - those beans can be
reused and applied by the client auto-configuration in order to share
resources between client and server for optimal performance.

The server auto-configuration has the highest precedence, so from now
on, the auto-configured ResourceFactory bean on the client side will be
skipped if a reactive server is configured.

Closes gh-14495
2018-10-12 11:32:55 +02:00
Phillip Webb d102e0d7f7 Introduce Ordered Filter and WebFilter interfaces
Add `Ordered` variants of `javax.servlet.Filter` and
`org.springframework.web.server.WebFilter` mainly so that we can
deprecate `FilterRegistrationBean.REQUEST_WRAPPER_FILTER_MAX_ORDER`.

Closes gh-14793
2018-10-11 23:13:23 -07:00
Phillip Webb 683e9532d6 Handle servlet startup failures consistently
Ensure that all servlet containers handle servlet startup failures
consistently and throw a `WebServerException` that wraps the original
cause.

Both Undertow and Jetty already dealt with startup failures in this
way, but Tomcat did not. The `TomcatEmbeddedContext` has now been
changed to no longer call `super.loadOnStartup` but instead re-implement
a version of that method that wraps and rethrows the original exception
(as long as `failCtxIfServletStartFails` is `true`, which it now is by
default).

Closes gh-14790
2018-10-11 22:31:40 -07:00
Phillip Webb 4823114e1c Polish 2018-10-11 22:30:49 -07:00
Phillip Webb 3da25c6d36 Remove TomcatEmbeddedContext.overrideLoadOnStart
Remove the reflection tests used to support the older variant of
`overrideLoadOnStart` that returned a void. Since we no longer support
that older version we can simply the code.

Closes gh-14789
2018-10-11 20:22:58 -07:00
Phillip Webb 74d48fb7a7 Merge branch '2.0.x' 2018-10-11 20:20:15 -07:00
Phillip Webb 21ebb94d49 Respect Tomcat's failCtxIfServletStartFails flag
Ensure that if the user has set `failCtxIfServletStartFails` to `true`
using a `ContextCustomizers` any Servlet init exceptions stop the
application from running.

Closes gh-14448
2018-10-11 20:12:01 -07:00
artsiom 8f3b58fa98 Replace ReflectionTestUtils usage by hasFieldOrPropertyWithValue
Closes gh-14783
2018-10-11 17:49:37 +02:00
Phillip Webb 33c2d24560 Support ConfigurationProperties BindHandler advise
Allow custom `BinderHandler` advise to be applied to the `Binder` used
for `@ConfigurationProperties`.  This mechanism has been added to allow
Spring Cloud Stream to manipulate `Bindable` instances before binding
occurs.

NOTE: This commit introduces a breaking change to the `BindHandler`
interface since the `onStart` method now returns a `Bindable` rather
than a `boolean`.

Closes gh-14745
2018-10-10 12:40:11 -07:00
Phillip Webb 8da295998b Polish 2018-10-10 12:20:03 -07:00
Stephane Nicoll 1a140a80d8 Improve logger-name value hint definition
This commit improve the logger-name value hint by adding a group
attribute that can be defined to specify whether logging groups should
be considered.

Closes gh-14748
2018-10-10 18:40:10 +02:00
Andy Wilkinson ddb8694ae2 Merge branch '1.5.x' into 2.0.x 2018-10-10 13:00:17 +01:00
Stephane Nicoll 0fba98ca73 Fix logging.group target type
Closes gh-14743
2018-10-09 18:18:05 +02:00
Stephane Nicoll caf7f09296 Document standard "sql" and "web" log groups in the metadata
Closes gh-14740
2018-10-09 18:13:23 +02:00
Andy Wilkinson 749fa96a8b Polish 2018-10-08 13:34:25 +01:00
Andy Wilkinson 1e0f2b652e Merge branch '2.0.x' 2018-10-08 12:41:16 +01:00
Andy Wilkinson 5d3f30ee94 Honour SSL key and trust store providers when configuring Netty
Closes gh-14714
2018-10-08 12:39:09 +01:00
Andy Wilkinson 1afdfef83a Merge branch '2.0.x' 2018-10-08 12:20:11 +01:00
Andy Wilkinson d6d59edb35 Merge branch '1.5.x' into 2.0.x 2018-10-08 12:19:52 +01:00
Andy Wilkinson 8259c6397e Merge branch '2.0.x' 2018-10-06 12:59:42 +01:00
Andy Wilkinson ca329d3d03 Update Jersey indicator class to one that requires the Servlet API
Previously, if WebFlux and Jersey were on the classpath, but there was
no Servlet API (and no embedded container) on the classpath, the web
application type would be prevented from being reactive. The absence
of the Servlet API would then prevent the web application type from
being servlet so it would be none.

By contrast, if Spring MVC was on the classpath in place of Jersey
the absence of the Servlet API would allow the web application type to
be reactive. This happened because the Spring MVC indicator class is
DispatcherServlet which requires the Servlet API.

This commit updates the Jersey indicator class to be ServletContainer.
This class is both an HttpServlet and a Filter so it too requires the
Servlet API and, therefore, further aligns the deduction behaviour for
Jersey and Spring MVC.

Closes gh-14701
2018-10-06 12:59:25 +01:00
Phillip Webb 01b8667dd7 Update copyright year for changed files 2018-10-05 13:40:07 -07:00
Phillip Webb 5c7a4523ea Merge '2.0.x' 2018-10-05 13:34:12 -07:00
Phillip Webb 6aedb69443 Update copyright year for changed files 2018-10-05 13:31:33 -07:00
Phillip Webb 456d1af443 Polish 2018-10-05 13:30:24 -07:00
Stephane Nicoll bb89012922 Merge branch '2.0.x' 2018-10-05 16:43:30 +02:00
Stephane Nicoll febaf15b61 Guard WebApplicationType detection in case spring web is not present
Closes gh-14589
2018-10-05 16:41:22 +02:00
Phillip Webb 6baaa3df77 Use ResourceLoader.getClassLoader() for factories
Update `SpringApplication` to load and initialize `spring.factories`
classes using the `ResourceLoader.getClassLoader()`.

Closes gh-14641
2018-10-04 19:45:40 -07:00
Phillip Webb 546bd89f2e Merge branch '2.0.x' 2018-10-04 10:17:29 -07:00
Phillip Webb 2b6bdfe277 Fix Reactive...Context NPE
Fix possible NPE in `ReactiveWebServerApplicationContext`.

See gh-14666
2018-10-04 10:16:23 -07:00
Phillip Webb 3e25996405 Merge branch '2.0.x' 2018-10-04 08:00:16 -07:00
Phillip Webb 8c896d9376 Improve Reactive...Context thread safety
Refactor `ReactiveWebServerApplicationContext` to improve thread safety
by using a single manager object rather than then trying to synchronize
the `WebServer` and `HttpHandler`.

Closes gh-14666
2018-10-04 07:59:39 -07:00
Stephane Nicoll 5d0e812afe Merge branch '2.0.x' 2018-10-04 15:53:26 +02:00
Stephane Nicoll 1b10d3fcbf Fix missing metadata for nested POJO
This commit fixes missing descriptions and default values when
applicable for `management.server.ssl`, `server.compression`,
`server.http2`, `server.servlet.jsp`, `server.servlet.session` and
`server.ssl`.

Those nested namespace are managed by a POJO that is declared outside
of the module of the target @ConfigurationProperties type using it. As
a result, the annotation processor has no access to the source model and
can't extract the description and the default value, if any.

This commit migrates the misleading field-level Javadoc to manual meta
data for the time being.

Closes gh-14669
2018-10-04 15:49:04 +02:00
Stephane Nicoll 00e122c7ec Merge branch '2.0.x' 2018-10-03 14:39:15 +02:00
Stephane Nicoll b4c5aea152 Fix detection of WebApplicationType with context class
Closes gh-14589
2018-10-03 14:37:31 +02:00
Johnny Lim 335775892b Polish
See gh-14667
2018-10-03 13:57:18 +02:00
dreis2211 e68b9e8322 Remove unnecessary parameters for String.substring
Closes gh-14661
2018-10-03 09:34:56 +02:00
Phillip Webb 7087f90f2d Merge branch '2.0.x' 2018-10-02 23:01:46 -07:00
Phillip Webb bd9500290e Defer HttpHandler initialization
Update `ReactiveWebServerApplicationContext` so that the `HttpHandler`
bean is not longer created from `onRefresh`, but is instead created
only when the server starts.

Prior to this commit, the WebFlux hander would cause early
initialization of several beans, including Jackson Modules.

Closes gh-14666
2018-10-02 22:57:09 -07:00
Phillip Webb 7f35f8a982 Fix ConfigurationPropertyName.equals
Fix a regression in `ConfigurationPropertyName.equals` that was causing
incorrect results.

Closes gh-14665
2018-10-02 14:00:22 -07:00
Phillip Webb aa6a58d24c Merge branch '2.0.x' 2018-10-02 14:00:13 -07:00
Phillip Webb 7afde2ba43 Add another ConfigurationPropertyName.equals test
Include an additional test to ensure that `.equals` works for names
starting with the same value.

See gh-14665
2018-10-02 13:58:31 -07:00
Phillip Webb d76bba5e6f Migrate from ExpectedException rule to AssertJ
Replace ExpectedException JUnit rules with AssertJ exception
assertions.

Closes gh-14336
2018-10-02 10:55:28 -07:00
Phillip Webb 42cb0effc4 Merge branch '2.0.x' 2018-10-02 10:30:33 -07:00
Phillip Webb 3ff20b2440 Restore import-control checkstyle
Restore checkstyle import control and fix a few violations in the
process.

Closes gh-14660
2018-10-02 10:30:14 -07:00
Andy Wilkinson 121aad8397 Merge branch '2.0.x' 2018-10-01 15:39:15 +01:00
Andy Wilkinson da1fde6a5f Merge branch '1.5.x' into 2.0.x 2018-10-01 15:38:53 +01:00
Johnny Lim 3dc78d19bf Add log messages to lines only when the destination isn't set
Closes gh-14565
2018-09-22 19:33:58 +02:00
Johnny Lim f1552029ea Add @since in ApplicationContextInitializedEvent
Closes gh-14579
2018-09-22 19:32:40 +02:00
Stephane Nicoll cbae22f0c9 Polish "Migrate size properties to DataSize"
Closes gh-14549
2018-09-21 16:27:28 +02:00
Phillip Webb d0de4657d4 Reduce ConfigurationPropertyName GC pressure
Rewrite `ConfigurationPropertyName` in an attempt to consume less memory
and to reduce GC pressure from `toString()`.

Prior to this commit the `toString()` method would always construct a
new value from the name elements. This is sub-optimal since on on many
occasions the `ConfigurationPropertyName` is created from an already
well-formed String. The updated code now attempts to directly use the
original value for both `toString` and `equals` whenever possible.

Further refinements have also been made to the way that elements are
stored. Rather than a list or objects, we now use arrays that contains
the split points and types. This helps to reduce the amount of memory
required to store the name.

Closes gh-13414
2018-09-20 22:27:06 -07:00
Phillip Webb 0a187675b5 Reduce GC in SpringConfigurationPropertySource
Update `SpringConfigurationPropertySource` so that the
`DelegatingPropertyMapper` accepts a maximum of two values and does
not need to wrap arguments in an array. Also optimize the merge
operation to return a single result directly rather than always using
a new `List`.

Closes gh-14563
2018-09-20 22:21:18 -07:00
Phillip Webb 2bc3d8d01f Use shared BindConverter when possible
Update the `Binder` so that a single shares static `BindConverter` is
used whenever possible.

Closes gh-14562
2018-09-20 22:15:31 -07:00
Phillip Webb 865b7ae47f Reduce object creation when binding
Use static finals and private instances to reduce the number of objects
created when binding from the `ConfigFileApplicationListener`.

Closes gh-13436
2018-09-20 22:14:47 -07:00
Phillip Webb 624cd40598 Reduce GC pressure creating load descriptions
Update `ConfigFileApplicationListener` to build description methods
using a `StringBuilder` and not to use `String.format`.

See gh-13436
2018-09-20 22:13:09 -07:00