Commit Graph

302 Commits

Author SHA1 Message Date
Stephane Nicoll 3f88906b97 Fix handling of ResponseStatusException
This commit updates DefaultErrorAttributes to handle
ResponseStatusException explicitly. This exception is used in a
WebFlux application to signal that the processing of the query has
failed with an HTTP status code and a reason phrase. The latter is now
properly mapped to the `message` attribute of the response body.

Closes gh-11614
2018-01-15 10:03:15 +01:00
Andy Wilkinson 2b99962a85 Replace use of Date with OffsetDateTime and Instant in Actuator
Closes gh-10976
2018-01-12 17:26:05 +00:00
Stephane Nicoll 8aaf95b792 Polish 2018-01-12 11:40:35 +01:00
Johnny Lim 136e26e307 Fix typo in DynamicRegistrationBean class name
Closes gh-11606
2018-01-12 01:44:45 +01:00
Stephane Nicoll 4a9123d6e3 Detect user-defined RedisCacheConfiguration
This commits improves the cache auto-configuration for Redis by looking
up a custom "RedisCacheConfiguration" bean that allows to take full
control over the `RedisCacheManager`.

Closes gh-11599
2018-01-11 11:52:08 +01:00
Brian Clozel 98ac2218db Apply server.undertow.* config to reactive servers
This commit applies `server.undertow.*` configuration properties
to Undertow when configured as a reactive web server.

See gh-11500
2018-01-11 11:15:23 +01:00
Brian Clozel 15bc718248 Apply server.jetty.* config to reactive servers
This commit applies `server.jetty.*` configuration properties
to Jetty when configured as a reactive web server.

It also removes some infrastructure support for Jetty 8, which
is not supported anymore in Spring Boot 2.0 (partial fix for
gh-11504).

See gh-11500
2018-01-11 11:15:17 +01:00
Brian Clozel d264af8142 Apply server.tomcat.* config to reactive servers
This commit applies most `server.tomcat.*` configuration
properties to Tomcat when set up as a reactive web server.

Some Servlet-specific properties are not applied:

* server.tomcat.additional-tld-skip-patterns
* server.tomcat.redirect-context-root
* server.tomcat.use-relative-redirects

Fixes gh-11334
2018-01-11 11:15:02 +01:00
Stephane Nicoll b2eae0006d Polish "Make GsonAutoConfiguration align with JacksonAutoConfiguration"
Closes gh-11591
2018-01-11 10:36:58 +01:00
Johnny Lim 50518514b0 Make GsonAutoConfiguration align with JacksonAutoConfiguration
See gh-11591
2018-01-11 10:16:35 +01:00
Madhura Bhave e57aafd63d Provide EndpointRequest for WebFlux-based Security
Closes gh-11022
2018-01-09 16:06:36 -08:00
Phillip Webb b078698f20 Update copyright year of changed files 2018-01-09 12:13:27 -08:00
Phillip Webb b3ec2c9d1d Polish 2018-01-09 12:12:59 -08:00
Stephane Nicoll df647605af Merge branch '1.5.x' 2018-01-09 13:28:08 +01:00
Johnny Lim b8706c47d6 Use instance equality for Class
Closes gh-11534
2018-01-09 09:30:36 +01:00
Johnny Lim 0f0c6e0729 Polish
Closes gh-11536
2018-01-09 09:28:56 +01:00
Phillip Webb 286a3bb10a Polish GSON customization support
Closes gh-11498
2018-01-08 23:13:46 -08:00
ioann ba552f1d24 Allow GSON customization via properties or beans
Update GSON support to allow customization with either properties or
customize beans.

See gh-11498
2018-01-08 22:37:55 -08:00
Phillip Webb 9cb5f3da89 Create DynamicRegistrationBean
Extract functionality from the `RegistrationBean` into a new class
designed to work with dynamic registration. Servet and Filter
registration beans now extend from `DynaimcRegistrationBean`, where as
`ServletListenerRegistrationBean` extends directly from
`RegistrationBean`.

This refactor allows the removal of `ServletListenerRegistrationBean`
deprecated methods.

Fixes gh-11344
2018-01-08 22:05:00 -08:00
Phillip Webb fb614c64da Revert "Build against Spring Security 5.0.1 SNAPSHOT"
This reverts commit 2c52b9e87a
since the SNAPSHOT BOM doesn't appear to be published.

