Commit Graph

308 Commits

Author SHA1 Message Date
Phillip Webb 06b1b453a6 Limit when SystemEnvironment mapping is used
Update `SpringConfigurationPropertySource` so that the
`SystemEnvironmentPropertyMapper` is only used for the "actual" system
environment property source. This allows SystemEnvironmentProperySource
class to be used for other purposes (for example, Spring Cloud uses it
to as an override source providing decryption).

Only property sources named `systemEnvironment` or ending with
`-systemEnvironment` now have the `SystemEnvironmentPropertyMapper`
applied. The `TestPropertyValues` has been retrofitted to name the
source it adds appropriately.

Fixes gh-10840
2017-11-06 13:12:25 -08:00
Phillip Webb e9f31f9c34 Improve configuration properties back-compatibility
Refine `SystemEnvironmentPropertyMapper` to support environment
variables that would have worked in Spring Boot 1.5. Specifically,
camelCase property bindings now support an additional underscore. The
recommended way to map `fooBar` is still `PREFIX_FOOBAR`, however,
`PREFIX_FOO_BAR` will now also work.

Fixes gh-10873
2017-11-06 11:21:16 -08:00
Phillip Webb 1e7d85a632 Polish 2017-11-06 10:11:50 -08:00
Andy Wilkinson 723222aa95 Allow configuredLevel to be null when configuring a logger
Null value is used to indicate that the configured level should be
cleared.

Closes gh-10934
2017-11-06 12:27:39 +00:00
Stephane Nicoll dbea25fa8b Polish "Log context path at startup"
Closes gh-10544
2017-11-06 12:49:43 +01:00
tinexw f76479fb99 Log context path at startup
See gh-10544
2017-11-06 12:49:43 +01:00
Andy Wilkinson 60afbdc868 Polish 2017-11-06 11:44:53 +00:00
Johnny Lim c05a299520 Polish
Closes gh-10921
2017-11-06 12:28:43 +01:00
Phillip Webb 0fbb4989da Allow recursive list binding when iterable source
Further refine recursive binding rules so that Lists are supported when
the underlying source is iterable.

Close gh-10702
2017-11-05 09:39:17 -08:00
Phillip Webb 588dcf76c6 Only allow binder recursion with Maps
Refine the binder recursion rules introduced in commit f337323819 so
they only apply to Maps. Recursive List and Array binding is now no
longer allowed. Prior to this commit, binding a List that contained a
reference to itself would fail with a `StackOverflowException` if the
underlying property source was not iterable.

Fixes gh-10702
2017-11-04 23:14:03 -07:00
Madhura Bhave 99ad79dbe6 Add tests to trigger binder stack overflow error
Update `CollectionBinderTests` with additional tests that cause a
`StackOverflowException` due to recursive list binding.

See gh-10702
2017-11-04 23:06:38 -07:00
Phillip Webb 861469fb72 Remove accidental System.out 2017-11-04 21:57:59 -07:00
Phillip Webb fabf14ff35 Allow ApplicationPid to write to a new file
Update `ApplicationPid` so that "canWrite" is only called for files
that already exist.

See gh-9922
Fixes gh-10784
2017-11-03 23:54:31 -07:00
Phillip Webb cf17e5708b Polish Micrometer 1.0.0-rc.3 upgrade
Polish Micrometer 1.0.0-rc.3 upgrade changes.

Closes gh-10906
2017-11-03 23:47:51 -07:00
Jon Schneider 65e6876025 Upgrade to Micrometer 1.0.0-rc.3
Upgrade to Micrometer 1.0.0-rc.3 and refactor existing
auto-configuration to align with updated APIs.

Note that Spring MVC instrumentation has now changed from an interceptor
to a Filter.

See gh-10906
2017-11-03 23:37:25 -07:00
Phillip Webb fa191d8c73 Align ReactiveWebApplicationContext with framework
Refactor `ReactiveWebApplicationContext` implementations to align closer
with the `WebApplicationContext` implementations defined in
Spring Framework.

The following classes are now provided:

  - `AnnotationConfigReactiveWebApplicationContext` -- A refreshable
    reactive web context with support for `@Configuration` classes.

  - `GenericReactiveWebApplicationContext` -- A non-refreshable reactive
    GenericApplicationContext.

  - `ReactiveWebServerApplicationContext` --  A non-refreshable reactive
    GenericApplicationContext with support for server discovery.

  - `AnnotationConfigReactiveWebServerApplicationContext` -- A
    non-refreshable reactive `GenericApplicationContext` with support
    for `@Configuration` classes and server discovery.

