Commit Graph

908 Commits

Author SHA1 Message Date
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
Stephane Nicoll 5323095e44 Fix broken build 2018-09-20 13:32:41 +02:00
Stephane Nicoll 22e77e02b6 Polish "Add support for SAP Hana Database"
Closes gh-14513
2018-09-20 12:02:55 +02:00
Michael cea95c303f Add support for SAP Hana Database
See gh-14513
2018-09-20 11:56:17 +02:00
Stephane Nicoll ac2fefb6c3 Merge branch '2.0.x' 2018-09-20 10:25:20 +02:00
Stephane Nicoll 957321492f Merge branch '1.5.x' into 2.0.x 2018-09-20 10:24:57 +02:00
Johnny Lim 521f746151 Polish
Closes gh-14517
2018-09-20 09:51:10 +02:00
Johnny Lim d0a252181b Polish
Closes gh-14449
2018-09-19 09:58:31 +02:00
Brian Clozel 1b7325df52 Switch to Reactor Californium SNAPSHOTs
See gh-14507
2018-09-18 19:35:04 +02:00
Andy Wilkinson 5e0e941632 Polish "Publish ApplicationContextInitializedEvent on contextPrepared"
Closes gh-14478
2018-09-17 10:50:28 +01:00
artsiom b4c6cef526 Publish ApplicationContextInitializedEvent on contextPrepared
See gh-14478
2018-09-17 10:43:12 +01:00
Phillip Webb d4b11c8fa6 Attempt to fix test failures on Java 9+
See gh-14453
2018-09-12 18:31:50 -07:00
Phillip Webb bc92becfd8 Allow DeferredLogger to replay and switch loggers
Add additional `switchTo` methods to allow a `DeferredLogger` to behave
like a regular logger once it has been replayed.

This commit also improves thread thread safety within the implementation.

Closes gh-14452
2018-09-12 16:25:14 -07:00
Phillip Webb b32887b8eb Add support for logging groups
Provide a way for users to quickly group related loggers together for
easier configuration. The `loggers.group` property can be used to define
a group that can then be configured in the usual `loggers.level.<group>`
way.