See gh-11573
2018-01-08 18:09:07 -08:00
Phillip Webb 2d76aad03e Further refine test containers 2018-01-08 17:24:42 -08:00
Phillip Webb 201da97774 Further refine test containers 2018-01-08 16:32:39 -08:00
Phillip Webb 2c52b9e87a Build against Spring Security 5.0.1 SNAPSHOT
See gh-11573
2018-01-08 15:19:06 -08:00
Phillip Webb 19ce0aa4f0 Refine BackgroundPreinitializer
Update `BackgroundPreinitializer` to start initialization earlier. Also
refine the startup order and initialize Charsets.

Fixes gh-11570
See gh-11412
2018-01-08 15:19:06 -08:00
Phillip Webb 25609c060e Polish 2018-01-08 15:19:06 -08:00
Madhura Bhave 9a6c339243 Use TestContainers util from spring-boot-test-support
See gh-10516
2018-01-08 14:05:15 -08:00
Andy Wilkinson 996b3ef7f2 Refine test containers 2018-01-08 14:05:05 -08:00
Andy Wilkinson 12e1fcbfab Do not pass null credential from ConnectionString to Mongo builder 2018-01-08 15:21:14 +00:00
Andy Wilkinson c7f5f0735d Stop reusing the Cluster when waiting for Cassandra to start
See gh-10516
2018-01-08 14:13:21 +00:00
Andy Wilkinson 927003e0b7 Polish 2018-01-08 13:59:14 +00:00
Stephane Nicoll b98c7ed9f8 Add InvalidConfigurationPropertyValueException
This commit adds a new exception type that denotes the value of a
configuration key is invalid, alongside a FailureAnalyzer that reports
a human-readable report when such exception is thrown on startup.

ResourceNotFoundException being a (useless) specialization of this new
exception, its usage has been refactored to use the more general
exception type.

Closes gh-10794
2018-01-08 14:24:57 +01:00
Stephane Nicoll b7f60c2ded Configure NettyStreamFactoryFactory by default if available
Closes gh-11526
Closes gh-10961
2018-01-08 10:46:51 +01:00
Stephane Nicoll 06572b0101 Polish 2018-01-08 10:10:50 +01:00
Brian Clozel 2bf15f814e Polish
This commit fixes the `responseCommitted` test in
`DefaultErrorWebExceptionHandlerIntegrationTests` and reworks the whole
test class to use the `ContextRunner` infrastructure.

Fixes gh-11519
2018-01-05 18:55:13 +01:00
Stephane Nicoll c4db22007c Polish "Add support for additional Kafka listener properties"
Closes gh-11502
2018-01-05 14:35:04 +01:00
Gary Russell 6fcbf80b31 Add support for additional Kafka listener properties
See gh-11502
2018-01-05 14:11:34 +01:00
Andy Wilkinson 94d5836618 Merge branch '1.5.x' 2018-01-05 12:02:11 +00:00
Stephane Nicoll 59d5ed5842 Add support for advanced customization of Hibernate settings
As HibernateJpaConfiguration is package private, it is no longer
possible to extend the default Spring Boot configuration to apply
advanced settings. The most notable use case for this is the
customization of Hibernate properties using instance value vs. string
value that can be set using the "spring.jpa.properties" namespace.

This commit adds a HibernatePropertiesCustomizer callback interface that
can be implemented to tune Hibernate properties at will.

Closes gh-11211
2018-01-05 12:19:22 +01:00
Stephane Nicoll 641013787d Polish 2018-01-05 11:40:26 +01:00
Stephane Nicoll ac004eabf3 Update copyright header
See gh-11510
2018-01-05 10:30:43 +01:00
Johnny Lim 37d8eedae3 Polish
Closes gh-11510
2018-01-05 10:29:22 +01:00
Madhura Bhave e28915bd4b Make integration tests self-contained
Fixes gh-10516
2018-01-04 11:26:40 -08:00
Phillip Webb bee5fa7fc6 Polish 2018-01-03 13:24:04 -08:00
Phillip Webb 37fe7bc8f6 Update validator background initializer
Update the validator background initializer to actually create
the validator.