These classes roughly align to the following Servlet equivalents:

  - `AnnotationConfigWebApplicationContext` (Spring Framework)
  - `GenericWebApplicationContext` (Spring Framework)
  - `ServletWebServerApplicationContext` (Spring Boot)
  - `AnnotationConfigServletWebServerApplicationContext` (Spring Boot)

An additional `ConfigurableReactiveWebEnvironment` interface as also
been introduced, primarily for `@ConditionalOnWebApplication` to use.

Fixes gh-10852
2017-11-03 19:07:23 -07:00
Phillip Webb b6166dc12a Move `Assume` to spring-boot-test-support
Fixes gh-10866
2017-11-03 19:07:23 -07:00
Phillip Webb 427d262297 Polish 2017-11-03 19:07:23 -07:00
Andy Wilkinson a0580da8fb Upgrade to Spring Ws 3.0.0.RELEASE
Closes gh-10920
2017-11-03 20:02:09 +00:00
Andy Wilkinson c801101b14 Upgrade to Selenium 3.7.0
Closes gh-10919
2017-11-03 20:02:09 +00:00
Andy Wilkinson d79deb3eb7 Upgrade to Infinispan 9.1.2.Final
Closes gh-10918
2017-11-03 20:02:08 +00:00
Andy Wilkinson ffc2351484 Upgrade to Javax Json 1.1.2
Closes gh-10917
2017-11-03 20:02:08 +00:00
Andy Wilkinson 18348dd205 Upgrade to Sendgrid 4.1.2
Closes gh-10916
2017-11-03 20:02:07 +00:00
Andy Wilkinson 90f9f969d3 Upgrade to Caffeine 2.6.0
Closes gh-10915
2017-11-03 20:02:06 +00:00
Andy Wilkinson 7b757dc69a Merge branch '1.5.x' 2017-11-03 20:00:36 +00:00
Madhura Bhave 55b7a48bee Add missing conditionals 2017-11-03 11:41:55 -07:00
Brian Clozel fa0926b178 Error handling for WebFlux should log HTTP 5xx errors
This commit ensures that all errors handled by the
`DefaultErrorWebExceptionHandler` (Spring WebFlux error convetion
support) logs an error with request information and exception
stacktrace.

This is limited to errors that result in an HTTP 5xx error.
Exceptions that extend `ResponseStatusException` and set a non-5xx
status will not be logged.

Closes gh-10904
2017-11-03 16:40:59 +01:00
Andy Wilkinson bfe2f85a4f Merge branch '1.5.x' 2017-11-03 14:46:25 +00:00
Brian Clozel bb9396e3a4 Enable HTTP/2 support for Tomcat and Undertow
This commit enables HTTP/2 support for Tomcat and Undertow, for both
Servlet-based and Reactive applications.

Enabling the `server.http2.enabled` configuration flag is enough with
Undertow.

Tomcat has a few prerequisites:

* Tomcat 8.5 requires JDK8+ and the proper libtcnative version installed
on the host
* Tomcat 9.0.x requires JDK9+

Closes gh-10043
2017-11-03 14:10:40 +01:00
Brian Clozel 58db841c8f Add Http2 configuration properties
This commit adds a new configuration properties class for configuring
HTTP/2 protocol support.
By default, this protocol is disabled as enabling it requires several
manual changes:

* configuring a web server for proper TLS and ALPN support
* configuring a proper SSL certificate

See gh-10043
2017-11-03 13:56:06 +01:00
Brian Clozel 7f58db7d0e Apply TLS configuration to reactive web servers
This commit applies the SSL configuration to the following reactive web
servers: Jetty, Tomcat, Undertow, Reactor Netty.

Closes gh-9431
2017-11-03 13:56:06 +01:00
Brian Clozel 5f57578b71 Enable APR optional support in Tomcat servers
This commits adds the AprLifecycleListener as a default
LifecycleListener in order to detect and use automatically the
tomcatnative library if it is available, for SSL support.

This feature can be useful for both performance reasons or for
supporting ALPN when using JDK8.