Additionally, provide pre-defined groups for `web` and `sql.

Closes gh-14421
2018-09-12 16:25:14 -07:00
Phillip Webb f0bfcd8947 Drop okhttp 2.x managed dependency
Closes gh-14442
2018-09-11 22:49:35 -07:00
Phillip Webb 8ed516e9ae Polish 2018-09-11 15:10:25 -07:00
Phillip Webb 0c00508b3c Register ApplicationConversionService for context
Update `SpringApplication` to automatically register the shared
`ApplicationConversionService` instance with the `BeanFactory` and
`Environment`.

Closes gh-12148
2018-09-11 14:24:27 -07:00
Phillip Webb 8c34e053f5 Update copyright header of changed files 2018-09-05 13:09:03 -07:00
Phillip Webb c3de4c84f2 Polish 2018-09-05 12:54:20 -07:00
Stephane Nicoll 3469142fec Partially revert 59d911d
This commit restores the public `UsesUnsafeJava` and flag it as
deprecated.

Closes gh-14072
2018-09-05 09:42:18 +02:00
Madhura Bhave f0d7533e0b Merge branch '2.0.x' 2018-09-04 17:09:52 -07:00
Madhura Bhave 9c82d5c382 Make ApplicationContextServerWebExchangeMatcher and subclasses thread-safe
Fixes gh-14161
2018-09-04 17:06:24 -07:00
Phillip Webb 9d1b3a2b49 Merge branch '2.0.x' 2018-09-04 16:25:17 -07:00
Phillip Webb cafff43022 Update copyright header of changed files 2018-09-04 16:19:05 -07:00
Phillip Webb 9af6b3422f Polish 2018-09-04 16:18:47 -07:00
Andy Wilkinson 8ee4775820 Polish 2018-09-04 20:46:35 +01:00
Stephane Nicoll c0e45b7333 Adapt to Spring Framework API change 2018-09-04 14:09:57 +02:00
Stephane Nicoll cb7de2a963 Allow binding number to DataSize
Closes gh-14294
2018-09-04 11:04:22 +02:00
Johnny Lim 5427d778fe Polish
Closes gh-14293
2018-09-04 08:52:55 +02:00
artsiom 11f0f668ff Throw an exception on invalid syntax in SPRING_APPLICATION_JSON
Closes gh-14251
2018-09-03 11:28:02 +02:00
Stephane Nicoll 8b753297c3 Merge branch '2.0.x' 2018-08-31 15:24:11 +02:00
Stephane Nicoll ea2fb620b4 Clarify structure of prefixes
Closes gh-14258
2018-08-31 15:23:53 +02:00
Phillip Webb 174f53e1cf Merge branch '2.0.x' 2018-08-30 16:02:25 -07:00
Phillip Webb 2e2f91d4a0 Merge branch '1.5.x' into 2.0.x 2018-08-30 15:59:02 -07:00
asomov 46c30d01e9 Upgrade to SnakeYAML 1.23
Closes gh-14224
2018-08-30 11:31:11 +02:00
Stephane Nicoll 20c8f61473 Merge branch '2.0.x' 2018-08-27 18:20:42 +02:00
dreis2211 70add0617a Collapse identical catch blocks
Closes gh-14213
2018-08-27 18:18:06 +02:00
Johnny Lim cf17106d8d Polish
Closes gh-14212
2018-08-27 17:28:27 +02:00
Johnny Lim fe3fe0fa63 Polish
Closes gh-14202
2018-08-26 10:48:05 +02:00
Stephane Nicoll 82280e34c7 Merge branch '2.0.x' 2018-08-24 11:49:30 +02:00
Johnny Lim fb71174c24 Polish
Closes gh-14184
2018-08-24 11:48:41 +02:00
Stephane Nicoll 429cd8d114 Optimize use of Jackson ObjectMapper instances
Closes gh-1789
2018-08-23 14:09:48 +02:00
Johnny Lim 9602a32a8d Polish
Closes gh-14172
2018-08-23 11:40:44 +02:00
Stephane Nicoll 597fe237b5 Polish "Add PropertyMapper.from(value)"
Closes gh-13837
2018-08-22 15:40:36 +02:00
Dmytro Nosan 1bd52bc432 Add PropertyMapper.from(value)
See gh-13837
2018-08-22 15:27:00 +02:00
Madhura Bhave b03f8e4a4a Merge branch '2.0.x' 2018-08-21 12:56:27 -07:00
Madhura Bhave 55406d91d2 Consider dash & underscore when equating indexed elements
Fixes gh-14136
2018-08-21 12:53:25 -07:00
Stephane Nicoll 456f5ce2f4 Merge branch '2.0.x' 2018-08-21 10:03:12 +02:00
Hiroaki Yoshida 6e86ba12b7 Fix potential infinite recursive loop in toString
Closes gh-14152
2018-08-21 10:02:10 +02:00
Stephane Nicoll c00dbc6c2f Fix merge commit 2018-08-20 15:04:08 +02:00
Stephane Nicoll d9a42a5165 Merge branch '2.0.x' 2018-08-20 15:03:24 +02:00
Stephane Nicoll e03f01564a Deprecate EntityManagerFactoryBeanCallback
Closes gh-14083
2018-08-20 14:54:32 +02:00
Stephane Nicoll e95661876c Merge branch '2.0.x' 2018-08-20 11:23:39 +02:00
Stephane Nicoll e034b383db Fix checkstyle violation
Closes gh-14125
2018-08-20 11:19:01 +02:00
Stephane Nicoll b26dedb547 Merge branch '2.0.x' 2018-08-20 10:26:21 +02:00
Stephane Nicoll eedeaa29e5 Polish "Replace loops with Arrays.setAll where possible"
Closes gh-14125
2018-08-20 10:23:16 +02:00
dreis2211 0bc66dc4a9 Replace loops with Arrays.setAll where possible
See gh-14125
2018-08-20 10:16:50 +02:00
Brian Clozel 6ecbd8d21b Auto-Configure FormContentFilter in Spring MVC
Because `HttpPutFormContentFilter` has been deprecated in Spring
Framework 5.1, this commit updates the auto-configuration to replace it
with the new `FormContentFilter`. This new filter is building on the
previous one and supports HTTP DELETE requests as well.

Both filters should not be used in addition, so the former
configuration has been removed. This commit also adds configuration
metadata to let developers know about the configuration key change.

Closes: gh-13363
2018-08-17 15:25:14 +02:00
Stephane Nicoll 930c838da9 Remove Narayana support
The Spring Boot integration is now handled by the Narayana project
itself at https://github.com/snowdrop/narayana-spring-boot

This commit removes our support.

Closes gh-12026
2018-08-17 15:08:55 +02:00
Brian Clozel 5e836b1231 Merge branch '2.0.x' 2018-08-17 13:41:36 +02:00
artsiom 51fd27fad4 Configure HiddenHttpMethodFilter for Spring WebFlux
Closes gh-14008
2018-08-17 13:40:43 +02:00
Andy Wilkinson f28528a527 Allow Data JPA's bootstrap mode to be configured via the environment
In Spring Data Lovelace, repositories' bootstrap mode can be
configured via @EnableJpaRepositories. This commit adds support for
configuring the mode via the environment rather than having to use
the annotation. Additionally, when deferred or lazy bootstrapping is
being used, the LocalContainerEntityManagerFactoryBean is configured
to use a bootstrap executor. This allows JPA's initialization to be
performed on a separate thread, allowing the rest of application
context initialization to proceed in parallel.

Closes gh-13833
2018-08-16 20:01:24 +01:00
Stephane Nicoll de470540ea Add auto-configuration support for TaskScheduler
This commit adds support for providing a default ThreadPoolTaskScheduler
with sensible defaults. A new TaskSchedulerBuilder is provided with
defaults from the `spring.task.scheduler.*` namespace and can be used
to create custom instances.

If no custom `TaskScheduler` bean is present, `@EnableScheduling` now
uses the auto-configured task scheduler.

Closes gh-1397
2018-08-16 14:55:57 +02:00
Stephane Nicoll 6ac6d36395 Polish 2018-08-16 10:43:28 +02:00
Brian Clozel 31a93035c1 Remove workaround for Netty resources cleanup
Closes gh-9146
2018-08-16 10:27:55 +02:00
Stephane Nicoll c00fc6449b Merge branch '2.0.x' 2018-08-15 14:37:40 +03:00
dreis2211 59d911d6e0 Remove @UsesUnsafeJava annotations
Closes gh-14072
2018-08-15 14:36:51 +03:00
Johnny Lim d5eaaf6e2a Polish
Closes gh-14049
2018-08-15 10:43:46 +03:00
Stephane Nicoll d0f272960e Merge branch '2.0.x' 2018-08-15 10:43:28 +03:00
Johnny Lim b4abccc07c Polish
See gh-14049
2018-08-15 10:43:04 +03:00
Madhura Bhave a8a75f1bbb Merge branch '2.0.x' 2018-08-14 11:25:24 -07:00
Madhura Bhave 895d092640 PropertySourcesLoader with highest precedence should win
Fixes gh-13955
2018-08-14 11:23:55 -07:00
Andy Wilkinson 9032e5b470 Update SSL tests and certs for Java 11 and TLSv1.3
See gh-14028
2018-08-14 08:51:38 +03:00
Madhura Bhave 727e9c6b0f Merge branch '2.0.x' 2018-08-13 12:23:48 -07:00
Madhura Bhave dfb97eb0f5 Convert environment if webApplicationType changes
If the web application type is set via properties,
it is available only after binding. The environment needs
to be converted to the appropriate type if it does not match.
If a custom environment is set, it is not converted.

Fixes gh-13977
2018-08-13 12:12:30 -07:00
Andy Wilkinson 04215e6651 Polish 2018-08-13 15:59:48 +01:00
Stephane Nicoll 6734e11222 Adapt MultipartConfig to use DataSize support
See gh-13974
2018-08-13 16:43:23 +03:00
Stephane Nicoll 94013aaba6 Add support for DataSize
This commit adds support for Spring Framework's `DataSize` allowing to
express a size in bytes and other convenient units.

Similar to the `Duration` support introduced previously, this commit
adds transparent binding support as well as detection of default values
in `@ConfigurationProperties`-annotated object.

Closes gh-13974
2018-08-13 16:43:23 +03:00
Andy Wilkinson da550efc6b Merge branch '2.0.x' 2018-08-10 12:50:31 +01:00
Andy Wilkinson 263e157ef0 Merge branch '1.5.x' into 2.0.x 2018-08-10 12:50:15 +01:00
Stephane Nicoll 0d04d7adf8 Migrate @EventListener to ApplicationListener
Closes gh-14041
2018-08-10 12:52:14 +02:00
Stephane Nicoll 817a8a8302 Polish 2018-08-10 09:48:57 +02:00
Stephane Nicoll 0ca8f1083a Fix ClassCastException message detection on Java 11
This commit also fixes the detection of a ClassCastException that can
be safely ignored on the module path with Java 9

Closes gh-14033
2018-08-10 09:48:22 +02:00
Stephane Nicoll c071f34a4a Add auto-configuration support for TaskExecutor
This commit adds support for providing a default ThreadPoolTaskExecutor
with sensible defaults. A new TaskExecutorBuilder is provided with
defaults from the `spring.task.*` namespace and can be used to create
custom instances.

If no custom `Executor` bean is present, `@EnableAsync` now uses the
auto-configure application task executor. Same goes for the async support
in Spring MVC.

Closes gh-1563
2018-08-06 11:00:40 +02:00
Stephane Nicoll a656513cb8 Merge branch '2.0.x' 2018-08-03 09:39:29 +02:00
Stephane Nicoll 20ea16fe9f Merge branch '1.5.x' into 2.0.x 2018-08-03 09:37:01 +02:00
Madhura Bhave b9fcb6a5e5 Merge branch '2.0.x' 2018-08-02 15:19:35 -07:00
Madhura Bhave 16aff4cd2c Refactor PropertySourcesDeducer
Prior to the changes that fixed #12451,
`FilteredPropertySources` and `CompositePropertySources` were required
by the `PropertySourcesDeducer` to ensure that configuration properties binding
could see changes to the environment even when there was a
PropertySourcesPlaceholderConfigurer in the context. #12451 changed the way
property sources are adapted by `SpringConfigurationPropertySources`, removing the
need for `FilteredPropertySources` and `CompositePropertySources`.

Fixes gh-13738
2018-08-02 15:00:01 -07:00
Madhura Bhave c41199bad1 Merge branch '2.0.x' 2018-08-02 11:01:47 -07:00
Madhura Bhave 7e2494ebdd Set environment active profiles according to processing order
Fixes gh-13965
2018-08-02 11:01:22 -07:00
Johnny Lim 02e82cd22b Remove unused dependencies
Closes gh-13973
2018-08-02 15:17:45 +02:00
Stephane Nicoll 960817a8c6 Merge branch '2.0.x' 2018-08-01 11:05:49 +02:00
Johnny Lim 94468e5865 Polish
See gh-13963
2018-08-01 11:04:59 +02:00
Stephane Nicoll 143e4f026f Merge branch '2.0.x' 2018-08-01 08:48:09 +02:00
dreis2211 66b1742f96 Optimize some StringBuilder.append() calls
Closes gh-13961
2018-08-01 08:41:03 +02:00
Stephane Nicoll d12a099a6d Merge branch '2.0.x' 2018-07-31 08:17:46 +02:00
Johnny Lim d4fba783fb Remove ex.printStackTrace() in tests
Closes gh-13952
2018-07-31 08:16:40 +02:00
Andy Wilkinson d67611518f Merge branch '2.0.x' 2018-07-30 13:02:30 +01:00
Andy Wilkinson 06b4007ce4 Avoid installing unwanted ConsoleHandler when cleaning up
Closes gh-13470
2018-07-30 13:00:34 +01:00
Phillip Webb 4d86ac4713 Polish copyright date on changed files 2018-07-29 09:30:26 +01:00
Phillip Webb 1b91c0ceb7 Merge branch '2.0.x' 2018-07-29 09:29:57 +01:00
Phillip Webb 0ec22c8bf9 Polish copyright date on changed files 2018-07-29 09:29:29 +01:00
Phillip Webb 80da9cf5eb Merge branch '2.0.x' 2018-07-29 09:28:56 +01:00
Phillip Webb aeb885192e Polish ternary expressions 2018-07-29 09:24:46 +01:00
Phillip Webb ce9c053cbf Fix checkstyle issues on master
Fix checkstyle issues following 2.0.x merge and
spring-javaformat upgrade.

See gh-13932
2018-07-28 01:36:04 +01:00
Phillip Webb a6c9c92f2e Merge branch '2.0.x' 2018-07-28 01:35:43 +01:00
Phillip Webb 63b609827e Fix checkstyle method order issues
Fix checkstyle issues with method ordering following the
spring-javaformat upgrade.

See gh-13932
2018-07-28 01:11:53 +01:00
Phillip Webb e6a68b39a3 Fix checkstyle javadoc issues
Fix checkstyle issues in javadoc following the spring-javaformat
upgrade.

See gh-13932
2018-07-28 01:11:52 +01:00
Phillip Webb 7fc455654a Fix checkstyle ternary issues
Fix checkstyle issues with ternary expressions following the
spring-javaformat upgrade.

See gh-13932
2018-07-28 01:11:52 +01:00
dreis2211 2399092f16 Fix deprecation in UndertowServletWebServerFactory
Closes gh-13873
2018-07-25 10:19:42 +02:00
Madhura Bhave e524adb2fc Merge branch '2.0.x' 2018-07-24 17:43:47 -07:00
Madhura Bhave 1831f3be16 Fix NPE when Collection contains unbound children
Fixes gh-13636
2018-07-24 17:42:51 -07:00
Brian Clozel 57dbea0db3 Finalize upgrade to Reactor Netty 0.8
This commit fixes the last issue for the upgrade to Reactor Netty 0.8.

Closes: gh-13321
2018-07-24 14:56:23 +02:00
Brian Clozel e15ca514c8 Update HttpResources cleaning for Reactor Netty
This commit updates the workaround for issue gh-9146
2018-07-24 14:07:57 +02:00
Brian Clozel dd79143d1a Support http/2 configuration with Reactor-Netty
Just like Jetty, Reactor Netty supports ALPN with JDK8 or with a
dependency that delegates TLS to a native library using boringSSL.

Closes gh-13333
2018-07-24 14:07:57 +02:00
Stephane Nicoll ccabf83815 Merge branch '2.0.x' 2018-07-23 09:31:54 +02:00
Stephane Nicoll dcb68d4c64 Deprecate unused property
Closes gh-13836
2018-07-23 09:31:02 +02:00
Stephane Nicoll 0f0fc9ec62 Adapt assertion to logging change in Spring Framework 2018-07-20 17:12:56 +02:00
Madhura Bhave 6333edbe16 Merge branch '2.0.x' 2018-07-18 11:01:38 -07:00
Madhura Bhave 66156cc24f Polish 2018-07-18 10:29:43 -07:00
Andy Wilkinson 93daac7ba8 Merge branch '2.0.x' 2018-07-18 11:22:15 +01:00
Andy Wilkinson 53400b1d81 Merge branch '1.5.x' into 2.0.x 2018-07-18 11:15:40 +01:00
Madhura Bhave dcb172fe2a Merge branch '2.0.x' 2018-07-17 17:09:25 -07:00
Madhura Bhave e907ae605d Fix tests
See gh-13783
2018-07-17 17:08:53 -07:00
Madhura Bhave 9bd723ddad Fix exception message
Fixes gh-13783
2018-07-17 17:05:29 -07:00
Madhura Bhave 4fee54cf24 Expose a TestDispatcherServlet bean in the MockMvcAutoConfiguration
This commit also contains changes to `ServletContextInitializerBeans`.
`ServletContextInitializerBeans` can now be configured to only look
for specific ServletContextInitializer subclasses, defaulting to
ServletContextIntializer.class. `SpringBootMockMvcBuilderCustomizer`
only cares about filters so it was unnecessary to look for all
`ServletContextInitializer`s. Additionally, adapting `Servlet` beans
caused a cycle once the `DispatcherServlet` bean was added and the
customizer only needs to adapt `Filter` beans.

Closes gh-13241
2018-07-17 13:00:54 -07:00
Johnny Lim 58df752af4 Polish
See gh-13790
2018-07-17 10:25:38 +02:00
Johnny Lim 1ae420670a Polish
Closes gh-13776
2018-07-16 10:38:40 +02:00
Stephane Nicoll 48962718d1 Merge branch '2.0.x' 2018-07-16 10:37:43 +02:00
Johnny Lim 068e22d60b Polish
See gh-13776
2018-07-16 10:34:00 +02:00
Stephane Nicoll 635986299c Merge branch '2.0.x' 2018-07-16 10:28:49 +02:00
Johnny Lim 4314dc2972 Remove a List creation in CompositePropertySources.iterator()
Closes gh-13774
2018-07-16 10:20:49 +02:00
Johnny Lim 1b3fa3ff0d Remove @since tag from getServlet()
Closes gh-13757
2018-07-12 09:36:13 +01:00
Andy Wilkinson 7b4096ab50 Merge branch '2.0.x' 2018-07-11 14:39:04 +01:00
Andy Wilkinson 44273ee093 Merge branch '1.5.x' into 2.0.x 2018-07-11 14:38:49 +01:00
Stephane Nicoll 29fcb10f8d Polish 2018-07-11 14:51:24 +02:00
Stephane Nicoll 5fcf45c4d0 Merge branch '2.0.x' 2018-07-10 17:07:46 +02:00
Stephane Nicoll 3423c5dddb Detect DispatcherServlets registered via ServletRegistrationBean
Previously, when a DispatcherServlet was registered via a
ServletRegistrationBean, the mappings endpoint did not expose any
information about it as it wasn't detected.

This commit fixes the detection of available DispatcherServlets in the
context so that the mappings endpoint include them all.

Closes gh-13186
2018-07-10 17:06:36 +02:00
dreis2211 be837ccb4b Use PropertySources.stream() where possible
Closes gh-13724
2018-07-10 15:35:03 +02:00
Andy Wilkinson c1a81cfca0 Prohibit bean overriding by default and analyze override failures
Closes gh-13609
2018-07-10 12:28:18 +01:00
Andy Wilkinson 063e8e4dc6 Revert "Prohibit bean overriding by default and analyze override failures"
This reverts commit 710cdbab92.
2018-07-09 17:58:49 +01:00
Andy Wilkinson 710cdbab92 Prohibit bean overriding by default and analyze override failures
Closes gh-13609
2018-07-09 13:50:16 +01:00
dreis2211 d1acf9a24d Fix API adaptation changes for Reactor Netty 2018-07-09 13:44:08 +02:00
Stephane Nicoll 0b48e223f3 Merge branch '2.0.x' 2018-07-09 10:50:18 +02:00
Johnny Lim ab6adc8265 Polish
Closes gh-13616
2018-07-09 10:45:01 +02:00
dreis2211 ba46e77169 Optimize checks for java classes in Binder
Closes gh-13567
2018-07-09 08:51:06 +02:00
Brian Clozel 68a3c234be Adapt to API changes in Reactor Netty
The following issue changed the SSL configuration API for both client
and server: https://github.com/reactor/reactor-netty/issues/370
2018-07-06 14:45:47 +02:00
Andy Wilkinson 18904ec291 Upgrade to Mysql 8.0.11
Closes gh-13688
2018-07-03 20:04:55 +01:00
dreis2211 d641249ca8 Fix deprecation warning in SpringPhysicalNamingStrategyTests
Closes gh-13623
2018-07-03 08:29:11 +01:00
Madhura Bhave 149c7a85c3 Merge branch '2.0.x' 2018-07-02 13:18:45 -07:00
Madhura Bhave 673a08d228 Support microseconds in Duration conversions
Closes gh-13624
2018-07-02 13:18:09 -07:00
Andy Wilkinson c3641c480b Merge branch '2.0.x' 2018-07-02 19:18:30 +01:00
Andy Wilkinson 06a8c41943 Preserve trailing whitespace in origin-tracked property values
Closes gh-13602
2018-07-02 19:17:02 +01:00
Andy Wilkinson 45fdf2ffa4 Support Tomcat 9 and Undertow 2
Closes gh-11749
Closes gh-12243
2018-06-28 11:33:30 +01:00
Madhura Bhave cde3c21926 Merge branch '2.0.x' 2018-06-27 11:34:22 -07:00
dreis2211 17edf0e2fe Fix typo 2018-06-27 11:31:06 -07:00
Andy Wilkinson 9281e2a410 Avoid creating JsonParser for VCAP_* parsing when running outside CF
Closes gh-13437
2018-06-25 17:35:30 +01:00
Andy Wilkinson 24dec4807f Merge branch '2.0.x' 2018-06-21 12:47:46 +01:00
Andy Wilkinson fd125b4a4a Remove assumption that a file URI can be turned into a File
Closes gh-13493
2018-06-21 12:47:23 +01:00
Andy Wilkinson eb6898314a Merge branch '2.0.x' 2018-06-21 11:41:15 +01:00
Andy Wilkinson 2624748911 Merge branch '1.5.x' into 2.0.x 2018-06-21 11:41:02 +01:00
Stephane Nicoll 56a7aa552f Polish 2018-06-21 10:40:33 +02:00
Andy Wilkinson 3ea7c2e003 Merge branch '2.0.x' 2018-06-20 16:51:56 +01:00
Andy Wilkinson 4fc0a33094 Merge branch '1.5.x' into 2.0.x 2018-06-20 16:49:53 +01:00
Andy Wilkinson 7571f10ae3 Merge branch '2.0.x' 2018-06-20 11:41:54 +01:00
Andy Wilkinson e730382718 Merge branch '1.5.x' into 2.0.x 2018-06-20 11:12:51 +01:00
Andy Wilkinson 20546024d3 Merge branch '2.0.x' 2018-06-20 10:11:44 +01:00
Andy Wilkinson e1774672af Prefer servlet to reactive when Jersey and WebFlux are both available
Closes gh-13521
2018-06-20 10:10:35 +01:00
Andy Wilkinson 12eafc84b0 Merge branch '2.0.x' 2018-06-19 15:45:16 +01:00
Andy Wilkinson 497902de4e Only bridge JUL into SLF4J when JUL has not be customized
Previously, Slf4jLoggingSystem would install SLF4JBridgeHandler into
JUL but would only remove a single root handler that was a
ConsoleHandler. If there were was than one root handler or the single
root handler was of a different type, they would not be uninstalled.
When deploying an application to Tomcat, this led to duplicate log
messages appearing in Tomcat’s console output and to logging from
other application or Tomcat itself being routed into an
application-specific log file enabled using the logging.file
configuration property.

A secondary, related problem was that LogbackLoggingSystem installs a
LevelChangePropagator so that Logback’s log level configuration is
propagated into JUL. This meant that an individual Boot app with
custom log level configuration could change the log levels of Tomcat
itself and of any other applications that had been deployed to Tomcat
and use JUL.

This commit updates both Slf4jLoggingSystem and LogbackLoggingSystem
so that they only change JUL’s configuration if it hasn’t already been
customized. The configuration is deemed to have not been customised if
there’s a single root handler and its a console handler.

Closes gh-13470
2018-06-19 15:29:46 +01:00
Stephane Nicoll ae12d515ee Merge branch '2.0.x' 2018-06-19 11:11:18 +02:00
Johnny Lim 1e7ed2ffdb Add log level guards in ConfigFileApplicationListener
Closes gh-13512
2018-06-19 11:10:45 +02:00
Madhura Bhave 3a01914b63 Merge branch '2.0.x' 2018-06-18 17:18:16 -07:00
Madhura Bhave 87680b4ee5 Fix profile precedence when active and include provided
Before 2.0.2, if profiles were activated via the environment using the
active and include profile property, profiles specified via the active
property would take precedence. This commit restores that behavior.

Fixes gh-13513
2018-06-18 16:24:49 -07:00
Stephane Nicoll b4584e6a28 Support profile expression in Logback's <springProfile>
Closes gh-13496
2018-06-18 13:23:58 +02:00
Stephane Nicoll a89b2ae46e Support profile expression in yml profile matching
Closes gh-12469
2018-06-18 13:05:52 +02:00
Stephane Nicoll 0c4176f596 Drop JsonSimpleJsonParser and JSON simple dependency
Closes gh-13471
2018-06-18 10:11:50 +02:00
Brian Clozel cb6c8f76e2 Configure X-Forwarded-* support with Reactor Netty
This commit configures the new X-Forwarded-* / Forwarded HTTP headers
support with Reactor Netty in its 0.8.0 version.

Closes gh-10900
2018-06-13 14:55:33 +02:00
Phillip Webb 375769ed5a Merge branch '2.0.x' 2018-06-06 15:18:52 -07:00
Phillip Webb dc1c459cde Polish "Fix caching issues with map property sources"
Refine the property source cache key fix so that a copy of the
key is only taken when the values change. This allows us to
retain the previous performance optimization of not creating
unnecessary string arrays.

Closes gh-13344
2018-06-06 15:17:07 -07:00
Fahim Farook c556d2b58f Fix caching issues with map property sources
Update `SpringIterableConfigurationPropertySource` so that the cache
key from a `MapPropertySource` is invalidated when the map contents
changes.

Prior to this commit, the actual keys of the map were used as the key.
This meant that if the underlying map changed, they key wouldn't be
invalidated because it ultimately pointed to the same object instance.

See gh-13344
2018-06-06 15:02:59 -07:00
Phillip Webb 66be6c3396 Polish 2018-06-05 17:44:51 -07:00
Dmytro Nosan 5b159a6bd0 Use Duration in HttpWebServiceMessageSenderBuilder
Closes gh-13364
2018-06-05 16:14:34 +02:00
Stephane Nicoll 909722f143 Polish 2018-06-05 16:02:32 +02:00
Stephane Nicoll e9c3df4ad2 Polish "Add duration support for setConnectTimeout and setReadTimeout"
Closes gh-13355
2018-06-05 16:00:33 +02:00
Dmytro Nosan 36f3c1b883 Add duration support for setConnectTimeout and setReadTimeout
See gh-13355
2018-06-05 16:00:33 +02:00
Stephane Nicoll 8691d01aaf Polish "Add duration support for setConnectTimout and setReadTimeout"
See gh-13355
2018-06-05 16:00:25 +02:00
Stephane Nicoll c612ed2695 Polish "RestTemplateCustomizers should be applied at the end"
Closes gh-13358
2018-06-05 09:45:19 +02:00
Dmytro Nosan ce3420748f RestTemplateCustomizers should be applied at the end
See gh-13358
2018-06-05 09:42:42 +02:00
Phillip Webb d47e7ebb5b Merge branch '2.0.x' 2018-06-04 15:42:12 -07:00
Phillip Webb e1d21e52d5 Allow multi-value spring.profiles properties
Update `ConfigFileApplicationListener` to correctly load properties
that have `spring.profiles` values containing a list.

Prior to this commit the loaded would attempt to add the same document
twice resulting in a "property source cannot be added relative to
itself" error.

Closes gh-13362
2018-06-04 15:39:16 -07:00
Phillip Webb a12baed5de Merge branch '2.0.x' 2018-06-04 15:02:14 -07:00
Phillip Webb c1ab3eab69 Polish 2018-06-04 15:02:06 -07:00
Phillip Webb 67b548dafb Protect against infinite property include loop
Update `ConfigFileApplicationListener` to ensure that a
`spring.profiles.include` property that refers to an already processed
profile doesn't cause an infinite loop.

Closes gh-13361
2018-06-04 14:59:29 -07:00
Madhura Bhave 378c4c9535 Stop included profiles overriding active profiles
Update `ConfigFileApplicationListener` so that `spring.profiles.include`
properties do not override higher priority active profiles.

This commit also changes when profiles get added to the environment.
Profiles are now added to the environment at the time of profile
processing so that they get logged in the order that they are processed.

Closes gh-13151
2018-06-04 14:46:44 -07:00
Phillip Webb ef5301d079 Add saaj and jax-ws dependencies for Java 9 build
Add test dependencies for saaj-impl and jax-ws since Java 9+ no longer
includes them.

See gh-1270
2018-06-04 12:16:30 -07:00
Phillip Webb 1d35b629bb Merge branch '2.0.x' 2018-06-04 11:02:06 -07:00
Phillip Webb abe92eba2e Protect Inet test against "helpful" DNS resolvers
Update `InetAddressFormatterTests` to ensure that DNS resolvers that
return a "help" page for missing domains don't cause the build to fail.

Closes gh-11897
2018-06-04 10:50:36 -07:00
Brian Clozel bd8106d77f Upgrade to Spring Framework 5.1
As of Spring Framework 5.1, we're depending on the Reactor Californium
release train.
Reactor Netty is now at version 0.8 and changed its artifact
coordinates, package names and broke several APIs. Spring Framework is
now up-to-date with those changes and this commit does the same for
Spring Boot.

Note that in that process, the `NettyServerCustomizer` has been changed
since the former `HttpServerOptions.Builder` API is now gone from
Reactor Netty, and we're now relying on immutable server instances
instead of a stateful builder pattern.

See gh-13321
2018-06-04 18:59:17 +02:00
Stephane Nicoll 93396aef51 Polish 2018-06-04 17:50:29 +02:00
Andy Wilkinson d0ce919d8c Merge branch '2.0.x' 2018-06-04 16:30:23 +01:00