Closes gh-11412
2018-01-03 13:19:31 -08:00
Madhura Bhave 716543828a Refactor some tests to use ApplicationContextRunner 2018-01-03 11:07:19 -08:00
Johnny Lim 24b5a78e39 Polish
Closes gh-11448
2017-12-30 17:21:13 +01:00
Madhura Bhave a46d1416ee Reinstate required parameter 2017-12-29 13:16:26 -08:00
Madhura Bhave 8102dc78cb Remove redundant throws declarations 2017-12-29 12:10:13 -08:00
Stephane Nicoll cfa3cab988 Polish "Improve Spring Data Web configuration properties"
Closes gh-11403
2017-12-28 15:22:47 +01:00
Marcel Overdijk be93eabc6b Improve Spring Data Web configuration properties
See gh-11403
2017-12-28 15:04:23 +01:00
Stephane Nicoll c709ff8e3b Polish "Apply customize() to createCredentialNetworkMongoClient()"
Closes gh-11376
2017-12-28 12:39:54 +01:00
Johnny Lim 90369996a9 Apply customize() to createCredentialNetworkMongoClient()
See gh-11376
2017-12-28 12:39:06 +01:00
Stephane Nicoll f57ff3a777 Merge branch '1.5.x' 2017-12-27 17:15:01 +01:00
Johnny Lim 3c5ccb1166 Polish
Closes gh-11418
2017-12-26 09:47:10 +01:00
Johnny Lim 4cc598ac5e Replace contains() with indexOf()
Closes gh-11373
2017-12-23 14:00:27 +01:00
Johnny Lim e4f0ad2165 Polish
Closes gh-11372
2017-12-23 13:11:53 +01:00
dreis2211 a434e5cc5f Fix JsonbHttpMessageConvertersConfiguration javadoc
Closes gh-11368
2017-12-23 12:54:50 +01:00
Phillip Webb 1ea921bfdd Migrate to OAuth2Client to use PropertyMapper
See gh-9018
2017-12-22 09:55:21 -08:00
Phillip Webb ba86b68484 Polish 2017-12-22 09:48:30 -08:00
Phillip Webb 6eabe8235c Add optional javax.money dependency
Add an optional dependency to `javax.money` to Eclipse errors in
`WebConversionService`.

See gh-5523
See gh-11402
2017-12-22 09:48:29 -08:00
Christoph Dreis 1a7fd6c359 Fix typo
Closes gh-11388
2017-12-22 18:12:06 +01:00
Brian Clozel 2fa0539e7f Support date conversion format for java.time types
Prior to this change, the Spring MVC auto-configuration would add a new
formatter to convert `java.util.Date` to/from `String` using the
configured configuration property `spring.mvc.date-format`.

This commit adds a new `WebConversionService` class that registers
date formatters with a custom date format, or register the default ones
if no custom configuration is provided.
This avoids duplicating equivalent formatters in the registry.

With this change, date types from `java.util`, `org.joda.time` and
`java.time` are now all supported.

This commit also replicates this feature for WebFlux applications by
adding a new `spring.webflux.date-format` configuration property.

Closes gh-5523
Closes gh-11402
2017-12-22 16:07:33 +01:00
Madhura Bhave ec26488ff1 Allow encoding default password in reactive user details
See gh-10963
2017-12-20 10:29:20 -08:00
Madhura Bhave 1b93f84912 Allow encoded password for default user
If raw password is provided, add {noop} prefix.
If prefix is present or PasswordEncoder bean is provided,
use the password as is.

Closes gh-10963
2017-12-18 14:34:02 -08:00
Phillip Webb 5e9cfea5a8 Migrate to auto-configurations to PropertyMapper
Update auto-configuration classes that have extensive property mapping
code to make use of the new `PropertyMapper` utility.

Fixes gh-9018
2017-12-15 18:32:07 -08:00
Phillip Webb befdbaaaa9 Polish 2017-12-15 14:57:25 -08:00
Stephane Nicoll 7566a197b0 Fix type for spring.data.cassandra.contact-points
Closes gh-11354
2017-12-15 10:13:40 +01:00
Stephane Nicoll dddf2c0013 Polish "Expose default RabbitMQ credentials in the metadata"
Closes gh-6863
2017-12-14 15:41:15 +01:00
Zoltan Altfatter 878a2e1a49 Expose default RabbitMQ credentials in the metadata
See gh-6863
2017-12-14 15:41:08 +01:00
Stephane Nicoll 0e20ed1d68 Merge branch '1.5.x' 2017-12-14 11:01:22 +01:00
Stephane Nicoll 797ad13bfa Merge branch '1.5.x' 2017-12-14 09:35:50 +01:00
Phillip Webb 3273859fde Polish 2017-12-13 14:32:55 -08:00
Stephane Nicoll a626f5462d Consistent use of @AliasFor
Closes gh-10836
2017-12-13 14:42:16 +01:00
Stephane Nicoll 47c8b5731a polish 2017-12-13 14:41:39 +01:00
dreis2211 a93a4e8715 Use String.equalsIgnoreCase() where possible
Closes gh-11330
2017-12-13 09:02:45 +01:00
Thiago Hirata f3055f2685 UserNameAttribute for custom OAuth2 provider
The UserNameAttribute field for a custom OAuth2 provider was
ignored when building the ClientRegistration.