See gh-10043
Closes gh-9964
2017-11-03 13:56:06 +01:00
Andy Wilkinson 5cf50b6ccc Remove dependency management for spring-boot-starter-mobile
See gh-10884
2017-11-03 11:48:46 +00:00
Phillip Webb 3f00ba3cad Polish 2017-11-03 00:13:02 -07:00
Jay Bryant 9fc9c55c90 Format production-ready-features.adoc to 90 chars
Remove extraneous white space and adjusted the length of non-code lines
to be as close to 90 characters (but not over 90 characters) as
possible.

Update a couple things I missed in the editing pass, too.

Closes gh-10897
2017-11-02 23:22:19 -07:00
Jay Bryant 92e0eb0230 Format spring-boot-features.adoc to 90 chars
Remove extraneous white space and adjusted the length of non-code lines
to be as close to 90 characters (but not over 90 characters) as
possible.

Update a couple things I missed in the editing pass, too.

Closes gh-10896
2017-11-02 23:22:18 -07:00
Jay Bryant f8bcdc9082 Format using-spring-boot.adoc to 90 chars
Remove extraneous white space and adjusted the length of non-code lines
to be as close to 90 characters (but not over 90 characters) as
possible.

Update a couple things I missed in the editing pass, too.

Closes gh-10893
2017-11-02 23:22:18 -07:00
Jay Bryant ccfff94bbd Format getting-started.adoc to 90 chars
Remove extraneous white space and adjusted the length of non-code lines
to be as close to 90 characters (but not over 90 characters) as
possible.

Update a couple things I missed in the editing pass, too.

Closes gh-10892
2017-11-02 23:22:18 -07:00
Johnny Lim 84d137d41d Restore execution permission on launch.script
Restore the execute permission that was accidentally removed in
commit 5ee28a08e1.

Closes gh-10801
2017-11-02 23:22:17 -07:00
Nguyen Duy Tiep fae7a09b83 Support custom SpringBootContextLoader environment
Provide a `getEnvironment` method in `SpringBootContextLoader` to allow
specialized `ConfigurableEnvironment` implementations to be used.

Closes gh-10740
2017-11-02 23:22:16 -07:00
Henrik 7728f8fde6 Introduce configurable logging.pattern.dateformat
Add configurable logger dateformat support for Logback and Log4j2.

Closes gh-8516
2017-11-02 23:22:15 -07:00
Madhura Bhave d50fe8874f Add CF support for reactive actuators
Closes gh-10780
2017-11-02 18:00:55 -07:00
Phillip Webb f0327fbd0d Polish SizeAndTimeBasedRollingPolicy changes
Closes gh-6352
2017-11-02 15:21:14 -07:00
Vedran Pavic 991468b0ef Use SizeAndTimeBasedRollingPolicy file appender
Update the logback file appender to use `SizeAndTimeBasedRollingPolicy`
rather than `FixedWindowRollingPolicy`.

Add two new properties to improve log file configuration capabilities:

 - `logging.file.max-history` to limit the number of archive log files
    to keep.
 - `logging.file.max-size` to limit the log file size.

See gh-6352
2017-11-02 15:18:16 -07:00
Phillip Webb f440fc6d25 Formatting 2017-11-02 15:04:39 -07:00
Andy Wilkinson d148dff713 Upgrade to Spring Integration 5.0.0.RC1
Closes gh-7029
2017-11-02 20:30:02 +00:00
Andy Wilkinson 76df3fc496 Use explicit classpath: prefix for Flyway location
Flyway implicitly adds classpath: to locations without a prefix but
resource loader fails to find migratons on the classpath without the
prefix.

Add an explicit classpath: prefix so that both Flyway and the resource
loader used to check the locations can find the migration location.

See gh-10807
2017-11-02 18:54:04 +00:00
Jay Bryant 8f2653d4c7 Wrap documentation-overview.adoc at 90 characters and use title case
Closes gh-10889
2017-11-02 17:34:15 +00:00
Jay Bryant a1a30c6c13 Make editorial changes to howto.adoc
Closes gh-10854
2017-11-02 17:28:09 +00:00
Eddú Meléndez dcc6d8d6ff Align default of flyway.check-location with equivalent Liquibase prop
Closes gh-10807
2017-11-02 17:19:48 +00:00