Closes gh-10672
2017-12-12 12:40:33 -08:00
Stephane Nicoll 23218add90 Polish 2017-12-12 11:57:30 +01:00
Stephane Nicoll 68c8f7bae6 Add support for useRelativeRedirects customization
Closes gh-10597
2017-12-12 10:32:58 +01:00
Stephane Nicoll 6a4a0e3f29 Polish "Make RabbitTemplate exchange and routingKey configurable"
Closes gh-10978
2017-12-12 09:09:08 +01:00
Arlo O'Keeffe 4e31d2041a Make RabbitTemplate exchange and routingKey configurable
See gh-10978
2017-12-12 08:52:48 +01:00
Stephane Nicoll 408368a1f9 Polish "Allow graceful shutdown of Atomikos"
Closes gh-11237
2017-12-12 08:30:24 +01:00
nklmish 46d94aba4f Allow graceful shutdown of Atomikos
See gh-11237
2017-12-12 08:18:42 +01:00
Stephane Nicoll 2da6675c42 Polish
See gh-10963
2017-12-12 08:16:00 +01:00
Madhura Bhave 47ed096981 Make default username and password configurable
Closes gh-10963
2017-12-11 15:15:47 -08:00
Stephane Nicoll 5ef9364085 Polish 2017-12-11 17:55:12 +01:00
Johnny Lim 96250743b5 Add missing "abstract" keywords
Closes gh-11303
2017-12-09 15:29:15 -08:00
Madhura Bhave 954cf72de4 Fix javadoc 2017-12-08 15:32:40 -08:00
Johnny Lim 6d54072e04 Remove "final" keywords
Closes gh-11294
2017-12-08 11:13:07 -08:00
Andy Wilkinson c0e3ae9042 Polish 2017-12-07 18:27:52 +00:00
Andy Wilkinson 996a7cf013 Upgrade to Flyway 5.0.0
Closes gh-11287
2017-12-07 18:21:55 +00:00
Johnny Lim 2c204f2154 Polish
Closes gh-11242
2017-12-02 09:03:59 +01:00
Stephane Nicoll 5dc28ec446 Merge branch '1.5.x' 2017-11-30 18:01:36 +01:00
Phillip Webb d7251f52a4 Polish 2017-11-29 09:09:53 -08:00
Andy Wilkinson 80543250a2 Rework properties for enabling Spring Data repositories
Rather than using two properties to enable or disable reactive and
imperative repositories for a particular store, this commit introduces
a new repository type condition that's backed by a single
spring.data.<store>.repositories.type property. The type can be
auto (automatically enables whatever's available), imperative (enables
imperative repositories), none (enables nothing), or reactive (enables
reactive repositories). The default is auto.

Repositories do not have a reactive option (such as JPA) continue to
have a spring.data.<store>.repositories.enabled property that takes a
boolean value.

Closes gh-11134
2017-11-29 13:02:45 +00:00
Brian Clozel 8b98db401c Polish
Closes gh-11090
2017-11-29 12:00:00 +01:00
Brian Clozel de208cd372 Do not handle WebFlux errors if response is committed
If the WebFlux handler commits the response but still sends an error
signal in the reactive pipeline, Spring Boot error handling should not
try to handle that error: once committed, it is impossible to change the
response status or the response headers. Writing to the body might also
lead to invalid responses.

This commit skips error handling if the response is committed and
delegates to Spring Framework's `HttpWebHandlerAdapter` which will log
the error.

Fixes gh-11168
2017-11-29 11:45:12 +01:00
Brian Clozel e3c3bb0076 Rename spring.cache.control to spring.cache.cachecontrol
Closes #11090
2017-11-29 11:14:31 +01:00
Johnny Lim 952224ef56 Polish
Closes gh-11193
2017-11-29 10:50:42 +01:00
Stephane Nicoll 33bd7ccc91 Merge branch '1.5.x' 2017-11-29 10:47:52 +01:00
Brian Clozel ee62633e33 Auto-Configure Freemarker in WebFlux
This commit adds support for basic auto-configuration for the Freemarker
template engine in WebFlux.

A few configuration properties in the `spring.freemarker.*` namespace
aren't supported yet, since they mostly apply to MVC (Servlet request
and session attributes).

Closes gh-10094
2017-11-29 10:37:39 +01:00