Commit Graph

3188 Commits

Author SHA1 Message Date
Madhura Bhave 0818f27f44 Configure WebSecurity using WebSecurityCustomizer
Replace `WebSecurityConfigurer` and `WebSecurityConfigurerAdapter`
configurations with `WebSecurityCustomizer` or `SecurityFilterChain`
beans.

Closes gh-23421
2020-10-26 23:47:14 -07:00
Stephane Nicoll e6c63b5b4e Polish
See gh-23914
2020-10-27 04:25:17 +01:00
Andy Wilkinson fafc0a91e3 Register @WebListeners in a way that allows them to register components
Previously, @WebListeners were discovered via custom component scanning
and then registered programmatically via the ServletContext. The servlet
spec requires any ServletContextListener registered in this manner to be
prohibited from programatically configuring servlets, filters, and
listeners. This left us not strictly complying with the servlet spec
as a ServletContextListener registered via a @WebListener annotation
should be able to programatically configure other components.

This commit updates WebListenerHandler to register each @WebListener
component directly with Jetty, Tomcat, or Undertow rather than via the
ServletContext API. This ensure that any @WebListener-annoated
ServletContextListener registered via servlet component scanning is
able to programatically register servlets, filters, and listeners.

There is a small chance that this will be a breaking change for some
users:

1. The ServletListenerRegistrationBeans that were previously defined
   for each @WebListener will now be
   WebListenerHandler.WebListenerRegistrars
2. Each @WebListener-annotated class will now be instantiated by
   Jetty, Tomcat, or Undertow. Jetty and Tomcat both require the class
   to be public and have a public default constructor. Previously,
   a package-private class or default constructor could be used as the
   instantiation was performed by Spring Framework. Undertow is not
   affected as it can instantiate a package-private type.

Fixes gh-18303
2020-10-26 13:26:52 -07:00
Stephane Nicoll 9ab3abb728 Add support for SAML2 relying party registration's decryption credentials
Closes gh-23705
2020-10-26 15:43:35 +01:00
Andy Wilkinson 708c43a8d1 Upgrade to Flyway 7.0.4
Closes gh-23892
2020-10-26 13:38:58 +00:00
Stephane Nicoll e0f123e676 Do not use servlet session timeout for reactive web applications
This commit fixes the auto-configuration of Spring Session to use
"server.servlet.session.timeout" as a fallback for Servlet-based web
applications only.

Closes gh-23752
2020-10-26 11:58:49 +01:00
Stephane Nicoll cb31d9547c Merge branch '2.3.x' 2020-10-24 07:40:48 +02:00
Stephane Nicoll d1e503602b Polish 2020-10-24 07:39:50 +02:00
Brian Clozel 5fceb9d5b7 Change favicon StaticResourceLocation
Prior to this commit, the `StaticResourceLocation` for favicons would
point to `"/**/favicon.ico"`. This location does not reflect the current
web development landscape, since the png format and size variants are
not supported here. Also, the `"**"` pattern can be costly at runtime
and is deprecated by the new path pattern support in Spring Framework
(see gh-22833).

This commit changes the default locations to `"/favicon.*","/*/icon-*"`,
supporting common use cases such as `"/favicon.ico"`, `"/favicon.png"`
and `"/icons/icon-48x48.png"`.

Closes gh-23126
2020-10-23 12:03:32 +02:00
Stephane Nicoll d0975d659f Polish "Remove RabbitMQ AutoConfig Boolean Coercion"
See gh-23799
2020-10-23 08:35:17 +02:00
Gary Russell 32ce453997 Remove RabbitMQ AutoConfig Boolean Coercion
See gh-23799
2020-10-23 08:32:41 +02:00
Andy Wilkinson 2d8528d5bd Adapt to deprecation of StringUtils.isEmpty(Object)
See gh-23774
2020-10-22 17:09:33 +01:00
Stephane Nicoll 17e12ea025 Polish "Add configuration options for RabbitMQ's batch listener config"
See gh-23766
2020-10-21 08:50:03 +02:00
Gary Russell 3aa247f1ca Add configuration options for RabbitMQ's batch listener config
See gh-23766
2020-10-21 08:50:03 +02:00
Stephane Nicoll e77dc60744 Add configuration properties for SAML2 relying party registration's ASM
This commit allows to configure the location and binding of the
Assertion Consumer Service used by a SAML2 relying party.

Closes gh-23746
2020-10-20 16:42:30 +02:00
Stephane Nicoll 72eaf93dba Polish assertions
See gh-23762
2020-10-20 14:37:15 +02:00
izeye 0e50e87e58 Polish
See gh-23762
2020-10-20 14:28:15 +02:00
Andy Wilkinson a0afb73923 Merge branch '2.3.x'
Closes gh-23751
2020-10-19 14:32:38 +01:00
Andy Wilkinson a754b791a2 Merge branch '2.2.x' into 2.3.x
Closes gh-23750
2020-10-19 14:32:23 +01:00
Andy Wilkinson 11bc62fb83 Stop using PostConstruct to default session timeout to ServerProperties'
Fixes gh-23716
2020-10-19 14:31:01 +01:00
Andy Wilkinson 4a38401cef Align relying party entity ID property with Spring Security
Closes gh-23745
2020-10-19 14:02:04 +01:00
Stephane Nicoll dd74810c80 Revert "Fix detection logic for embedded databases"
This reverts commit c4a5a34702.

See gh-23721
2020-10-19 12:25:00 +02:00
Asha Somayajula c4a5a34702 Fix detection logic for embedded databases
Closes gh-23721
2020-10-17 07:51:24 +02:00
Stephane Nicoll c0b267feb4 Polish "Fix detection logic for embedded databases"
See gh-23693
2020-10-16 16:32:29 +02:00
Asha Somayajula ab02084e7b Fix detection logic for embedded databases
See gh-23693
2020-10-16 15:54:54 +02:00
Andy Wilkinson d0c6dbc2c7 Rename eagerInitFilters to align with Undertow's naming
Closes gh-23674
2020-10-14 18:03:06 +01:00
Stephane Nicoll b960fa3237 Polish "Add configuration options for Kafka Stream's CleanupConfig"
See gh-23636
2020-10-14 14:30:10 +02:00
Adrien Bennadji f4799c7484 Add configuration options for Kafka Stream's CleanupConfig
See gh-23636
2020-10-14 14:26:37 +02:00
Johnny Lim 4a26e11268 Polish
See gh-23634

Closes gh-23634
2020-10-13 12:44:00 -07:00
Andy Wilkinson a64f2699cc Configure Undertow not to presever path on forward by default
Closes gh-23619
2020-10-13 19:03:36 +01:00
Andy Wilkinson 5d5afbc70d Merge branch '2.3.x'
Closes gh-23677
2020-10-13 13:38:28 +01:00
Andy Wilkinson 0abe38d478 Merge branch '2.2.x' into 2.3.x
Closes gh-23676
2020-10-13 13:18:53 +01:00
Andy Wilkinson 7fc345f587 Apply server.undertow.eager-filter-init to factory
Fixes gh-23675
2020-10-13 13:02:36 +01:00
Stephane Nicoll 2577c67185 Fix mapping of outputQueryResults property
Closes gh-23645
2020-10-13 13:20:51 +02:00
Stephane Nicoll 679bd34ea4 Upgrade to Flyway 7.0.2
Closes gh-23645
2020-10-13 10:16:01 +02:00
Stephane Nicoll d7cf8fae5c Fix formatting 2020-10-09 09:22:51 +02:00
Stephane Nicoll 34c4c3f235 Expose cache metrics for Redis
This commit adds support for Redis cache metrics. Users can opt-in for
statistics using the "spring.cache.redis.enable-statistics" property.

Closes gh-22701
2020-10-09 09:03:23 +02:00
Stephane Nicoll 5beeeac4b3 Polish "Prefer JdbcTransactionManager over DataSourceTransactionManager"
See gh-23672
2020-10-08 15:59:34 +02:00
Marten Deinum f9d50ee86a Prefer JdbcTransactionManager over DataSourceTransactionManager
Spring 5.3 introduced the JdbcTransactionManager with exception
translation on commit and rollback. This commit updates the
auto-configuration to use this implementation rather than
DataSourceTransactionManager.

See gh-23672
2020-10-08 15:59:16 +02:00
Phillip Webb 2c487f7cb8 Polish 2020-10-06 19:24:38 -07:00
Andy Wilkinson 1d610fe1c8 Add configuration properties for Flyway 7's new config options
Closes gh-23579
2020-10-05 15:26:20 +01:00
Andy Wilkinson 847aecf621 Upgrade to Flyway 7.0.0
Closes gh-23514
2020-10-05 15:26:19 +01:00
Stephane Nicoll ebc9c575e3 Allow to customize RSocketServer's fragment size
Closes gh-23247
2020-10-05 13:58:57 +02:00
Stephane Nicoll 5feaf2bc1a Polish "Polish empty string checks"
See gh-23550
2020-10-05 10:42:19 +02:00
Santhoshkumar. P 5cb07e292d Polish empty string checks
See gh-23550
2020-10-05 10:38:47 +02:00
Stephane Nicoll 294af45bb3 Replace reflection call in HttpMessageConverters
Closes gh-23485
2020-10-05 10:26:22 +02:00
dreis2211 ecee9c0f9b Avoid unnecessary explicit initialization of Atomics
Constructor calls like new AtomicInteger(0) cause a volatile write that
can be saved in cases where the constructor parameter is the default
value.

See gh-23575
2020-10-02 16:43:34 +02:00
dreis2211 efbbd8b367 Improve performance of DispatcherServletRegistrationCondition
See gh-23554
2020-10-02 10:47:03 +02:00
Stephane Nicoll c4e1b4f5dd Polish "Add configuration option for channelRpcTimeout"
See gh-23564
2020-10-02 10:14:05 +02:00
Jasmine Howard baa9d129f2 Add configuration option for channelRpcTimeout
This commit adds a configuration option to configure
RabbitConnectionFactory's channelRpcTimeout property.

See gh-23564
2020-10-02 10:12:39 +02:00
Madhura Bhave 351929a616 Merge branch '2.3.x'
Closes gh-23570
2020-10-01 18:20:09 -07:00
Madhura Bhave e2289e2f21 Merge branch '2.2.x' into 2.3.x
Closes gh-23569
2020-10-01 18:19:35 -07:00
Madhura Bhave c0f158dffd Polish "Do not fail if h2Console bean cannot connect to db"
See gh-23566
2020-10-01 18:16:11 -07:00
Shraddha Yeole 2d76de29ff Do not fail if h2Console bean cannot connect to db
See gh-23566
2020-10-01 18:10:48 -07:00
Madhura Bhave 9a6d52e30d Merge branch '2.2.x' into 2.3.x 2020-10-01 18:01:53 -07:00
Madhura Bhave 3118ca9313 Polish 2020-10-01 18:01:11 -07:00
Andy Wilkinson 9e3a2bbdeb Implement BeanFactoryAware to inject BeanFactory
Closes gh-23543
2020-09-30 19:38:06 +01:00
Stephane Nicoll 366fec33d0 Adapt to API change in Spring Framework 5.3.0 snapshots
See gh-23534
2020-09-30 13:46:57 +02:00
Stephane Nicoll 6254ad634e Merge branch '2.3.x'
Closes gh-23535
2020-09-30 10:32:16 +02:00
Stephane Nicoll cd15cbdc79 Do not execute datasource initialization in a separate thread
This commit makes sure that `data.sql` is performed in the same thread
as the one initializing the JPA container.

Closes gh-22852
2020-09-30 10:10:16 +02:00
Stephane Nicoll 75554ce236 Polish "Add support for Oracle UCP"
See gh-23403
2020-09-29 16:09:55 +02:00
Fabio Grassi a21ab392b6 Add support for Oracle UCP
See gh-23403
2020-09-29 14:45:48 +02:00
Andy Wilkinson a19a565410 Stop registering the default servlet by default
Previously, the default servlet was registered automatically when using
embedded Jetty, Tomcat, or Undertow. However, it is not used by the
majority of applications where Spring MVC's DispatcherServlet will be
the only servlet that's needed. As such configuring the default servlet
was wasting CPU and memory.

This commit changes the default for registering the default servlet to
false. It can be re-enabled by setting
server.servlet.register-default-servlet=true.

Closes gh-22915
2020-09-29 11:52:19 +01:00
Stephane Nicoll 137f4ec980 Merge branch '2.3.x'
Closes gh-23522
2020-09-29 10:46:36 +02:00
Stephane Nicoll 466c1012d6 Merge branch '2.2.x' into 2.3.x
Closes gh-23521
2020-09-29 10:44:30 +02:00
Stephane Nicoll fd3683646a Migrate SessionAutoConfigurationMongoTests to Testcontainers
Closes gh-23512
2020-09-29 10:34:59 +02:00
Stephane Nicoll cc1f7402a7 Associate ResourceLoader with RabbitConnectionFactoryBean
Closes gh-22332
2020-09-29 10:14:34 +02:00
Stephane Nicoll 36382e599c Add support for Redis 6 authentication with username
Closes gh-22702
2020-09-29 10:01:11 +02:00
Stephane Nicoll a5c20a5132 Polish 2020-09-28 14:56:44 +02:00
Stephane Nicoll 4009acf025 Add support for Hazelcast
This commit upgrades to Hazelcast 4.0.3, yet keeping compatibility with
Hazelcast 3.x.

Closes gh-20856
Closes gh-23475
2020-09-24 15:57:07 +02:00
Stephane Nicoll 4d10fbfd52 Rewrite JobLauncherApplicationRunnerTests
This commit rewrites the test to use an in-memory database rather than
the deprecated Map-based arrangement.

Closes gh-23369
2020-09-23 14:11:01 +02:00
Andy Wilkinson 659b459fab Make the auto-configured LocaleContextResolver conditional on missing bean
Closes gh-23419
2020-09-22 14:35:05 +01:00
Stephane Nicoll 1631ae23f5 Allow RestTemplateBuilder to be further customized
Closes gh-23389
2020-09-22 14:07:43 +02:00
Andy Wilkinson 1c6e37b2ac Merge branch '2.3.x'
Closes gh-23409
2020-09-18 13:33:18 +01:00
Andy Wilkinson 55bfef9901 Merge branch '2.2.x' into 2.3.x
Closes gh-23408
2020-09-18 13:32:46 +01:00
Andy Wilkinson 95f26c6358 Configure Flyway with initSqls for any DataSource configuration
Previously, spring.flyway.init-sqls was only applied to Flyway's
configuration if Flyway was being configured to create the DataSource.
If Flyway was being configured to use an existing DataSource, init-sqls
was not applied. This is a hangover from when the init SQLs support was
introduced. At that time, Flyway only supported SQL to initialize the
connection when it was creating the DataSource. Flyway 5.2 added init
SQL support no matter how Flyway's DataSource was configured.

This commit updates FlywayAutoConfiguration to always apply the
init-sqls property to Flyway's configuration. The property's
documentation does not describe the current limitation so this change
should align the behaviour with what the documentation leads people to
expect.

Fixes gh-23392
2020-09-18 13:03:24 +01:00
Phillip Webb 1ae1436211 Refactor BootstrapRegistry support
Refactor `BootstrapRegistry` support following initial prototype work
with the Spring Cloud team.

This update splits the `BootstrapRegistry` API into `BootstrapRegistry`,
`BootstrapContext` and  `ConfigurableBootstrapContext` interfaces and
moves it to the same package as `SpringApplication`.

A new `Bootstrapper` interface has been introduced that can be added
to the `SpringApplication` to customize the `BootstrapRegistry` before
it's used.

Closes gh-23326
2020-09-17 00:31:00 -07:00
Stephane Nicoll 474ab7f69c Adapt tests to deprecations in Spring Batch 2020-09-16 15:22:32 +02:00
Andy Wilkinson 55f939e93b Merge branch '2.3.x'
Closes gh-23321
2020-09-15 16:35:00 +01:00
Andy Wilkinson 409743eddb Merge branch '2.2.x' into 2.3.x
Closes gh-23320
2020-09-15 16:32:43 +01:00
Andy Wilkinson 5a266155b0 Disable proxyBeanMethods on Spring Session config sub-classes
Closes gh-23280
2020-09-15 16:32:15 +01:00
Andy Wilkinson 7562c4eb6f Adapt to WebClient's new exception wrapping
See spring-projects/spring-framework#23842
See gh-23170
2020-09-14 15:08:56 +01:00
Phillip Webb 922b4c04bf Merge branch '2.3.x' 2020-09-11 19:01:44 -07:00
Phillip Webb f5ae58e8e5 Fix deprecation warning
See gh-23256
2020-09-11 19:01:22 -07:00
Phillip Webb f1d9832282 Merge branch '2.3.x'
Closes gh-23259
2020-09-11 18:45:39 -07:00
Phillip Webb 507fae5141 Merge branch '2.2.x' into 2.3.x
Closes gh-23258
2020-09-11 18:45:05 -07:00
Phillip Webb d8232b3c21 Polish 'Allow other "timestamp" types in MVC error model'
See gh-23256
2020-09-11 18:44:04 -07:00
lock14 d1d953819a Allow other "timestamp" types in MVC error model
Remove casting "timestamp" to `java.util.Date` in
`ErrorMvcAutoConfiguration` as the cast is not necessary and it
prevents other types (e.g. `java.time`) from being used.

See gh-23256
2020-09-11 18:11:47 -07:00
Stephane Nicoll 7a8b7b9fa7 Polish "Add separate property for Redis read and connection timeout"
See gh-23137
2020-09-11 11:46:27 +02:00
anshlykov 2527fcac9c Add separate property for Redis read and connection timeout
See gh-23137
2020-09-11 11:46:27 +02:00
Stephane Nicoll 36d4e95254 Merge branch '2.3.x'
Closes gh-23251
2020-09-11 10:03:42 +02:00
Stephane Nicoll 7c13c01cb6 Fix mapping of Cassandra's idle-timeout and heartbeat-interval
Previous to this commit the connection idle timeout and heartbeat
interval were mapped to seconds whereas Cassandra expects ms for all
duration types.

This commit fixes the mapping and removes the default duration unit
since it should be considered ms like every other duration properties.

Closes gh-23249
2020-09-11 08:59:34 +02:00
Brian Clozel 0715750eb3 Polish "Add SSL support to RSocketServer"
See gh-19399
2020-09-10 15:14:55 +02:00
cbono b4810b8b91 Add SSL support to RSocketServer
See gh-19399
2020-09-10 15:14:55 +02:00
Andy Wilkinson 8daf57fdeb Upgrade to Spring Security 5.4.0
The commit also includes an upgrade to Nimbus JOSE JWT 9.0. Spring
Security requires 9.0 and it is not backwards compatible with 8.19.

Closes gh-23225
Closes gh-23242
2020-09-10 11:00:54 +01:00
dreis2211 79ec1401a5 Enable Spring Integration RSocket test again
See gh-23229
2020-09-08 16:25:23 +01:00
Brian Clozel 9e0fd01aae Deprecate resource "app-cache" configuration support
This commit deprecates the
`"spring.resources.chain.html-application-cache"` configuration property
and its support, since the feature has been deprecated in Spring
Framework.

The app-cache manifest feature is being removed from browsers in favor
of web workers.

Closes gh-23228
2020-09-08 16:34:25 +02:00
Stephane Nicoll a73b7bb7dd Polish
This commit makes sure that no high-level client is auto-configured if
a low-level client is registered as a bean.

See gh-22358
2020-09-08 12:17:58 +02:00
Andy Wilkinson aa3c93078e Adapt to deprecation of ReactiveDataAccessStrategy
ReactiveDataAccessStrategy has been deprecated in Spring Data R2BC in
favor of R2dbcConverter (and StatementMapper and UpdateMapper). When
not using Boot, an R2dbcConverter bean is now defined by
AbstractR2dbcConfiguration. This commit updates
R2dbcDataAutoConfiguration to replace the definition of a
ReactiveDataAccessStrategy bean with the definition of an
R2dbcConverter bean.

See gh-23197
2020-09-08 10:36:00 +01:00
Brian Clozel 1d73d4eda7 Remove Elasticsearch RestClient auto-configuration
Prior to this commit, Spring Boot would auto-configure both
Elasticsearch variants: `RestClient` ("Low Level" client) and
`RestHighLevelClient` ("High Level" client).
Since one can be derived from the other, this would create complex and
unclear situations depending on what developers provided with their
configuration.

`RestHighLevelClient` is mostly for actual use of the Elasticsearch API,
with support for specific methods and (de)serialization. On the other
hand, `RestClient` is merely wrapping the Apache HTTP client for
load-balancing support and low level HTTP features.

This commit completely removes the support for `RestClient` in Spring
Boot and now requires the presence of the
`org.elasticsearch.client:elasticsearch-rest-high-level-client`
dependency for REST client support with Elasticsearch.

Closes gh-22358
2020-09-08 10:17:27 +02:00
Andy Wilkinson 016c46c6b3 Temporarily disable Spring Integration RSocket test
See gh-23214
See gh-23010
2020-09-08 09:00:19 +01:00
Stephane Nicoll 73c039e4b8 Fix use of deprecated methods 2020-09-07 09:42:19 +02:00
Stephane Nicoll d2eeb9524f Merge branch '2.2.x' into 2.3.x
See gh-23183
2020-09-07 09:17:51 +02:00
Stephane Nicoll 4b5a3f4ff9 Start building against Spring Framework 5.2.9 snapshots
See gh-23182
2020-09-07 08:47:57 +02:00
Stephane Nicoll 681abcc185 Polish "Configure SAML 2.0 Service Provider via Metadata"
See gh-23045
2020-09-02 10:31:50 +02:00
Josh Cummings 5187c01e39 Configure SAML 2.0 Service Provider via Metadata
See gh-23045
2020-09-02 10:03:41 +02:00
Stephane Nicoll ce169c4d51 Allow to customize how EntityScanner scans entities
This commit adds a protected method that lets an override customize the
configuration of the ClassPathScanningCandidateComponentProvider used
to scan entities.

Closes gh-23154
2020-09-01 10:00:41 +02:00
Andy Wilkinson 84a12c8436 Upgrade to Testcontainers 1.14.3
Closes gh-23122
2020-08-28 11:57:32 +01:00
Stephane Nicoll 674ad85cdb Polish "Add support for RabbitMQ's addressShuffleMode property"
See gh-23091
2020-08-27 14:37:11 +02:00
Jonghan Kim 4b77e2e205 Add support for RabbitMQ's addressShuffleMode property
See gh-23091
2020-08-27 14:26:46 +02:00
Johnny Lim e48af31ced Polish
See gh-23081
2020-08-26 10:47:45 +02:00
Stephane Nicoll 28b938a229 Merge branch '2.3.x'
Closes gh-23088
2020-08-26 10:00:24 +02:00
dreis2211 d8ba7dd4d0 Remove unused methods
See gh-23086
2020-08-26 09:57:49 +02:00
Andy Wilkinson e9ab269b3b Polish "Add a configuration property for KLC's idleBetweenPolls"
See gh-23048
2020-08-25 16:02:29 +01:00
hoaphan 03a8937d5c Add a configuration property for KLC's idleBetweenPolls
See gh-23048
2020-08-25 15:54:59 +01:00
Stephane Nicoll 085091dbe3 Adapt auto-configurations to back-off in presence of TransactionManager
Previous to this commit, an auto-configuration would create a
PlatformTransactionManager if none is present and others conditions are
met. Spring Framework now has the notion of TransactionManager, a parent
interface that gathers both PlatformTransactionManager and
ReactiveTransactionManager.

Spring Boot should not be in a situation where both managers are defined
out-of-the-box. This commit makes sure to back-off if any
TransactionManager is available.

Closes gh-22851
2020-08-25 15:32:38 +02:00
Stephane Nicoll f191b7513d Polish 2020-08-25 15:13:56 +02:00
Andy Wilkinson 7a5392d6bd Polish 2020-08-25 09:45:40 +01:00
Stephane Nicoll 640000c0bb Disable file system preference for Freemarker templates
Previously to this commit, a project that has several classpath
locations matching the template path may lead to some of those
locations to be ignored if one of them is a directory. This can easily
happen if you run your tests in your IDE.

This commit changes the default of "preferFileSystemAccess" to
false so that the complete classpath is always considered.

Closes gh-23051
2020-08-24 18:22:50 +02:00
Stephane Nicoll deee3606c3 Merge branch '2.3.x'
Closes gh-23064
2020-08-24 12:21:12 +02:00
Stephane Nicoll 0374ed2a0c Merge branch '2.2.x' into 2.3.x
Closes gh-23063
2020-08-24 12:20:30 +02:00
Stephane Nicoll 5b0f22e8fe Fix unintended import on commons lang
Closes gh-23059
2020-08-24 12:12:33 +02:00
Stephane Nicoll aed49c0631 Add configuration option for GridFsTemplate's bucket
Closes gh-22854
2020-08-20 10:45:51 +02:00
Phillip Webb ea8762c484 Update copyright year of changed files 2020-08-18 15:40:05 -07:00
Phillip Webb 2fb08ca48f Merge branch '2.3.x' 2020-08-18 15:39:29 -07:00
Phillip Webb 15a0cbc96b Update copyright year of changed files 2020-08-18 15:39:23 -07:00
Scott Frederick b7fdf8fe87 Preserve user-provided values in MongoClientSettings
Prior to this commit, values from MongoProperties would always
overwrite matching fields in MongoClientSettings. This commit
preserves all values in MongoClientSettings if the client app
provides the MongoClientSettings bean, and only overwrites from
MongoProperties if no MongoClientSettings bean is provided.

Fixes gh-22321
2020-08-17 16:07:40 -05:00
Stephane Nicoll 8c0318edc7 Polish "Consider RecordFilterStrategy in Kafka auto-configuration"
See gh-22973
2020-08-17 13:54:20 +02:00
anshlykov f68dfde35e Consider RecordFilterStrategy in Kafka auto-configuration
See gh-22973
2020-08-17 13:37:00 +02:00
Madhura Bhave bbbbe8e4d2 Make security auto-configs back off when SecurityFilterChain present
Closes gh-22739
2020-08-14 12:24:25 -07:00
Stephane Nicoll d4ba55f8d6 Do not configure a ReactiveNeo4jTransactionManager
The current arrangement with Neo4j does not allow us to know for sure
that the user intends to use `@Transactional` for reactive or imperative
operations.

The main reason for that is that the only trigger for the reactive
auto-configuration is the presence of reactor on the classpath given
that the Neo4j driver ships with both styles in the same jar. And
reactor can be on the classpath for a number of reasons that are
unrelated to imperative access (typically `WebClient`).

This commits removes the auto-configuration of the
ReactiveNeo4jAutoConfiguration and makes sure that if the user defines
one, the regular `PlatformTransactionManager` backs off. This is
a temporarily situation until we can provide a better signal that the
user intends to primarily use imperative repositories.

Closes gh-22940
2020-08-13 16:57:51 +02:00
Andy Wilkinson 4398c71d12 Merge branch '2.3.x'
Closes gh-22938
2020-08-13 13:32:27 +01:00
Andy Wilkinson 8c4e6f766c Revert "Merge pull request #21060 from dsyer"
This reverts commit 6547ea56f9, reversing
changes made to e9e4a34e62.

Fixes gh-22039
2020-08-13 13:31:45 +01:00
Stephane Nicoll 947e484001 Merge branch '2.3.x'
Closes gh-22928
2020-08-13 09:44:26 +02:00
Stephane Nicoll d0662e824a Fix default value of server.jetty.accesslog.format
Closes gh-22921
2020-08-13 09:43:37 +02:00
Stephane Nicoll 25e08d2dee Restore handling of certain spring.data.neo4j.* properties
This commit switches the deprecation level of several properties in the
spring.data.neo4j namespace from error and warning. The server URI and
basic authentication can be used in a deprecated fashion to configure
the new neo4j driver.

Closes gh-22653
2020-08-12 14:07:44 +02:00
Phillip Webb 7838c7b072 Polish 'Support ConfigurationClassPostProcessor supplier'
See gh-22858
2020-08-11 12:31:02 -07:00
Dave Syer 06eff45a71 Support ConfigurationClassPostProcessor supplier
Update `SharedMetadataReaderFactoryContextInitializer` to optionally
support a `ConfigurationClassPostProcessor` provided via an instance
`Supplier`.

If the instance supplier is available then we can use that to set the
`MetadataReaderFactory` non-reflectively, instead of using a
`PropertyValue` (and the `BeanWrapper` eventually).

The previous behavior is left as a  fallback and without a change in
Spring Framework will continue to be the default for most applications.

See gh-22858
2020-08-11 12:31:02 -07:00
Andy Wilkinson abf6123bae Upgrade to Kafka 2.5.1
Closes gh-22868
2020-08-11 12:50:15 +01:00
Stephane Nicoll 5bd69fcd61 Merge branch '2.3.x'
Closes gh-22874
2020-08-11 13:40:21 +02:00
Stephane Nicoll dc4de06b35 Restore customization of the Couchbase cache manager
With the upgrade to the new Couchbase SDK and the related changes in
Spring Data Couchbase, CacheManagerCustomizer can no longer be used to
customize the Couchbase cache manager as it is an immutable class.

This commit introduces a dedicated callback for the
CouchbaseCacheManagerBuilder that is used by the auto-configuration and
update the documentation to refer to it with a sample usage.

Closes gh-22573
2020-08-11 13:32:17 +02:00
Andy Wilkinson ca93c8da94 Merge branch '2.3.x'
Closes gh-22856
2020-08-11 10:29:20 +01:00
Andy Wilkinson 1270af90c2 Only enable full path optimization when there's one DispatcherServlet
Previously, UrlPathHelper's full path optimization was enabled when
there was a dispatcher servlet mapped to /. The UrlPathHelper is used
across Spring MVC and if there are multiple dispatcher servlets they
all share the sample UrlPathHelper. This meant that any additional
dispatcher servlets mapping to locations other than / would not be able
to map requests correctly as the UrlPathHelper would use the full path,
ignoring the url mapping of the dispatcher servlet.

This commit updates the MVC auto-configuration so that use of the full
path is only enabled if there's a single dispatcher servlet
registration.

Fixes gh-22682
2020-08-11 09:59:06 +01:00
Andy Wilkinson 969dd35e45 Upgrade to Mockito 3.4.6
Closes gh-22838
2020-08-10 15:22:03 +01:00
Andy Wilkinson 4933b2688f Align with changes in latest Integration snapshots
See gh-22729
2020-08-07 20:11:01 +01:00
Phillip Webb f7f4ff0ac9 Update copyright year of changed files 2020-08-06 14:35:43 -07:00
Stephane Nicoll dac63fc3e5 Polish 2020-08-06 17:35:01 +02:00
Brian Clozel 4ef08425e6 Require RSocket 1.0+
This commit removes usage of methods and classes that were previously
deprecated in RSocket and Spring Framework and have been removed.

Closes gh-22764
2020-08-06 16:10:43 +02:00
Madhura Bhave f0ef47dfad Fix additional deprecations 2020-08-05 15:09:51 -07:00
Madhura Bhave 0d79bd08a6 Fix deprecations 2020-08-05 15:01:44 -07:00
Stephane Nicoll 516582f6d3 Merge branch '2.3.x'
Closes gh-22744
2020-08-05 18:05:07 +02:00
Stephane Nicoll 621f026499 Polish "Support configuration of entityId for a SAML Relying Party"
See gh-22258
2020-08-05 09:41:54 +02:00
Danilo Piazzalunga 5352ec1cba Support configuration of entityId for a SAML Relying Party
See gh-22258
2020-08-05 09:41:38 +02:00
Stephane Nicoll 589669d0cc Polish "Add support for selecting the Redis client to use"
See gh-22569
2020-08-05 09:21:52 +02:00
bono007 ac651442fa Add support for selecting the Redis client to use
See gh-22569
2020-08-05 09:05:06 +02:00
Andy Wilkinson bc44cd6705 Polish 2020-08-04 18:43:45 +01:00
Andy Wilkinson 7f53aef568 Upgrade to Kafka 2.6.0
Closes gh-22731
2020-08-04 18:14:23 +01:00
Stephane Nicoll 903dc93887 Polish "Add option to disable Redis Cluster dynamic sources refresh"
See gh-22571
2020-08-04 16:42:33 +02:00
bono007 3cfde51a8c Add option to disable Redis Cluster dynamic sources refresh
This commit adds an option to enable/disable the DynamicRefreshSources
setting on the Lettuce cluster toplogy refresh options.

See gh-22571
2020-08-04 16:42:33 +02:00
Stephane Nicoll 36fb86a110 Update to core r2dbc support
This commit adapts the auto-configuration for the new core r2dbc support
in Spring Framework and provides auto-configuration for
R2dbcEntityOperations.

Closes gh-22708
2020-08-04 16:00:29 +02:00
Brian Clozel 3354e0f030 Upgrade to Spring Security 5.4.0-SNAPSHOT
See gh-22668
2020-08-04 13:27:04 +02:00
Brian Clozel 94148e9b54 Upgrade to Couchbase Java Client 3.0.7
Closes gh-22688
2020-08-04 13:26:58 +02:00
Brian Clozel fb1234a22c Upgrade to Reactor 2020.0.0 SNAPSHOTs
See gh-22667
2020-08-04 13:26:47 +02:00
dreis2211 e49e2dfff1 Use Supplier variants of Assert methods
See gh-22699
2020-08-03 15:06:13 +02:00
Stephane Nicoll 9bc71fe44f Polish "Upgrade to Spring Data Neo4j 6"
See gh-22299
2020-07-29 19:36:42 +02:00
Gerrit Meier 15cd343737 Upgrade to Spring Data Neo4j 6
See gh-22299
2020-07-29 18:58:08 +02:00
Stephane Nicoll 5777aa5615 Start building against Spring Data 2020.0.0 snapshots
See gh-22647
2020-07-29 18:58:08 +02:00
Andy Wilkinson 3b54fe20a8 Merge branch '2.3.x'
Closes gh-22642
2020-07-29 14:10:50 +01:00
Andy Wilkinson a580e3a370 Merge branch '2.2.x' into 2.3.x
Closes gh-22641
2020-07-29 14:10:25 +01:00
Andy Wilkinson 72551242fd Allow XADataSource auto-config with no spring.datasource properties
Fixes gh-20229
2020-07-29 13:57:50 +01:00
Brian Clozel 6f2098ad71 Upgrade to Spring Framework 5.3.0-SNAPSHOT
This commit also switches to RSocket SNAPSHOTs and updates the
repository configuration to rely on "libs-snapshot", since the RSocket
SNAPSHOTs are mirrored there.

See gh-22640
2020-07-29 14:41:17 +02:00
Stephane Nicoll 8c418adb9b Polish "Add auto-configuration for Neo4j driver"
See gh-22301
2020-07-27 16:26:32 +02:00
Gerrit Meier 6134ff19f9 Add auto-configuration for Neo4j driver
This commit adds the support for creating a managed instance of the
Neo4j Java driver. The low-level support for Neo4j is helpful in
situations where the high-level abstraction of Spring Data Neo4j is not
needed.

See gh-22301
2020-07-27 16:26:32 +02:00
Andy Wilkinson 4827e84a12 Merge branch '2.3.x'
Closes gh-22581
2020-07-27 11:30:34 +01:00
Andy Wilkinson d0c75aef19 Merge branch '2.2.x' into 2.3.x
Closes gh-22580
2020-07-27 11:29:14 +01:00
Andy Wilkinson 16eaae0b2f Defer background pre-init till the environment is prepared
Previously, background pre-init was started in response to the
application starting event. This meant that it would be running while
the logging turbo filter was in place and was rejecting all logging.
As a result, any logging performed during pre-init would be lost.

This commit changes background pre-init so that it is now started
in response to the application environment prepared event. By this
point, the logging turbo filter has been removed as the logging levels
have been configured from the environment.

Closes gh-21897
2020-07-27 11:24:36 +01:00
Andy Wilkinson 3444a23765 Merge branch '2.3.x'
Closes gh-22579
2020-07-27 10:58:15 +01:00
Andy Wilkinson f0d90020e5 Merge branch '2.2.x' into 2.3.x
Closes gh-22578
2020-07-27 10:57:58 +01:00
Andy Wilkinson b98c3dccfd Fix property-based configuration of Undertow socket options
Previously, only UndertowOptions was used as the source of options for
both server and socket options, but it only contains server options.
As a result, attempting to configure any socket options defined by
XNIO's Options class would fail.

This commit updates the property-based configuration of options to use
UndertowOptions as the source for server options and XNIO's Options as
the source for socket options.

Fixes gh-22502
2020-07-27 10:47:14 +01:00
Stephane Nicoll 85ed16de13 Merge branch '2.3.x'
Closes gh-22568
2020-07-26 17:26:30 +02:00
Stephane Nicoll 6b32e62142 Fix CacheAutoConfiguration relative order for Couchbase
This commit fixes the auto-configuration of the Couchbase caching
support by configuring the cache once Spring Data Couchbase has gotten
a chance to be processed.

Closes gh-22542
2020-07-26 17:24:24 +02:00
izeye 6eba7c5f10 Polish
See gh-22549
2020-07-25 07:26:49 +02:00
Andy Wilkinson 793d266b7e Merge branch '2.3.x'
Closes gh-22546
2020-07-24 10:41:40 +01:00
Andy Wilkinson c605a6e34b Override other variant of registerBeanDefintions
Fixes gh-22480
2020-07-24 10:33:16 +01:00
Phillip Webb 14c1b0938a Polish 2020-07-22 18:25:27 -07:00
Phillip Webb da69286838 Merge branch '2.3.x' 2020-07-22 17:39:27 -07:00
Phillip Webb 187d3af7fc Update copyright year of changed files 2020-07-22 17:25:17 -07:00
Phillip Webb 217b2eff89 Merge branch '2.2.x' into 2.3.x 2020-07-22 17:03:23 -07:00
Phillip Webb b5e70157dc Update copyright year of changed files 2020-07-22 17:01:36 -07:00
Andy Wilkinson f88038f00d Upgrade to Couchbase Client 3.0.6
Closes gh-22456
2020-07-21 13:37:19 +01:00
Sébastien Deleuze 66bf684eb6 Ignore BackgroundPreinitializer in native images
BackgroundPreinitializer is not relevant in native images so it is
better to ignore it automatically in order to reduce the footprint
in such environment.

See gh-22392
2020-07-20 12:16:22 +01:00
Andy Wilkinson 85828953bd Perform enablement checks once in BackgroundPreinitializer
Closes gh-22406
2020-07-20 12:13:23 +01:00
Andy Wilkinson 0e8bf94289 Polish "Add properties for Netty HttpDecoderSpec"
See gh-22367
2020-07-17 20:19:31 +01:00
Julien Eyraud f068f9fc52 Add properties for Netty HttpDecoderSpec
See gh-22367
2020-07-17 20:19:31 +01:00
Stephane Nicoll 0cd83007e9 Merge branch '2.3.x'
Closes gh-22357
2020-07-16 14:24:20 +02:00
dreis2211 267283e3cd Handle null items as advertized in the Javadoc
See gh-22344
2020-07-16 14:17:53 +02:00
Andy Wilkinson 18a3459dc3 Polish "Avoid using reflection when configuring Tomcat listener"
See gh-22329
2020-07-15 11:19:52 +01:00
Filip Hanik be7048b58f Avoid using reflection when configuring Tomcat listener
This benefits native image building and AOT compilation,
as reflection requires manual configuration.

See gh-22329
2020-07-15 11:19:27 +01:00
Andy Wilkinson 177b3918ee Merge branch '2.3.x'
Closes gh-22340
2020-07-15 10:49:27 +01:00
Andy Wilkinson 259ea65388 Merge branch '2.2.x' into 2.3.x
Closes gh-22339
2020-07-15 10:49:01 +01:00
Andy Wilkinson d9882f2c88 Clarify the effects of ordering auto-configuration classes
Closes gh-22337
2020-07-15 10:48:01 +01:00
Andy Wilkinson 8abcb1b125 Polish 2020-07-14 17:22:31 +01:00
Andy Wilkinson c9eead31d1 Avoid reflection when creating manual RootBeanDefinitions
Closes gh-22318
2020-07-14 17:21:44 +01:00
Stephane Nicoll fe39a91290 Merge branch '2.3.x'
Closes gh-22331
2020-07-14 18:15:02 +02:00
dreis2211 de30e5c6ac Avoid unnecessary allocations in ConditionMessage for NORMAL style
See gh-22330
2020-07-14 18:12:17 +02:00
Stephane Nicoll 3ceae84176 Merge branch '2.3.x' 2020-07-14 16:58:02 +02:00
Stephane Nicoll 603e65a629 Polish 2020-07-14 16:57:42 +02:00
Stephane Nicoll c8b67becce Polish "Add additional properties to configure R2DBC pool"
See gh-21219
2020-07-14 16:52:07 +02:00
Rodolpho Couto 0d41596a42 Add additional properties to configure R2DBC pool
See gh-21219
2020-07-14 16:52:07 +02:00
Andy Wilkinson 2642b04073 Merge branch '2.3.x'
Closes gh-22327
2020-07-14 15:00:51 +01:00
dreis2211 60e7146326 Reduce started threads in OnClassCondition
Prior to this commit, OnClassCondition started a thread even if the number of
passed autoconfiguration class candidates never exceeded 1. This commit only
starts a thread if there is actually work to split in half.

See gh-22294
2020-07-14 14:59:53 +01:00
Andy Wilkinson 2af550ef73 Avoid using reflection with manual bean definitions
Closes gh-22318
2020-07-14 14:11:51 +01:00
Brian Clozel 0f264b68e8 Add option to configure PathPatternParser
As of Spring Framework 5.3, it is now possible to use `PathPatternParser`
to parse and match request mapping path patterns, as an alternative to
the current default `AntPathMatcher`.

This new implementation has been used for a while in Spring WebFlux and
it’s been designed for consistency and performance.

This commit introduces a new configuration property for opting-in this
new variant:

`spring.mvc.pathmatch.matching-strategy=path_pattern_parser`

The default option is still `ant_path_matcher` for now, but we might
change the default in future versions since Spring Framework considers
it the best choice for modern applications.

There are several behavior differences with this new variant:

* double wildcards `"**"` are rejected when used in the middle patterns,
this is only allowed as the last matching segment in a pattern.

* it is incompatible with some path matching options, like
suffix-pattern, registered-suffix-pattern or configuring a Servlet
prefix on the `DispatcherServlet` (`spring.mvc.servlet.path=/test`)

This commit introduces two `FailureAnalyzer` implementations to guide
developers when facing those issues.

Closes gh-21694
2020-07-09 21:34:00 +02:00
Andy Wilkinson 553d58a234 Merge branch '2.3.x'
Closes gh-22283
2020-07-09 10:37:18 +01:00
Andy Wilkinson c765df6e5d Merge branch '2.2.x' into 2.3.x
Closes gh-22282
2020-07-09 10:37:01 +01:00
Andy Wilkinson afa5b12bdb Make reactive Jetty auto-config back off without jetty-servlet
Fixes gh-22275
2020-07-09 10:36:32 +01:00
Scott Frederick 6b7640ba2e Merge branch '2.3.x'
Closes gh-22272
2020-07-08 15:10:42 -05:00
Scott Frederick 1e2176b6c9 Improve Redis URL validation
This commit improves the validation of URLs provided in the property
'spring.redis.url' used to auto-configure a Spring Data Redis
connection. In particular, only the URL schemes 'redis://' and
'rediss://' are allowed, and any other scheme will result in a
configuration error. A failure analyzer is also provided to improve
diagnostics for common mis-configurations detected by this validation.

Fixes gh-21999
2020-07-08 14:50:26 -05:00
Andy Wilkinson 3e33b6c854 Merge branch '2.3.x'
Closes gh-22263
2020-07-08 17:23:13 +01:00
Andy Wilkinson 502ccb6586 Honor spring.autoconfigure.exclude in test slices
Previously, the import selector for `@ImportAutoConfiguration` did not
consider the spring.autoconfigure.exclude property when determining
which auto-configurations to exclude. This meant that tests using a
slice that included a particular auto-configuration would include it
even if the application's configuration excluded it via
spring.autoconfigure.exclude. Confusingly, this could result in a
sliced test using an auto-configuration that would be excluded in a
broader `@SpringBootTest`.

This commit updates the ImportAutoConfigurationImportSelector to
consider the spring.autoconfigure.exclude property so that sliced tests
will use a subset of the auto-configurations that a `@SpringBootTest`
would use.

Fixes gh-21736
2020-07-08 17:22:32 +01:00
Johnny Lim df34d26f4f Replace ReflectionUtils with AssertJ's extracting()
See gh-22261
2020-07-08 13:57:59 +02:00
Andy Wilkinson 9894be8f1e Merge branch '2.3.x'
Closes gh-22255
2020-07-07 17:29:20 +01:00
Andy Wilkinson 0af8c35428 Auto-configure Rabbit CF with credentials provider and refresh service
Closes gh-22016
2020-07-07 13:07:40 +01:00
Andy Wilkinson 1b85ce0769 Streamline OAuth2 resource server auto-config class conditions
Fixes gh-22233
2020-07-07 12:22:27 +01:00
Andy Wilkinson 247fd59422 Merge branch '2.3.x'
Closes gh-22252
2020-07-07 11:52:50 +01:00
Andy Wilkinson b8bc219b25 Merge branch '2.2.x' into 2.3.x
Closes gh-22251
2020-07-07 11:52:34 +01:00
Andy Wilkinson 4e79bb1cff Disable bean method proxying in SpringBootJdbcConfiguration
Closes gh-22231
2020-07-07 11:51:07 +01:00
dreis2211 507eb9498b Use Class.getDeclaredConstructor().newInstance()
See gh-21913
2020-07-07 11:12:35 +01:00
Andy Wilkinson fbfb7df3e1 Merge branch '2.3.x'
Closes gh-22247
2020-07-07 10:54:00 +01:00
Andy Wilkinson 24e1a1dddf Merge branch '2.2.x' into 2.3.x
Closes gh-22246
2020-07-07 10:53:45 +01:00
Andy Wilkinson a8d3f9af31 Polish "Rename NoneOfNestedConditions to NoneNestedConditions in example docs"
See gh-22207
2020-07-07 10:46:32 +01:00
Clayton Walker 7fee70a625 Rename NoneOfNestedConditions to NoneNestedConditions in example docs
See gh-22207
2020-07-07 10:46:20 +01:00
XenoAmess 7c73ed69e1 Use valueOf rather than parseInt as result is assigned to an int
See gh-22209
2020-07-07 10:26:25 +01:00
XenoAmess 90d8480ffe Use new ArrayList(Collection) rather than new, iterate, and add
See gh-22210
2020-07-07 10:04:13 +01:00
Andy Wilkinson aca609c4c5 Merge branch '2.3.x'
Closes gh-22235
2020-07-06 14:25:13 +01:00
Andy Wilkinson 2007490ce7 Merge branch '2.2.x' into 2.3.x
Closes gh-22234
2020-07-06 14:24:53 +01:00
Andy Wilkinson 4301580095 Improve testing of PropertyPlaceholderAutoConfiguration
Since Spring Framework 4.3.0.RC2, a default embedded value resolver
has been registered with the bean factory when one is not otherwise
configured. This meant that placeholders in `@Value` would be resolved
with or without PropertyPlaceholderAutoConfiguration defining a
PropertySourcesPlaceholderConfigurer bean. However, placeholders in
bean definitions would only be resolved if a
PropertySourcesPlaceholderConfigurer was defined.

This commit updates PropertyPlaceholderAutoConfigurationTests to align
with this change in Framework. We now test that placeholders are
resolved in `@Value` annotations with or without the auto-configuration
and that placeholders in bean definitions are only resolved with the
auto-configured.

Closes gh-22230
2020-07-06 14:24:36 +01:00
Andy Wilkinson ecc50d179d Merge branch '2.3.x'
Closes gh-22198
2020-07-02 10:41:09 +01:00
Andy Wilkinson f6b3666b16 Merge branch '2.2.x' into 2.3.x
Closes gh-22197
2020-07-02 10:40:54 +01:00
Andy Wilkinson 21453b5016 Ignore scoped targets when finding matching beans
Fixes gh-22038
2020-07-02 10:39:56 +01:00
Andy Wilkinson 81d6751ba7 Use ApplicationContextRunner in ConditionalOnSingleCandidateTests 2020-07-02 10:10:28 +01:00
Andy Wilkinson d85774ea77 Merge branch '2.3.x'
Closes gh-22196
2020-07-02 09:32:11 +01:00
Eddú Meléndez 54e0a61b42 Reinstate metrics for Kafka Streams
See gh-21921
2020-07-01 14:03:11 +01:00
Andy Wilkinson 8c341df73b Polish "Add properties to control exceptions ignored by LdapTemplate"
See gh-21289
2020-07-01 10:03:34 +01:00
Filip Hrisafov 6853320661 Add properties to control exceptions ignored by LdapTemplate
See gh-21289
2020-07-01 09:33:39 +01:00
Andy Wilkinson 568f41e8e2 Merge branch '2.3.x'
Closes gh-22176
2020-06-30 17:40:02 +01:00
Andy Wilkinson 0e1ded6893 Merge branch '2.2.x' into 2.3.x
Closes gh-22175
2020-06-30 17:39:52 +01:00
dreis2211 8c0e302f2e Accept empty filter dispatcher types in auto-configurations
Prior to this commit, the usage of EnumSet.copyOf resulted in exceptions when
the underlying collection was empty.

See gh-22138
2020-06-30 17:39:21 +01:00
Andy Wilkinson 6da52a0d08 Suggest iso-offset as value for WebFlux time and date-time properties
Closes gh-22174
2020-06-30 17:35:45 +01:00
Andy Wilkinson 9230ea4ab7 Polish "Support iso-offset for date-time and time formatting with MVC"
See gh-21630
2020-06-30 17:25:16 +01:00
Gaurav Pareek c3b1172aea Support iso-offset for date-time and time formatting with MVC
See gh-21630
2020-06-30 17:05:17 +01:00
Andy Wilkinson bb1a0ffbd5 Merge branch '2.3.x'
Closes gh-22173
2020-06-30 17:02:10 +01:00
Andy Wilkinson 4566ac5c25 Add package info to o.s.b.autoconfigure.elasticsearch.rest
Closes gh-22147
2020-06-30 17:01:21 +01:00
Andy Wilkinson 27c458ca26 Merge branch '2.3.x'
Closes gh-22160
2020-06-30 10:53:49 +01:00
Andy Wilkinson f86831da9c Use TCCL at time of access for resource loading
Fixes gh-22119
2020-06-30 10:51:13 +01:00
Kedar Joshi 6c29b29bd5 Upgrade to Flyway 6.5.0 and support createSchemas
See gh-22120
2020-06-29 09:40:16 +01:00
Andy Wilkinson 7c1a8c1041 Drop back to Spring Security 5.4.0-M1
See gh-21932
2020-06-26 23:11:25 +01:00
Andy Wilkinson a92d64cb80 Start building against Spring Security 5.4.0-M2 snapshots
See gh-21932
2020-06-24 11:36:53 +01:00
Andy Wilkinson 0d6ea79007 Start building against Spring Framework 5.3.0 snapshots
See gh-21929
2020-06-22 18:02:21 +01:00
Andy Wilkinson a0946c8923 Start building against Reactor 2020.0.0 snapshots
See gh-21927
2020-06-22 17:34:56 +01:00
Andy Wilkinson c37fd865c0 Merge branch '2.3.x'
Closes gh-22019
2020-06-19 08:22:48 +01:00
Andy Wilkinson 1e97ff834e Only consider current context when finding lifecycle processor
Previously, LifecycleAutoConfiguration would check the current context
and all of its ancestors for a lifecycle processor bean, only
configuring a custom processor if one was not found. Every context
has a lifecycle processor so this check meant that lifecycle processing
timeout could not be customized in any context with a parent.

This commit updates the auto-configuration to only check the current
context.

Closes gh-22014
2020-06-19 08:19:57 +01:00
Andy Wilkinson 9e08490522 Merge branch 'gh-21271'
Closes gh-21271
2020-06-16 12:52:17 +01:00
Andy Wilkinson 753bea64c6 Enable varargs compilation warnings
See gh-21271
2020-06-16 12:50:53 +01:00
Andy Wilkinson 9636350b0b Enable rawtypes compilation warnings
See gh-21271
2020-06-16 12:50:50 +01:00
Andy Wilkinson 056d5f3120 Enable deprecation compilation warnings
See gh-21271
2020-06-16 12:50:47 +01:00
Andy Wilkinson c64649a6d9 Enable unchecked compilation warnings
See gh-21271
2020-06-16 12:50:44 +01:00
Andy Wilkinson 07fb4b065d Merge branch '2.3.x'
Closes gh-21940
2020-06-16 10:10:38 +01:00
Andy Wilkinson 0de466e06e Require dependency on s-b-dependencies to use its constraints
Previously, Spring Boot's modules published Gradle Module Metadata
(GMM) the declared a platform dependency on spring-boot-dependencies.
This provided versions for each module's own dependencies but also had
they unwanted side-effect of pulling in spring-boot-dependencies
constraints which would influence the version of other dependencies
declared in the same configuration. This was undesirable as users
should be able to opt in to this level of dependency management, either
by using the dependency management plugin or by using Gradle's built-in
support via a platform dependency on spring-boot-dependencies.

This commit reworks how Spring Boot's build uses
spring-boot-dependencies and spring-boot-parent to provide its own
dependency management. Configurations that aren't seen by consumers are
configured to extend a dependencyManagement configuration that has an
enforced platform dependency on spring-boot-parent. This enforces
spring-boot-parent's version constraints on Spring Boot's build without
making them visible to consumers. To ensure that the versions that
Spring Boot has been built against are visible to consumers, the
Maven publication that produces pom files and GMM for the published
modules is configured to use the resolved versions from the module's
runtime classpath.

Fixes gh-21911
2020-06-16 08:50:21 +01:00
Brian Clozel 33b61e698e Merge branch '2.3.x' 2020-06-15 18:22:05 +02:00
Brian Clozel a480f6e2ee Polish 2020-06-15 18:21:36 +02:00
Brian Clozel e438864ad9 Merge branch '2.3.x'
Closes gh-21925
2020-06-15 18:08:51 +02:00
Brian Clozel af2666df79 Fix welcome page support in WebFlux
Prior to this commit, the welcome page support implemented in gh-9785
would override existing index views in both annotation and functional
variants.

This comes from the fact that the feature was implemented as a
`RouterFunction` configured in the main `RouterFunctionMapping` bean.
Due to ordering issues between mappings, this would override existing
application mappings in some cases.

This commit ensures that the welcome page `RouterFunction` is
contributed to the context in its own handler mapping, ordered after the
application ones.

Fixes gh-21909
2020-06-15 18:03:55 +02:00
Stephane Nicoll 9e2902130c Polish 2020-06-15 16:34:34 +02:00
Stephane Nicoll bf96b0c57b Polish "Add support for webAdminPassword property of H2 Console"
See gh-21533
2020-06-15 16:19:56 +02:00
Radek Koubsky 1d40234737 Add support for webAdminPassword property of H2 Console
See gh-21533
2020-06-15 16:19:40 +02:00
Stephane Nicoll ca44e83279 Merge branch '2.3.x'
Closes gh-21802
2020-06-11 11:22:37 +02:00
Stephane Nicoll ca5afb6e90 Fix flaky integration test
Closes gh-21487
2020-06-11 11:20:49 +02:00
Andy Wilkinson dd93b523a4 Merge branch '2.3.x'
Closes gh-21869
2020-06-10 19:02:29 +01:00
Andy Wilkinson 90bd433083 Allow child contexts to configure server properties
Previously, HttpMessageConvertersAutoConfiguration registered
ServerProperties. When this happened in a parent context, any child
contexts would skip registering ServerProperties due to its presence
in the parent context. This prevents the child contexts from
configuring their own server properties.

This commit updates HttpMessageConvertersAutoConfiguration to
bind server.servlet.encoding directly instead of enabling
ServerProperties. With ServerProperties no longer enabled in a parent
context, child contexts are now able to configure their own server
properties.

Fixes gh-21789
2020-06-10 18:56:57 +01:00
Stephane Nicoll a8da75a396 Merge branch '2.3.x'
Closes gh-21867
2020-06-10 18:13:57 +02:00
Tomek Szmytka 8890660a71 Back-off if a custom ReactiveSessionFactory is defined
This commit makes sure that CassandraReactiveDataAutoConfiguration does
not create a reactiveCassandraSessionFactory bean if the user has
provided their own.

See gh-21769
2020-06-10 18:10:05 +02:00
Andy Wilkinson 3e5fcee187 Upgrade to Spring Security 5.3.3.RELEASE
Closes gh-21863
2020-06-10 17:04:04 +01:00
Stephane Nicoll 6534a9abaf Configure password-based authentication with Cassandra
This commit updates the Cassandra auto-configuration to configure
password-based authentication on the CqlSession directly.

Closes gh-21487
2020-06-10 09:57:47 +02:00
Stephane Nicoll 7fe85750fb Merge branch '2.2.x' into 2.3.x 2020-06-09 16:30:07 +02:00
Stephane Nicoll cc3575b3f4 Merge branch '2.1.x' into 2.2.x 2020-06-09 16:26:44 +02:00
Stephane Nicoll 9a457527fd Polish test 2020-06-09 16:00:50 +02:00
Andy Wilkinson 8155cc5f23 Merge branch '2.2.x' into 2.3.x
Closes gh-21786
2020-06-09 11:02:23 +01:00
Andy Wilkinson a0f29edd4d Always initialize stompWebSocketHandlerMapping eagerly
Previously, when lazy initialization was enabled, STOMP-based WebSocket
messaging would not work as the stompWebSocketHandlerMapping bean was
not initialized and CONNECT requests would go unanswered.

This commit adds a LazyInitializationExcludeFilter that causes the
stompWebSocketHandlerMapping bean to always be initialized eagerly.
This triggers initialization of the WebSocket transport allowing
requests to be received and processed.

Fixes gh-19611
2020-06-09 11:02:02 +01:00
Scott Frederick 73aff08535 Improve tests for BasicErrorController
This commit improves the tests for BasicErrorController by decoupling
coverage for the include-message and include-binding-errors
parameters to ensure the options operate properly independent of
each other.

See gh-21702
2020-06-08 15:00:55 -05:00
Aurdo e2e52a11cc Fix BasicErrorController include parameter parsing
This commit fixes an error in BasicErrorController where the wrong
property was referenced for binding error inclusion.

See gh-21702
2020-06-08 15:00:55 -05:00
Phillip Webb ddbecf62b3 Polish 'Fix Mustache to not ignore native fetcher'
See gh-21060
2020-06-08 11:10:57 -07:00
Dave Syer 5199c11e37 Fix Mustache to not ignore native fetcher
Alter the logic of `MustacheEnvironmentCollector` so that the
native fetcher is always consulted if it exists.

When the context is a map (as it is in a web View for instance) you
can't assume a non-null fetcher actually contains the property you are
searching for.

See gh-21060
2020-06-08 11:02:04 -07:00
Andy Wilkinson 82b531b49e Merge branch '2.2.x' into 2.3.x 2020-06-08 11:35:53 +01:00
Andy Wilkinson 8da1e3addb Merge branch '2.1.x' into 2.2.x 2020-06-08 11:35:10 +01:00
Andy Wilkinson 6a9450ee8b Polish 2020-06-08 11:34:56 +01:00
Phillip Webb f8982bdc14 Polish 'Support userInfo in elasticsearch URI'
See gh-21381
2020-06-07 11:56:18 -07:00
Evgeniy Cheban a72179aa4f Support userInfo in elasticsearch URI
See gh-21381
2020-06-07 10:38:41 -07:00
Phillip Webb abaca95467 Merge branch '2.2.x' into 2.3.x
Closes gh-21744
2020-06-07 10:27:35 -07:00
Phillip Webb bfe1c281f0 Merge branch '2.1.x' into 2.2.x
Closes gh-21743
2020-06-07 10:25:33 -07:00
Phillip Webb 70e0a27949 Drop the use of the term "white list"
Closes gh-21737
2020-06-07 10:22:35 -07:00
Phillip Webb 0a05b4c9fd Update copyright year of changed files 2020-06-05 15:36:09 -07:00
Stephane Nicoll 400a168ce9 Merge branch '2.2.x' into 2.3.x
Closes gh-21720
2020-06-05 16:41:24 +02:00
dreis2211 9bb22ffb69 Remove usages of deprecated Connector.setAttribute()
See gh-21671
2020-06-05 16:32:42 +02:00
Madhura Bhave 1f28141f3e Use the right property in test 2020-06-01 15:15:53 -07:00
dreis2211 b498d3903f Upgrade to Testcontainers 1.14.2
See gh-21581
2020-05-27 14:49:09 +02:00
Stephane Nicoll 9cf448863a Restore RestClientBuilderCustomizer in its original location
This commit restores RestClientBuilderCustomizer in the rest package in
a deprecated fashion so that the upgrade from 2.2 is smoother.

Closes gh-21572
2020-05-26 16:55:09 +02:00
Toshiaki Maki b4817c85b1 Fix default value for spring.data.jpa.repositories.bootstrap-mode
See gh-21492
2020-05-25 15:11:17 +02:00
Stephane Nicoll b9a1a70fcc Merge branch '2.2.x'
Closes gh-21562
2020-05-25 14:59:19 +02:00
Stephane Nicoll 77981ac2ae Polish "Use the container IP address for tests using TestContainer"
See gh-21480
2020-05-25 14:29:24 +02:00
olivier lamy 0c2bf70bb8 Use the container IP address for tests using TestContainer
See gh-21480
2020-05-25 14:03:18 +02:00
Brian Clozel a12a3054c9 Optimize UrlPathHelper configuration for Spring MVC
Prior to this commit, Spring Boot would auto-configure Spring MVC and
would keep the default `UrlPathHelper` configuration.
Since Spring Boot is in charge of configuring the `DispatcherServlet`
and its mapping, it is in a position to optimally configure the
`UrlPathHelper` depending on the chosen mapping.

This commit sets the `alwaysUseFullPath` property of `UrlPathHelper` if
the Servlet mapping is `"/"`. This is more efficient since this
configuration requires less processing of the request path.

Closes gh-21499
2020-05-22 18:50:24 +02:00
Brian Clozel 525e03d3b5 Add welcome page support for Spring WebFlux
This commit adds the support for static and templated welcome pages with
Spring WebFlux. The implementation is backed by a `RouterFunction`
that's serving a static `index.html` file or rendering an `index` view.

Closes gh-9785
2020-05-22 14:20:06 +02:00
Phillip Webb eb3b0f82a3 Use http liquibase XSDs
Update the lquibase test to use `http://` rather than `https://` so that
it can be resolved from the local jar.
2020-05-14 17:55:10 -07:00
Madhura Bhave 5acd115cb3 Add redis sentinel password property
Closes gh-21353
2020-05-13 16:55:51 -07:00
Phillip Webb 038ae93406 Update copyright year of changed files 2020-05-13 16:48:51 -07:00
Madhura Bhave 4d521e712f Merge branch '2.2.x' 2020-05-13 13:55:44 -07:00
Madhura Bhave 27ada029b5 Revert "Expose property to configure OAuth2 provider configurationMetadata"
This reverts commit 7b79029949.

See gh-21375
2020-05-13 13:53:46 -07:00
Phillip Webb 6a1f61c1bf Merge branch '2.2.x' 2020-05-13 12:23:10 -07:00
Phillip Webb daed512076 Restore getUseRelativeRedirects in deprecated form
Restore the `getUseRelativeRedirects` method with a `Boolean` object
result and introduce `isUseRelativeRedirects` for the primitive boolean
variant.

See gh-20796
2020-05-13 11:36:24 -07:00
Stephane Nicoll a5f826fc78 Fix typo 2020-05-13 15:57:29 +02:00
Madhura Bhave 453ca01338 Merge branch '2.2.x'
Closes gh-21429
2020-05-12 13:43:17 -07:00
Madhura Bhave 7b79029949 Expose property to configure OAuth2 provider configurationMetadata
Closes gh-21375
2020-05-12 13:42:03 -07:00
Andy Wilkinson 0bb687717c Auto-configure a lifecycle processor with configurable timeout
Closes gh-21347
2020-05-12 19:59:52 +01:00
Andy Wilkinson 240898121f Use SmartLifecycle for graceful web server shutdown
Closes gh-21325
2020-05-12 19:59:52 +01:00
Johnny Lim 6022d4cac7 Fix ClientHttpConnectorConfigurationTests.shouldApplyHttpClientMapper()
See gh-21390
2020-05-12 17:13:27 +02:00
Stephane Nicoll deb2322457 Remove wrong replacement key in deprecated metadata 2020-05-12 15:37:50 +02:00
Stephane Nicoll 8c4f185b98 Remove outdated metadata for spring.data.cassandra.port
Closes gh-21418
2020-05-12 09:56:49 +02:00
Scott Frederick 158933c3e5 Improve API of ErrorAttributes and DefaultErrorAttributes
This commit improves the backward-compatibility of the ErrorAttributes
interfaces by providing a default implementation of a new method. It
also encapsulates several parameters that control the inclusion or
exclusion of error attributes into a new ErrorAttributeOptions type to
make it easier and less intrusive to add additional options in the
future. This encapsulation also makes the handling of the
includeException option more similar to other options.

Fixes gh-21324
2020-05-11 15:36:24 -05:00
Stephane Nicoll 09815cc99d Merge branch '2.2.x'
Closes gh-21352
2020-05-07 14:19:41 +02:00
Stephane Nicoll 31f9a965f0 Merge branch '2.1.x' into 2.2.x
Closes gh-21351
2020-05-07 14:12:53 +02:00
Stephane Nicoll 1a4f6df0a3 Upgrade to Spring Ldap 2.3.3.RELEASE
Closes gh-21342
2020-05-07 14:11:24 +02:00
Madhura Bhave 8e7f816f48 Merge branch '2.2.x'
Closes gh-21344
2020-05-06 16:37:25 -07:00
Madhura Bhave 5583f64b1f Add tests to verify Jetty's thread pool defaults match server defaults
Closes gh-21213
2020-05-06 16:35:00 -07:00
Madhura Bhave 01404aa27b Merge branch '2.2.x'
Closes gh-21343
2020-05-06 16:00:24 -07:00
Madhura Bhave f29bce657e Harmonize default for server.tomcat.use-relative-redirects
Prior to this commit, the property was a Boolean with a null default.
If it was explicitly set by the user, a context customizer would use
that value to set it on the context. However, if it was not set, the default
wouldn't be tomcat's default but `false` because it was explicitly set to
`false` in `TomcatServletWebServerFactory`. This commit defaults the property
itself to `false` so that the default is more obvious to the user.

Fixes gh-20796
2020-05-06 15:54:27 -07:00
Phillip Webb d52bf83ab2 Polish 2020-04-30 16:40:05 -07:00
Andy Wilkinson 04c7132eb3 Rename customize to reflect type that it customizes
See gh-20961
2020-04-30 19:43:52 +01:00
dreis2211 dd11b8adba Fix checkstyle violation
See gh-21266
2020-04-30 12:43:51 +02:00
Andy Wilkinson 1abe0f16d0 Apply gridFsDatabase to auto-configured ReactiveGridFsTemplate
Closes gh-18284
2020-04-30 10:46:10 +01:00
Madhura Bhave 6007a71b9c Polish "Add support for customizing RSocketMessageHandler"
See gh-21081
2020-04-29 17:15:09 -07:00
Aarti Gupta 456d6e78fe Add support for customizing RSocketMessageHandler
See gh-21081
2020-04-29 17:11:19 -07:00
Scott Frederick a30740f8d2 Separate server properties for message and errors
Prior to this commit, there was a property server.error.include-details
that allowed configuration of the message and errors attributes in a
server error response.

This commit separates the control of the message and errors attributes
into two separate properties named server.error.include-message and
server.error.include-binding-errors. When the message attribute is
excluded from a servlet response, the value is changed from a
hard-coded text value to an empty value.

Fixes gh-20505
2020-04-29 17:56:47 -05:00
Andy Wilkinson d65d951318 Polish "Add support for customizing Spring Session's cookie serializer"
See gh-20961
2020-04-29 20:53:58 +01:00
Vedran Pavic 32454b83b4 Add support for customizing Spring Session's cookie serializer
This commit introduces a CookieSerializerCustomizer callback that
allows the customization of the auto-configured
DefaultCookieSerializer bean. This is particularly useful for
configuring cookie serializer's capabilities, such as SameSite, that
are not supported by the Servlet API and therefore not exposed via
server.servlet.session.cookie.* properties.

See gh-20961
2020-04-29 20:53:58 +01:00
Stephane Nicoll d16074d8fd Bind and unbind Kafka metrics as consumers and producers come and go
Fixes gh-21008

Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
2020-04-29 17:53:08 +01:00
Brian Clozel 692a8c47cc Rename property for registering default Servlet
As a follow-up for gh-21214, this commit renames the property to:

`"server.servlet.register-default-servlet=false"`

Closes gh-21214
2020-04-29 18:42:50 +02:00
Brian Clozel c7c01f8ab4 Add property for registering default Servlet
This commit adds a new configuration property for configuring the
registration of the default Servlet in Servlet containers.

`"server.servlet.default-servlet.registered=false"`

The default of this property is still `true`, as it's been the case in
previous releases.

Closes gh-21214
2020-04-29 18:02:33 +02:00
dreis2211 c1c90b11b8 Fix some deprecations
See gh-21212
2020-04-29 15:10:30 +02:00
Andy Wilkinson d167bb472d Allow base packages to be specified on @AutoConfigurationPackage
Closes gh-19023
2020-04-29 13:00:22 +01:00
Andy Wilkinson d63e492906 Add support for enabling ISO date, time, and date-time formatting
Closes gh-20579
2020-04-29 11:47:33 +01:00
Andy Wilkinson 95e5d4e045 Polish "Enable users to provide custom time and datetime formats"
See gh-18772
2020-04-29 11:46:56 +01:00
Daniel Knittl-Frank 69b51cd64d Enable users to provide custom time and datetime formats
Extend WebFlux and WebMvc properties with timeFormat and
dateTimeFormat properties to allow users to customize format of
LocalTime and LocalDateTime instances.

See gh-18772
2020-04-29 11:46:24 +01:00
Stephane Nicoll 6921fdacac Expand configuration class eager filtering to imports
Previously, only root auto-configuration classes could be excluded
eagerly via an AutoConfigurationImportFilter. Any configuration class
loaded as a result of processing a particular auto-configuration were
parsed and checked as usual.

This commit makes use of the `getExclusionFilter` callback to expand
this filter to all candidates that are considered. The annotation
processor has also be expanded to generate metadata for non-root
configuration classes.

Closes gh-12157
2020-04-29 10:45:28 +02:00
Andy Wilkinson 69a25e4d80 Stop relying on transitive com.nimbusds:oauth2-oidc-sdk dependency 2020-04-29 09:17:57 +01:00
Phillip Webb ad1248e4ec Replace "folder" with "directory"
Consistently use the term "directory" instead of "folder"

Closes gh-21218
2020-04-28 19:20:24 -07:00
Brian Clozel dac62476a0 Merge branch '2.2.x'
Closes gh-21208
2020-04-28 11:33:50 +02:00
Brian Clozel a63ab468a3 Upgrade to RSocket 1.0.0-RC7
This commit upgrades to RSocket 1.0.0-RC7.
This new RC brings API changes we have to adapt to. As of this commit,
we're introducing a new `RSocketServerCustomizer` which replaces the now
deprecated `ServerRSocketFactoryProcessor`.

Closes gh-21046
2020-04-28 11:09:37 +02:00
Brian Clozel b337f67f93 Add ReactorNettyHttpClientMapper
This new customizer-like interface make it possible to configure the
Reactor Netty `HttpClient` that is going to be used by the
`WebClient.Builder` provided by Spring Boot.

Closes gh-21135
2020-04-26 22:10:39 +02:00
dreis2211 5eb5bf0a2d Polish
See gh-21009
2020-04-25 08:54:47 +02:00
Stephane Nicoll 85e9f713b0 Update copyright year of changed files
See gh-21007
2020-04-25 08:50:51 +02:00
Johnny Lim 29717423a3 Remove this keyword on member method invocations
See gh-21007
2020-04-25 08:49:44 +02:00
Andy Wilkinson d5b944140a Attempt to stabilise CouchbaseAutoConfigurationIntegrationTests
Starting the CouchbaseContainer fails intermittently when creation
of the primary index for the bucket fails with a read timeout. The
test doesn't require a primary index for the bucket so this commit
disables it creation in the hope that it will help to stabilise the
test.
2020-04-24 16:21:08 +01:00
Andy Wilkinson dc75ca3942 Avoid capturing TCCL when creating DefaultResourceLoaders
Previously, DefaultResourceLoader instances were created using the
default constructor. This causes the resource loader to capture the
TCCL that was in place at that time. This can lead to a class loader
leak if the resource loader is referenced directly or indirectly from
a static field of a class loaded by a different class loader.

This commit updates the creation of DefaultResourceLoader instances
in main code so that the resource load will use the class loader of
the creating class. In almost all cases this will be the same class
loader as was the thread context class loader that was being captured
so the change in behavior is minimal. Crucially, it will still address
the situation where the TCCL was different.

Note the DevTools' ApplicationContextResourceLoader has been updated
to explicitly use the TCCL. This ensures that it uses the restart
class loader which is required for DevTools to function correctly.

Fixes gh-20900
2020-04-24 13:29:29 +01:00
Andy Wilkinson d53be18582 Deprecate support for Bitronix
Closes gh-20823
2020-04-24 11:37:44 +01:00
Stephane Nicoll ddcd1bc7bb Remove metadata for configuration keys that were removed in 2.0
Closes gh-19706
2020-04-23 16:14:13 +02:00
Stephane Nicoll 623fbcbf8c Polish 2020-04-23 15:20:47 +02:00
Stephane Nicoll 1019dbbc47 Merge branch '2.2.x'
Closes gh-21100
2020-04-23 15:00:22 +02:00
Stephane Nicoll 8ac3ab5551 Add missing metadata for removed configuration keys
Closes gh-20846
2020-04-23 14:39:10 +02:00
Stephane Nicoll 6c02daf2bc Merge branch '2.2.x'
Closes gh-21098
2020-04-23 14:12:37 +02:00
Stephane Nicoll 311952730e Merge branch '2.1.x' into 2.2.x
Closes gh-21097
2020-04-23 14:07:31 +02:00
Stephane Nicoll 291165f060 Order additional metadata according to lexicographic order
Closes gh-21095
2020-04-23 13:58:49 +02:00
Phillip Webb 56711d678a Merge branch '2.2.x'
Closes gh-21083
2020-04-22 11:59:22 -07:00
Phillip Webb 102729b5e1 Merge branch '2.1.x' into 2.2.x
Closes gh-21082
2020-04-22 11:58:39 -07:00
Phillip Webb b3d33754a5 Remove outdated FIXMEs from tests
Closes gh-19782
2020-04-22 11:55:35 -07:00
Phillip Webb bf41da5322 Update copyright year of changed files 2020-04-21 18:12:27 -07:00
Phillip Webb e83c3b87c0 Merge branch '2.2.x'
Closes gh-21071
2020-04-21 11:45:05 -07:00
Phillip Webb 7d0b14fe1c Merge branch '2.1.x' into 2.2.x
Closes gh-21070
2020-04-21 11:43:09 -07:00
Phillip Webb 6011470ba6 Auto-configure cors on WelcomePageHandlerMapping
Update `WebMvcAutoConfiguration` to automatically apply cors
configuration to the `WelcomePageHandlerMapping`.

Fixes gh-21048
2020-04-21 11:40:26 -07:00
Stephane Nicoll e26f3e2a65 Review Cassandra's timeout options
This commit reviews the current timeout options. It creates a connection
and request sub-namespace to separate concerns a bit more.

Closes gh-19673
2020-04-21 17:29:38 +02:00
Brian Clozel f103966743 Polish
See gh-20994
2020-04-21 15:51:11 +02:00
Vedran Pavic f701d97b92 Improve Elasticsearch RestClient customization capabilities
At present, RestClientBuilderCustomizer allows general customization of RestClientBuilder.
This is troublesome for users that want to customize `HttpAsyncClientBuilder` and
`RequestConfig.Builder` since those are set on the `RestClientBuilder`. By customizing
those two builders user lose out on Spring Boot's support for binding username, password,
connection-timeout and read-timeout properties from `"spring.elasticsearch.rest"` namespace.

This commit enhances the `RestClientBuilderCustomizer` with support for customizing
`HttpAsyncClientBuilder` and `RequestConfig.Builder` by providing additional `customize`
methods that accept the aforementioned builders. Both new methods are optional as they have
no-op default implementations.

See gh-20994
2020-04-21 15:50:59 +02:00
Andy Wilkinson 3605235c67 Merge branch '2.2.x'
Closes gh-21041
2020-04-20 17:12:47 +01:00
Andy Wilkinson 439d9beecb Test that gridFsDatabase is honored by auto-configured GridFsTemplate
Closes gh-21039
2020-04-20 17:09:37 +01:00
Stephane Nicoll 415dcd899d Configure Cassandra's request throttling
Closes gh-19674
2020-04-20 15:56:09 +02:00
Stephane Nicoll 8787e749c4 Add IsolationLevel regression test with Kafka 2.4
This commit makes sure that our copy of the IsolationLevel enum is
consistent with what Kafka 2.4 provides

Closes gh-20822
2020-04-20 14:54:09 +02:00
Stephane Nicoll 2c72350cd8 Upgrade to Kafka 2.5.0
Closes gh-21032
2020-04-20 12:33:33 +02:00
Stephane Nicoll 6a8aaa7b99 Merge branch '2.2.x'
Closes gh-21017
2020-04-19 16:37:06 +02:00
Stephane Nicoll 90c0378a7d Apply configuration properties deprecation consistently
This commit makes sure that both the getter and the setter of a
deprecated configuration properties is flagged with `@Deprecated`.

Closes gh-20812
2020-04-19 16:35:16 +02:00
Stephane Nicoll 5afe4743cb Remove deprecated configuration properties
This commit removes the following deprecated properties:

* `server.connection-timeout`
* `server.use-forward-headers`
* `server.jetty.max-http-post-size`
* `server.tomcat.max-http-post-size`

Closes gh-20991
2020-04-19 15:49:05 +02:00
Phillip Webb e3b8478621 Polish 2020-04-17 16:12:11 -07:00
Phillip Webb dc56608651 Merge branch '2.2.x'
Closes gh-21004
2020-04-17 15:20:38 -07:00
Phillip Webb 1a8aa72afd Merge branch '2.1.x' into 2.2.x
Closes gh-21003
2020-04-17 15:19:45 -07:00
Phillip Webb 822d9f6a31 Allow empty URIs to create embedded datasource
Refine `DataSourceAutoConfiguration` conditions so that an empty
`spring.datasource.url` property can be used to enable the embedded
source.

Fixed gh-20996
2020-04-17 15:07:50 -07:00
K Zoli 0d532042cb Use RequestDispatcher.ERROR_STATUS_CODE constant
See gh-20923
2020-04-17 16:01:11 +02:00
Scott Frederick 1caca6e3d0 Deprecate unused ErrorController interface method
This commit marks as deprecated an interface method that is no longer
used, and changes all internal implementations to return `null` to
make the fact that the return value is not used more obvious.

Fixes gh-19844
2020-04-16 16:50:03 -05:00
Scott Frederick 70d4994502 Disable exception details on default error views
Prior to this commit, default error responses included the message
from a handled exception. When the exception was a BindException, the
error responses could also include an errors attribute containing the
details of the binding failure. These details could leak information
about the application.

This commit removes the exception message and binding errors detail
from error responses by default, and introduces a
`server.error.include-details` property that can be used to cause
these details to be included in the response.

Fixes gh-20505
2020-04-16 10:46:36 -05:00
Stephane Nicoll 71ecadeaee Polish "Optimize AutoConfigurationImportSelector.filter()"
See gh-20928
2020-04-16 14:13:05 +02:00
dreis2211 2158fadb35 Optimize AutoConfigurationImportSelector.filter()
See gh-20928
2020-04-16 14:12:56 +02:00
Stephane Nicoll 04544f9842 Polish 2020-04-15 15:11:28 +02:00
dreis2211 5b9d8bfc17 Upgrade to Testcontainers 1.14.0
See gh-20936
2020-04-15 09:20:31 +02:00
Stephane Nicoll 17e5b08cba Polish 2020-04-15 09:09:27 +02:00
Stephane Nicoll 8fa6ec36f4 Remove @ConditionalOnMissingBean check on deprecated class
Closes gh-20968
2020-04-15 08:49:37 +02:00
Phillip Webb bb79c847b2 Allow custom availability states
Create a general purpose `AvailabilityState` interface and refactor
the existing `LivenessState` and `ReadinessState` to use it. A single
`AvailabilityChangeEvent` is now used to carry all availability state
updates.

This commit also renames `ApplicationAvailabilityProvider` to
`ApplicationAvailabilityBean` and extracts an `ApplicationAvailability`
interface that other beans can inject. The helps to hide the event
listener method, which is really internal.

Finally the state enums have been renamed as follows:

 - `LivenessState.LIVE` -> `LivenessState.CORRECT`
 - `ReadinessState.READY` -> `ReadinessState.ACCEPTING_TRAFFIC`
 - `ReadinessState.UNREADY` -> `ReadinessState.REFUSING_TRAFFIC`

See gh-20962
2020-04-14 16:40:36 -07:00
Johnny Lim cb320288a4 Polish
See gh-20931
2020-04-13 14:35:21 +02:00
Stephane Nicoll 73ca703007 Merge branch '2.2.x'
Closes gh-20919
2020-04-11 10:28:43 +02:00
Stephane Nicoll 60f726a080 Polish 2020-04-11 10:27:05 +02:00
Stephane Nicoll 3cdb5a690a Polish "Align Kafka's missingTopicsFatal default value"
See gh-20917
2020-04-11 10:20:09 +02:00
dhimathu a12eace2a8 Align Kafka's missingTopicsFatal default value
See gh-20917
2020-04-11 10:03:21 +02:00
Vedran Pavic fec386b574 Harmonize naming of Elasticsearch auto-configuration classes 2020-04-11 10:00:42 +02:00
Brian Clozel 0611b6d3eb Fix startup failure when WebFlux auto-config is skipped
Prior to this commit, the `HttpHandlerAutoConfiguration` would rely on
the `WebFluxProperties` bean being present - this is most of the time
true when the appplication is using the WebFlux auto-configuration.

If the application is overriding the WebFlux auto-configuration and
providing its own setup, the properties bean is not present and we
should skip its usage.

Fixes gh-20891
2020-04-10 14:16:16 +02:00
Madhura Bhave 1342e4970a Provide a condition for detecting war deployments
Closes gh-19421
2020-04-09 18:52:06 -07:00
Phillip Webb ed2d90248c Rename `singleSignOn` property to `singlesignon`
Rename the SAML `singleSignOn` nested property to `singleSignOn` so
that we don't get problems when using uppercase environment variable
names.

See gh-20584
2020-04-07 14:14:58 -07:00
Phillip Webb 3ca896e63f Polish 2020-04-07 12:10:49 -07:00
Stephane Nicoll 885ad1b720 Merge branch '2.2.x'
Closes gh-20868
2020-04-07 15:05:47 +02:00
dreis2211 2f93196fbb Polish ConditionMessage#because()
See gh-20847
2020-04-07 15:04:50 +02:00
Stephane Nicoll 5c69534827 Remove direct dependency on Kafka's IsolationLevel
Closes gh-20811
2020-04-03 16:27:40 +02:00
Stephane Nicoll f963180ab8 Polish 2020-04-03 10:05:05 +02:00
Madhura Bhave 577bc1ce88 Fix formatting 2020-04-02 21:51:49 -07:00
Madhura Bhave c2e95ee7ee Support both JWT and Opaque token configuration for resource server
Closes gh-19426
2020-04-02 19:16:34 -07:00
Madhura Bhave 8659102650 Add configuration options for SAML authentication requests
Closes gh-20584
2020-04-02 13:19:56 -07:00
Brian Clozel bbbf8c527d Polish
See gh-20205
2020-04-02 15:16:54 +02:00
wonwoo a7e57e0909 Configure codec buffer size in ES Reactive Rest client
This commit adds a new configuration property
`"spring.data.elasticsearch.client.reactive.max-in-memory-size"`
which configures the maximum amount of memory buffered by the
`WebClient` used by the Reactive ElasticSearch client.

See gh-20205
2020-04-02 15:14:38 +02:00
Stephane Nicoll 617786e06f Polish "Disable Hazelcast auto-configuration when Jet is present"
See gh-20729
2020-04-01 15:46:42 +02:00
Ali Gurbuz 002a7c6e87 Disable Hazelcast auto-configuration when Jet is present
See gh-20729
2020-04-01 15:30:14 +02:00
Stephane Nicoll dfac3a282b Add configuration to enable Redis Cluster topology refresh
This commit adds two options to enable a refresh of the cluster
topology using Lettuce.

Closes gh-15630
2020-04-01 14:31:29 +02:00
Stephane Nicoll 0616ecfa5c Make sure Liquibase works with only spring-jdbc on the classpath
This commit improves the Liquibase auto-configuration to only rely on
spring-jdbc when a `DataSource` should be created on-the-fly for the
purpose of its initialization.

Previously, a connection pool implementation must be added as well, now
we're fallbacking on `SimpleDriverDataSource` if necessary. This
improves the database initialization use case with R2DBC.

Closes gh-20715
2020-03-31 13:10:37 +02:00
Andy Wilkinson c282f76633 Merge branch '2.2.x'
Closes gh-20741
2020-03-31 11:59:22 +01:00
dreis2211 798e21fd3e Polish GroovyTemplateAutoConfiguration
See gh-20708
2020-03-31 11:58:49 +01:00
Stephane Nicoll fd05bc2a4a Expose MongoDB's replica set name
Closes gh-20391
2020-03-30 15:39:24 +02:00
Stephane Nicoll 722d37468b Rationalize RabbitProperties
Closes gh-18830
2020-03-30 15:04:52 +02:00
dreis2211 674f1e77b5 Fix typos
See gh-20704
2020-03-28 08:42:59 +01:00
Stephane Nicoll 7a64b3f761 Restore Cassandra port option
This commit restores the port option that was removed in an earlier
milestone. Contact points that do not define a port already are
automatically transformed to include the one configured, with a default
matching Cassandra's default port.

This makes upgrades easier in the case a cluster uses consistent ports
everywhere.

Closes gh-19672
2020-03-27 12:20:40 +01:00
Madhura Bhave b66ca0016a Merge branch '2.2.x' 2020-03-26 16:35:01 -07:00
Madhura Bhave 042a02e0da Update copyright of changed files 2020-03-26 16:34:52 -07:00
Madhura Bhave 3ad1aa7b32 Merge branch '2.2.x'
Closes gh-20694
2020-03-26 16:23:00 -07:00
Anastasiia Losieva a55c3e4ab7 Use jws-algorithm property in ReactiveOAuth2ResourceServerJwkConfiguration
See gh-20681
2020-03-26 16:20:31 -07:00
Stephane Nicoll ff15d136db Merge branch '2.2.x'
Closes gh-20687
2020-03-26 10:42:31 +01:00
Stephane Nicoll ab01c55d8e Deprecate use of path extensions for request mapping and content negotiation
Closes gh-20528
2020-03-26 10:41:08 +01:00
Stephane Nicoll b3517a0771 Merge branch '2.2.x'
Closes gh-20671
2020-03-25 11:37:44 +01:00
Stephane Nicoll 009361d38c Merge branch '2.1.x' into 2.2.x
Closes gh-20670
2020-03-25 11:34:51 +01:00
Stephane Nicoll 18353231a0 Do not fail if "spring.datasource.url" cannot be resolved
Previously, a condition checked the value of "spring.datasource.url" to
determine if an embedded database has to be created as a fallback. When
the value is set with an unresolved placeholder, this fails even if
the DataSource is going to created by another mean ultimately.

This commit makes a more conservative check by only checking the
presence of the property rather than its value.

Closes gh-20438
2020-03-25 11:25:47 +01:00
Brian Clozel 87de8a5e15 Fix checkstyle issue 2020-03-24 23:11:05 +01:00
Brian Clozel cbe83f8db5 Make base path configurable for WebFlux applications
This commit adds the `"spring.webflux.base-path"` configuration
property. Configuring this property will gather all `HttpHandlers` into
a single composite and prefix all requests with a shared base path.

Closes gh-10129
2020-03-24 22:19:19 +01:00
Stephane Nicoll 97bf3ecf1c Polish "Migrate off deprecated Spring Data Cassandra API"
See gh-20662
2020-03-24 18:28:33 +01:00
Mark Paluch 8355d30456 Migrate off deprecated Spring Data Cassandra API
Configure UserTypeResolver and CodecRegistry on
MappingCassandraConverter. Configure on CassandraMappingContext only the
simple type holder instead of custom conversions.

See gh-20662
2020-03-24 18:28:33 +01:00
Phillip Webb 9a33a723fe Update copyright year of changed files 2020-03-23 14:15:08 -07:00
Phillip Webb 16b5ea3414 Update copyright year of changed files 2020-03-23 14:13:33 -07:00
Stephane Nicoll 1a9065f46f Merge branch '2.2.x'
Closes gh-20621
2020-03-23 14:38:03 +01:00
Stephane Nicoll 8f265f8d57 Polish "Fix @FlywayDataSource with multiple data sources"
See gh-20617
2020-03-23 14:37:23 +01:00
Shimbo Takaaki 2410d6bbd1 Fix @FlywayDataSource with multiple data sources
See gh-20617
2020-03-23 14:25:57 +01:00
Stephane Nicoll ec8d2c5843 Merge branch '2.2.x'
Closes gh-20616
2020-03-23 12:57:00 +01:00
Stephane Nicoll 39b965e1fd Merge branch '2.1.x' into 2.2.x
Closes gh-20615
2020-03-23 12:55:44 +01:00
Stephane Nicoll f5761bd508 Auto-configure listener container factory without consumer factory
Previously, the presence of a `ConsumerFactory` bean would make the
auto-configured one to back off, leading to a failure down the line if
no available instance matches the generics criterion. This commit
improves the auto-configuration to create a `ConsumerFactory<?,?>`
behind the scenes if none is available.

Closes gh-19221
2020-03-23 12:52:33 +01:00
Stephane Nicoll 3735771f9c Merge branch '2.2.x'
Closes gh-20612
2020-03-23 11:17:52 +01:00
Stephane Nicoll 08a89b6288 Polish "Configure signature algorithm when using public key jwt decoder"
See gh-20523
2020-03-23 11:17:22 +01:00
Michael Kreis 69e33d6e62 Configure signature algorithm when using public key jwt decoder
See gh-20523
2020-03-23 10:56:59 +01:00
dreis2211 ef9f1d39a3 Remove redundant MockitoAnnotations.initMocks()
See gh-20601
2020-03-22 08:43:50 +01:00
Brian Clozel ffdf9a422f Polish Liveness and Readiness support
This commit moves the core Liveness and Readiness support to its own
`availability` package. We've made this a core concept independent of
Kubernetes.

Spring Boot now produces `LivenessStateChanged` and
`ReadinessStateChanged` events as part of the typical application
lifecycle.

Liveness and Readiness Probes (`HealthIndicator` components and health
groups) are still configured only when deployed on Kubernetes.

This commit also improves the documentation around Probes best practices
and container lifecycle considerations.

See gh-19593
2020-03-20 23:54:00 +01:00
Stephane Nicoll 579a6ac254 Adapt tests for support for Java 14
See gh-20576
2020-03-19 14:54:33 +01:00
Brian Clozel fd0b2f6695 Add Kubernetes Liveness and Readiness Probes support
Prior to this commit and as of Spring Boot 2.2.0, we would advise
developers to use the Actuator health groups to define custom "liveness"
and "readiness" groups and configure them with subsets of existing
health indicators.

This commit addresses several limitations with that approach.

First, `LivenessState` and `ReadinessState` are promoted to first class
concepts in Spring Boot applications. These states should not only based
on periodic health checks. Applications should be able to track changes
(and adapt their behavior) or update states (when an error happens).

The `ApplicationStateProvider` can be injected and used by applications
components to get the current application state. Components can also
track specific `ApplicationEvent` to be notified of changes, like
`ReadinessStateChangedEvent` and `LivenessStateChangedEvent`.
Components can also publish such events with an
`ApplicationEventPublisher`. Spring Boot will track startup event and
application context state to update the liveness and readiness state of
the application. This infrastructure is available in the
main spring-boot module.

If Spring Boot Actuator is on the classpath, additional
`HealthIndicator` will be contributed to the application:
`"LivenessProveHealthIndicator"` and `"ReadinessProbeHealthIndicator"`.
Also, "liveness" and "readiness" Health groups will be defined if
they're not configured already.

Closes gh-19593
2020-03-19 14:11:00 +01:00
Stephane Nicoll 5893786cbb Polish "Add 'threads' configuration group for embedded containers"
See gh-19475
2020-03-19 13:13:45 +01:00
cbono 208f58104a Add 'threads' configuration group for embedded containers
See gh-19475
2020-03-19 12:12:11 +01:00
dreis2211 7924dd62b0 Add security.protocol to KafkaProperties
See gh-20360
2020-03-19 10:36:20 +01:00
Stephane Nicoll f470f27666 Merge branch '2.2.x'
Closes gh-20549
2020-03-17 18:15:19 +01:00
dreis2211 d9171d0afe Use @Configuration(proxyBeanMethods=false) wherever possible
See gh-20541
2020-03-17 17:17:38 +01:00
Stephane Nicoll 58eb0ba4d3 Add additional timeout settings
This commit expands the `spring.couchbase.env.timeouts` configuration
namespace with timeouts for disconnect, key-value operations with a
durability level, search, analytics and management.

Closes gh-19893

Co-authored-by: Michael Nitschinger <michael@nitschinger.at>
2020-03-17 17:00:34 +01:00
Stephane Nicoll abe43b2e83 Upgrade to Couchbase SDK v3
This commit upgrades to the Couchbase SDK v3 which brings the following
breaking changes:

* Bootstrap hosts have been replaced by a connection string and the
authentication is now mandatory.
* A `Bucket` is no longer auto-configured. The
`spring.couchbase.bucket.*` properties have been removed
* `ClusterInfo` no longer exists and has been replaced by a dedicated
API on `Cluster`.
* `CouchbaseEnvironment` no longer exist in favour of
`ClusterEnvironment`, the customizer has been renamed accordingly.
* The bootstrap-related properties have been removed. Users requiring
custom ports should supply the seed nodes and initialize a Cluster
themselves.
* The endpoints-related configuration has been consolidated in a
single IO configuration.

The Spring Data Couchbase provides an integration with the new SDK. This
leads to the following changes:

* A convenient `CouchbaseClientFactory` is auto-configured.
* Repositories are configured against a bucket and a scope. Those can
be set via configuration in `spring.data.couchbase.*`.
* The default consistency property has been removed in favour of a more
flexible annotation on the repository query methods instead. You can now
specify different query consistency on a per method basis.
* The `CacheManager` implementation is provided, as do other stores for
consistency so a dependency on `couchbase-spring-cache` is no longer
required.

See gh-19893

Co-authored-by: Michael Nitschinger <michael@nitschinger.at>
2020-03-17 17:00:09 +01:00
Stephane Nicoll e3899df22c Configure Spring Data Couchbase explicitly
This commit configures Spring Data Couchbase explicitly rather than
relying on the abstract configuration class. This has the advantage of
simplifying the auto-configuration and let it us proxy-free
configuration classes.

Spring Boot no longer uses or interacts with CouchbaseConfigurer. Users
relying on that to teach Spring Boot which components to use should
rely on `@Primary` flag instead in case of multiple beans of the same
type.

`CouchbaseConfiguration` is no longer public as extending from it is
no longer necessary. If the `CouchbaseEnvironment` has to be
customized, a `CouchbaseEnvironmentBuilderCustomizer` bean can be
registered to tune the auto-configured environment.

Closes gh-20533
2020-03-17 16:20:21 +01:00
dreis2211 5975e7bd8d Fix some deprecation warnings
See gh-20527
2020-03-15 16:33:47 +01:00
Andy Wilkinson 77dbe999b9 Polish "Add clearChecksums to Liquibase auto-configuration"
See gh-20417
2020-03-11 17:14:38 +00:00
ferengra a2680efadb Add clearCheckSums to Liquibase auto configuration
Liquibase auto configuration is extended with clearCheckSums to allow
to clear all checksums in the current changelog, so they will be
recalculated upon the next update.

See gh-20417
2020-03-11 17:11:43 +00:00
Andy Wilkinson c917b61484 Reinstate leading / in default value for spring.liquibase.change-log
Unfortunately, while redundant for new applications, removing the
leading slash adversely affected existing application upon upgrades as
it caused Liquibase to re-apply every change log.

Closes gh-20177
2020-03-10 21:22:27 +00:00
Andy Wilkinson d2ebd77861 Upgrade to Flyway 6.3.0
Closes gh-20445
2020-03-10 15:38:45 +00:00
Andy Wilkinson 308e1d3675 Add support for gracefully shutting down the web server
This commit adds support for gracefully shutting down the embedded
web server. When a grace period is configured
(server.shutdown.grace-period), upon shutdown, the web server will no
longer permit new requests and will wait for up to the grace period
for active requests to complete.

Closes gh-4657
2020-03-09 18:12:20 +00:00
dreis2211 9481f2c68d Remove hardcoded version from VersionOverridingElasticsearchContainer
See gh-20428
2020-03-09 18:33:47 +01:00
dreis2211 6036df5f33 Upgrade to Elasticsearch 7.6.1
See gh-20423
2020-03-08 13:30:06 +01:00
Stephane Nicoll e5394ceac2 Polish "Handle new Annotation.toString() behaviour in JDK 14"
See gh-20180
2020-03-07 16:55:02 +01:00
dreis2211 e22aca85e9 Handle new Annotation.toString() behaviour in JDK 14
See gh-20180
2020-03-07 16:34:40 +01:00
Stephane Nicoll 89805fdb61 Fix checkstyle violations 2020-03-04 15:04:47 +01:00
Stephane Nicoll aa4dad1d73 Polish "Allow Embedded directory to be used without spring-data-ldap"
See gh-20223
2020-03-04 14:46:04 +01:00
Frank Schmager a92c57c07d Allow Embedded directory to be used without spring-data-ldap
See gh-20223
2020-03-04 10:09:34 +01:00
Brian Clozel ea45d8ef25 Fix "spring.integration.rsocket" canonical name
See gh-18834
2020-03-03 15:50:43 +01:00
Artem Bilan 3967e76b9b Auto-Configure RSocket support for Spring Integration
This commit adds a new auto-configuration for RSocket support in Spring
Integration.

Given an application with `spring-messaging`, `spring-integration-rsocket`
and RSocket dependencies, developers are now able to leverage Spring
Integration features with RSocket.

It is now possible to configure an RSocket server with
`"spring.rsocket.server.*"` properties and let it use
`IntegrationRSocketEndpoint` or `RSocketOutboundGateway` components to
handle incoming RSocket messages. This infrastructure can handle Spring
Integration RSocket channel adapters and `@MessageMapping` handlers
(given `"spring.integration.rsocket.server.message-mapping-enabled"`is
configured.

If the `"spring.integration.rsocket.client.host"` and
`"spring.integration.rsocket.client.port"` (for TCP protocol), or
`"spring.integration.rsocket.client.uri"`  (for WebSocket) is configured
then a `ClientRSocketConnector` will be configured accordingly.

Closes gh-18834

Co-authored-by: Brian Clozel <bclozel@pivotal.io>
2020-03-03 15:15:24 +01:00
Johnny Lim 98738d22f4 Polish tests
See gh-20318
2020-02-28 09:36:19 -05:00
Stephane Nicoll 19fbac7d59 Add auto-configuration for Spring Data R2DBC
This commit adds auto-configuration support for Spring Data R2DBC. If a
`ConnectionFactory` and Spring Data are available, scanning of reactive
repositories is enabled.

This commit also adds a starter to bring R2DBC and the necessary Spring
Data libraries.

See gh-19988

Co-authored-by: Mark Paluch <mpaluch@pivotal.io>
Co-authored-by: Oliver Drotbohm <odrotbohm@pivotal.io>
2020-02-25 09:14:08 -05:00
Stephane Nicoll 5c174feb65 Add auto-configuration for R2DBC's ConnectionFactory
This commit adds auto-configuration for R2DBC. If R2DBC is on the
classpath, a `ConnectionFactory` is created similarly to the algorithm
used to create a `DataSource`.

If an url is specified, it is used to determine the R2DBC driver and
database location. If not, an embedded database is started (with only
support of H2 via r2dbc-h2). If none of those succeed, an exception is
thrown that is handled by a dedicated FailureAnalyzer.

To clearly separate reactive from imperative access, a `DataSource` is
not auto-configured if a `ConnectionFactory` is present. This makes sure
that any auto-configuration that relies on the presence of a
`DataSource` backs off.

There is no dedicated database initialization at the moment but it is
possible to configure flyway or liquibase to create a local `DataSource`
for the duration of the migration. Alternatively, if Spring Data R2DBC
is on the classpath, a `ResourceDatabasePopulator` bean can be defined
with the scripts to execute on startup.

See gh-19988

Co-authored-by: Mark Paluch <mpaluch@pivotal.io>
2020-02-25 09:12:28 -05:00
Stephane Nicoll 402eb87847 Upgrade to Tomcat 9.0.31
Closes gh-20277
2020-02-21 14:33:22 +01:00
Stephane Nicoll a7f3b801ae Upgrade to Sendgrid 4.4.5
Closes gh-20268
2020-02-21 14:33:15 +01:00
Stephane Nicoll a039f6328d Start building against Spring Framework 5.2.4 snapshots
See gh-20240
2020-02-20 14:29:15 +01:00
Stephane Nicoll 67d2258e76 Start building against Spring Framework 5.2.4 snapshots
See gh-20199
2020-02-20 14:24:55 +01:00
Scott Frederick 8f84dbe3cf Harmonize MongoDB client factories
This commit brings MongoClientFactory and ReactiveMongoClientFactory
into functional alignment and reduces duplication in the classes
and their tests.

There are no behavior changes to ReactiveMongoClientFactory.
MongoClientFactory now throws an exception when a URI is configured
along with a host, port, or credentials, where it previousy ignored
host, port, and credentials silently. MongClientFactory now also
supports MongoClientSettingsBuilderCustomizers.

Fixes gh-20019
2020-02-19 10:15:40 -06:00
Stephane Nicoll d65e06081f Update copyright year of changed files
See gh-20226
2020-02-19 09:35:28 +01:00
Johnny Lim 8be8a8421d Polish
See gh-20226
2020-02-19 09:34:46 +01:00
Stephane Nicoll 287d577aea Merge branch '2.2.x'
Closes gh-20218
2020-02-18 16:59:52 +01:00
Stephane Nicoll 1d60184075 Merge branch '2.1.x' into 2.2.x
Closes gh-20217
2020-02-18 16:58:46 +01:00
Stephane Nicoll 2147976c17 Do not fallback to embedded configuration if a datasource url is set
This commit makes sure that a fallback embedded datasource is not
created if no suitable connection pool is found and an url has been
explicitly registered.

This is consistent with EmbeddedDataSourceConfiguration as it is using
EmbeddedDatabaseBuilder behind the scenes and the latter does not
honour the configured URL anyway.

Closes gh-19192
2020-02-18 16:27:31 +01:00
Stephane Nicoll 4bcf4245d1 Polish "Add support for configuring Liquibase tag property"
See gh-19316
2020-02-17 09:53:59 +01:00
Eddú Meléndez 407e237f10 Add support for configuring Liquibase tag property
See gh-19316
2020-02-17 09:46:42 +01:00
Stephane Nicoll b56c4f1a4d Polish "Add support for configuring Jetty's backing queue"
See gh-19494
2020-02-14 14:54:28 +01:00
cbono 852734b129 Add support for configuring Jetty's backing queue
See gh-19494
2020-02-14 14:01:06 +01:00
Stephane Nicoll 2ede9e63b9 Merge branch '2.1.x' into 2.2.x
Closes gh-20117
2020-02-14 10:20:33 +01:00
Stephane Nicoll 32c1dd45a9 Revert "Merge pull request #19926 from xak2000"
Closes gh-19926
2020-02-14 10:18:02 +01:00
Andy Wilkinson 09fa8255cd Upgrade to Tomcat 9.0.31
Closes gh-20167
2020-02-13 20:17:18 +00:00
Stephane Nicoll faaf9a7e0c Upgrade to SendGrid 4.4.4
Closes gh-20092
2020-02-13 13:49:56 +01:00
dreis2211 23bf948101 Upgrade to Asciidoctor Gradle JVM 3.0.0
See gh-19953
2020-02-13 09:42:17 +00:00
Stephane Nicoll 00b10e655e Merge branch '2.2.x'
Closes gh-20125
2020-02-11 16:27:33 +01:00
Stephane Nicoll 8f06d819e4 Harmonize JMS connection factory bean names
This commit restores consistent naming for the auto-configured
connection factory.

Closes gh-19565
2020-02-11 16:23:56 +01:00
Stephane Nicoll 466c1ba251 Merge branch '2.2.x'
Closes gh-20118
2020-02-11 10:31:03 +01:00
Stephane Nicoll a425cc1b46 Merge branch '2.1.x' into 2.2.x
Closes gh-20117
2020-02-11 10:30:19 +01:00
Ruslan Stelmachenko 5f7e1ac4f2 Remove unnecessary leading slash in changelog locations
See gh-19926
2020-02-11 10:14:49 +01:00
Stephane Nicoll 32bd845a7d Merge branch '2.2.x'
Closes gh-20116
2020-02-11 09:31:03 +01:00
Stephane Nicoll 66809c6c1e Polish "Fix condition source in OnBeanCondition"
See gh-19948
2020-02-11 09:27:59 +01:00
Jorge Cordoba 547fc30ead Fix condition source in OnBeanCondition
See gh-19948
2020-02-11 09:10:07 +01:00
dreis2211 aa0360e1ba Fix some deprecation warnings
See gh-20108
2020-02-10 15:28:30 +01:00
Stephane Nicoll ddcf5966bb Disable Spring Data Neo4j's open session in view by default
Closes gh-20012
2020-02-10 12:28:25 +01:00
Stephane Nicoll 77bdf992ec Polish "Create HazelCastClient if necessary"
See gh-20109
2020-02-10 11:41:10 +01:00
Dmytro Nosan 67dd9ad537 Create HazelCastClient if necessary
This commit makes sure to create a HazelcastClient if an instance name
is provided in configuration and if no such client already exists. This
harmonizes the behaviour with of the server counter-part.

See gh-20109
2020-02-10 11:39:55 +01:00
Stephane Nicoll aa56a6f647 Add missing mockito dependency
Closes gh-20097
2020-02-07 16:48:44 +01:00
Stephane Nicoll b5e23e7405 Update copyright year of changed files
See gh-20020
2020-02-03 17:39:40 +01:00
Johnny Lim b67ece48e4 Polish
See gh-20020
2020-02-03 17:37:01 +01:00
Stephane Nicoll 5833d2c5e8 Fix Embedded Mongo classpath check
This commit changes the classpath check condition to verify that the
core module of the MongoDB driver is present. Previously, we were only
checking for the presence of the sync driver, making embedded support
unavailable with the reactive variant.

Closes gh-19960
2020-02-03 16:06:30 +01:00
Stephane Nicoll c4daff7225 Polish "Upgrade to MongoDB Java Driver 4.0 beta1"
See gh-19960
2020-02-03 14:12:46 +01:00
Christoph Strobl d2d6dbdc00 Upgrade to MongoDB Java Driver 4.0 beta1
See gh-19960
2020-02-03 10:59:30 +01:00
Andy Wilkinson 886e7ba38c Merge branch '2.2.x'
Closes gh-19989
2020-01-30 15:10:35 +00:00
Andy Wilkinson a37c170376 Try to make CouchbaseAutoConfigurationIntegrationTests less flakey
Closes gh-19932
2020-01-30 15:10:13 +00:00
dreis2211 fac6f08ca3 Use new AssertJ duration assertions
See gh-19985
2020-01-30 08:14:49 +01:00
Stephane Nicoll b6c5c3a113 Polish
See gh-19802
2020-01-28 18:22:28 +01:00
Stephane Nicoll eb852f1ad6 Disable bean overriding by default in ApplicationContextRunner
For consistency with SpringApplication, this commit disables bean
overriding by default in ApplicationContextRunner. Bean overriding can
be enabled again using withAllowBeanDefinitionOverriding.

Closes gh-18019
2020-01-28 15:57:28 +01:00
Stephane Nicoll 0516520b7e Polish "Fix scope of CqlSessionBuilder bean"
See gh-19899
2020-01-28 14:12:31 +01:00
Dmytro Nosan c8105413b9 Fix scope of CqlSessionBuilder bean
See gh-19899
2020-01-28 13:49:20 +01:00
Stephane Nicoll 83b38599b1 Apply consistent timeout for Cassandra integration tests
Closes gh-19802
2020-01-28 10:46:47 +01:00
Madhura Bhave 84ea3d359b Increase timeout for Cassandra tests
Closes gh-19802
2020-01-27 16:37:50 -08:00
Stephane Nicoll ed14173865 Polish "Upgrade to Flyway 6.2.0"
See gh-19894
2020-01-27 15:20:08 +01:00
Kedar Joshi 0ae075efd5 Upgrade to Flyway 6.2.0
See gh-19894
2020-01-27 14:56:04 +01:00
Stephane Nicoll f0e93f0e1d Migrate Couchbase tests to ApplicationContextRunner 2020-01-27 13:52:49 +01:00
Stephane Nicoll a1e6a20915 Simplify default value for Spring Data Couchbase's typeKey
This commit hard codes the default value so that the annotation
processor picks it up. The default value is tested for consistency so
this is acceptable as providing the default value in the metadata
requires to hard code it anyway.
2020-01-27 13:52:49 +01:00
Stephane Nicoll af4fdf0d6d Polish "Add support for Spring Data Couchbase custom type key"
See gh-19789
2020-01-27 11:09:41 +01:00
Grudi Radev d1a44dfacd Add support for Spring Data Couchbase custom type key
See gh-19789
2020-01-27 11:08:40 +01:00
Stephane Nicoll 142a0cbb85 Fix warnings in spring-boot-autoconfigure's Kotlin test code
Closes gh-19877
2020-01-24 10:48:11 +01:00
Stephane Nicoll 0a6fa64ff9 Fix default value for spring.data.couchbase.contact-points
See gh-18621
2020-01-23 18:22:40 +01:00
Stephane Nicoll df7b3839a1 Add local-datacenter property for Cassandra
The Cassandra v4 driver does not longer have automatic local DC inference
from contact points. As a result, the "local-datacenter" property must be
set with the default load balancing policy and the contact points must
be of that data center.

This commit adds a new property for the local datacenter so that it can
be specified without the use of a customizer.

Closes gh-19779
2020-01-23 18:16:05 +01:00
Stephane Nicoll 95be419527 Use Class.forName rather than ClassLoader.loadClass
This commit changes uses of ClassLoader.loadClass to Class.forName for
consistency with what was initiated in #19342 and better compatibility
with GraalVM.

Closes gh-19824
2020-01-23 10:47:53 +01:00
Scott Frederick 462f5635d6 Reinstate JobLauncherCommandLineRunner
This class was mistakenly marked as deprecated in 2.2.0 instead of deprecated
in 2.3.0. This resulted in the class being deleted as part of the 2.3.0
cleanup.

Putting it back in place now with the correct deprecation noted.

Closes gh-19861
2020-01-22 18:48:55 -06:00
Phillip Webb e0013454b5 Use parentheses when declaring dependencies
Update all dependencies declarations to use the form `scope(reference)`
rather than `scope reference`.

Prior to this commit we declared dependencies without parentheses unless
we were forced to add them due to an `exclude`.
2020-01-22 16:02:38 -08:00
Phillip Webb 0209cd3e4c Polish quote form used in Gradle scripts
Replace Gradle single quote strings with the double quote form
whenever possible. The change helps to being consistency to the
dependencies section where mostly single quotes were used, but
occasionally double quotes were required due to `${}` references.
2020-01-22 15:49:52 -08:00
Scott Frederick ed6fbc6bec Remove Spring Cloud Connectors auto-config/starter
The Spring Cloud Connectors project has been deprecated in favor of the
Java CFEnv project. The Boot auto-configuration and starter that support
Connectors were deprecated in Boot 2.2.

This commit removes the Connectors auto-configuration, starter,
and dependency management.

Closes gh-19798
2020-01-22 17:06:32 -06:00
Scott Frederick 9ff50f903f Default spring.datasource.generate-unique-name to true
This change ensures that each test in a test suite that shares an
application context gets a unique embedded database, to prevent
inconsistent embedded database state between tests.

Closes gh-16747
2020-01-22 15:41:40 -06:00
Scott Frederick 288889685d Change default BootstrapMode for JPA repositories
Change the default `BootstrapMode` for auto-configured `JpaRepositories`
to `BootstrapMode.DEFERRED` to allow the initialization of
`EntityManagerFactory` to be parallelized for increased startup efficiency.

Prior to this change, the default BootstrapMode for all auto-configured
Spring Data repositories was `BootstrapMode.DEFAULT`.

Closes gh-16230
2020-01-22 10:55:51 -08:00
Stephane Nicoll 4d70f58bc8 Polish "Upgrade to Infinispan 10.1.1.Final"
See gh-19790
2020-01-21 14:53:09 +01:00
Scott Frederick c4592e7df8 Remove deprecated Joda-Time support
See gh-19699
2020-01-16 14:48:46 +01:00
Scott Frederick 8f102aee68 Remove deprecated 2.2 code
See gh-19699
2020-01-16 14:44:52 +01:00
Andy Wilkinson 443d1a6a21 Upgrade to Liquibase 3.8.5
Closes gh-19754
2020-01-15 15:09:58 +00:00
Andy Wilkinson 714a187d8f Rework dep mgmt again to avoid consumers picking up strict constraints
This paves the way for publishing Gradle module metadata once the
problem caused by snapshot versions and our two-step publication
process has been addressed.

See gh-19609
2020-01-15 12:33:18 +00:00
Stephane Nicoll dee71f064b Harmonize Cassandra bean names 2020-01-14 15:22:16 +01:00
Andy Wilkinson aefe52e4d0 Revert "Rework dep management to avoid consumers picking up strict constraints"
This reverts commit b34a311d02 as,
having disabled the publishing of Gradle's module metadata (4f75ab5),
the changes are no longer needed.

See gh-19609
2020-01-14 12:15:53 +00:00
Stephane Nicoll 246f5ce8eb Polish Cassandra v4 support 2020-01-14 12:25:44 +01:00
Brian Clozel 711391cf2f Move spring.http.* config properties namespace
Closes gh-18827
2020-01-14 10:45:31 +01:00
Stephane Nicoll 7f6b01c3d2 Make sure Redis cache prefix includes cache name
This commit maps 'spring.cache.redis.key-prefix' to the new
'prefixCacheNameWith' method introduced in Spring Data Neumann. This
makes sure that the configured prefix includes the cache name.

Closes gh-16676
2020-01-14 09:09:33 +01:00
Phillip Webb 862462b791 Update copyright year of changed files 2020-01-13 17:04:19 -08:00
Phillip Webb 1e5ba09a3e Merge branch '2.2.x' 2020-01-13 17:03:51 -08:00
Phillip Webb 15652ae4c1 Update copyright year of changed files 2020-01-13 16:47:17 -08:00
Phillip Webb 3cfbfebbb1 Merge branch '2.1.x' into 2.2.x 2020-01-13 16:45:40 -08:00
Phillip Webb 9bd49562fe Update copyright year of changed files 2020-01-13 14:09:11 -08:00
Scott Frederick c789592e26 Remove support for deprecated Elasticsearch Jest client
Closes #19676
2020-01-13 21:03:12 +01:00
Andy Wilkinson b34a311d02 Rework dep management to avoid consumers picking up strict constraints
Previously, enforcedPlatform dependencies were using to pull in the
constraints defined in spring-boot-dependencies and
spring-boot-parent and applied them strictly so that the constrained
version had to be used. This worked as intended in Spring Boot's own
build but incorrectly enforced those same strict version requirements
on external consumers of Spring Boot's modules.

This commit reworks how Spring Boot defines its internal dependency
management so that platform dependencies are exposed to external
consumers while enforced platform dependencies are using internally.

See gh-19609
2020-01-13 19:59:56 +00:00
Stephane Nicoll 405b9b7f93 Merge branch '2.2.x'
Closes gh-19693
2020-01-13 18:50:46 +01:00
dreis2211 852659684b Fix typo in NoSuchBeanDefinitionFailureAnalyzer exception
See gh-19690
2020-01-13 18:48:35 +01:00
Brian Clozel b780e5247c Remove support for Elasticsearch transport client
The Elasticsearch transport client has been deprecated since Spring Boot
2.2.0 and is about to be removed from Spring Data Elasticsearch and
Elasticsearch itself in their next major releases.

The available REST client support variants are now the preferred way of
using Elasticsearch features.

Closes gh-19668
2020-01-13 16:00:18 +01:00
Stephane Nicoll ca1710ee56 Upgrade to Apache Cassandra 4.3.1
See gh-19588
2020-01-13 15:12:41 +01:00
Stephane Nicoll d282eb619f Upgrade to Elasticsearch 7.5.1
See gh-19588
2020-01-13 15:12:41 +01:00
Brian Clozel 0f567c879d Auto-configure HTTP client builders as Lazy
Prior to this commit, HTTP client builders auto-configured by Spring
Boot would be eagerly instantiating resources, even if those were not
used by the application.

This commit makes the `RestTemplateBuilder` bean as Lazy.
`WebClient.Builder` was already a prototype bean, but some of its
dependencies could consume resources, like the `HttpClientConnector` and
the related infrastructure. This commit makes those pieces lazy.

Note that since those components are meant to help instantiate actual
HTTP clients for application components, making them lazy won't make any
difference at runtime since they'll be used during context refresh, or
they won't be used at all.

Closes gh-19549
2020-01-10 22:15:29 +01:00
Andy Wilkinson ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
2020-01-10 14:15:35 +00:00
Madhura Bhave 6d0b4351f4 Merge branch '2.2.x'
Closes gh-19582
2020-01-08 13:54:13 -08:00
Madhura Bhave 437941cc51 Improve diagnostics when using `@ConstructorBinding` on a Kotlin class
Closes gh-19312
2020-01-08 13:53:47 -08:00
Stephane Nicoll e5c1f3133a Harmonize cassandra tests 2020-01-08 14:57:52 +01:00
Stephane Nicoll 6ced89490c Polish 2020-01-08 14:34:33 +01:00
Stephane Nicoll bc066d279b Polish cassandra tests
See gh-18019
2020-01-08 14:22:48 +01:00
Andy Wilkinson 10ba17c390 Merge branch '2.2.x'
Closes gh-19571
2020-01-08 11:44:40 +00:00
Andy Wilkinson 6d8f07d899 Merge branch '2.1.x' into 2.2.x
Closes gh-19570
2020-01-08 11:42:56 +00:00
Andy Wilkinson bdffa860d9 Increase startup timeout for Docker containers
Closes gh-19569
2020-01-08 11:39:36 +00:00
Madhura Bhave c9ad3564d9 Merge branch '2.2.x'
Closes gh-19562
2020-01-07 14:29:45 -08:00
Madhura Bhave 82dc7bcc90 HypermediaAutoConfiguration should back off when Spring MVC absent
Fixes gh-19392
2020-01-07 14:28:58 -08:00
Madhura Bhave 87dd11502a Refactor HypermediaAutoConfigurationTests 2020-01-07 14:28:09 -08:00
Brian Clozel 2f78c72f92 Avoid 406 Not Acceptable for error pages
Prior to this commit, the `ErrorController` would override the original
error response status if the error map cannot be written due to content
negotiation with the HTTP client. In that case, the error handling
infrastructure returns a `406 Not Acceptable` response.

This commit improves the `ErrorController` so that
`HttpMediaTypeNotAcceptableException` instances thrown by that
controller are not returned as is but instead we write the error
response with an empty body and the original HTTP error status.

Fixes gh-19545
See gh-19522
2020-01-06 18:08:35 +01:00
Stephane Nicoll ee7555750e Add ComponentScan#nameGenerator alias on @SpringBootApplication
This commit allows to customize the default BeanNameGenerator for
scanned components using @SpringBootApplication.

Closes gh-19346
2020-01-06 16:33:38 +01:00
Madhura Bhave bb55bad170 Merge branch '2.2.x'
Closes gh-19529
2020-01-03 14:27:31 -08:00
Madhura Bhave c12a3f4172 Support explicitly setting forward headers strategy to NONE
Prior to this commit, there was no distinction between explicitly setting
forward headers strategy to a value of NONE and not setting it at all.
This meant that in a cloud environment, a cloud provider was always checked
to see if it was active and using forward headers and there was no way to
prevent that.

This commit changes the default value of the property to null so that there
is a way to determine if the property was explicitly set to NONE.

Fixes gh-19333
2020-01-03 14:19:48 -08:00
Brian Clozel cc154bbefb Avoid 406 Not Acceptable for error pages
Prior to this commit, the `ErrorController` would override the original
error response status if the error map cannot be written due to content
negotiation with the HTTP client. In that case, the error handling
infrastructure returns a `406 Not Acceptable` response.

This commit improves the `ErrorController` so that
`HttpMediaTypeNotAcceptableException` instances thrown by that
controller are not returned as is but instead we write the error
response with an empty body and the original HTTP error status.

Fixes gh-19522
2020-01-03 14:51:53 +01:00
Brian Clozel c2f8741e2e Merge branch '2.2.x'
Closes gh-19517
2020-01-03 09:46:43 +01:00
Brian Clozel 1320c44a25 Use RBAC credentials for Couchbase cluster info
Prior to this commit, the Couchbase auto-configuration would use the
bucket credentials when RBAC is configured. This commit ensures that
RBAC is used in that case.

This commit also adds new configuration properties to customize the
bootstrap ports for Couchbase:

* `spring.couchbase.env.bootstrap.http-direct-port`
* `spring.couchbase.env.bootstrap.http-ssl-port`

Fixes gh-19393
2020-01-03 09:45:44 +01:00
Stephane Nicoll c3ab4b875a Merge branch '2.2.x'
Closes gh-19504
2020-01-01 13:13:06 +01:00
Stephane Nicoll 7d36599343 Polish "Fix outdated reference in ArtemisConfigurationCustomizer javadoc"
See gh-19503
2020-01-01 13:11:39 +01:00
Ochieng Olanga c6f7d12270 Fix outdated reference in ArtemisConfigurationCustomizer javadoc
See gh-19503
2020-01-01 13:10:34 +01:00
Stephane Nicoll 6fc52b0563 Polish 2020-01-01 09:16:53 +01:00
Stephane Nicoll a9b0b78cb2 Upgrade to Flyway 6.1.3
Closes gh-19266
2019-12-31 10:47:41 +01:00
Victor Ferrer 1d900f67e7 FilteringSpringBootCondition uses Class.forName instead of classLoader
See gh-19490
2019-12-31 09:42:06 +01:00
Stephane Nicoll 61ae4fbc04 Merge branch '2.2.x' 2019-12-31 09:41:48 +01:00
Stephane Nicoll 1de30f0d00 Polish 2019-12-31 09:40:04 +01:00
Stephane Nicoll 3b6f21d997 Merge branch '2.2.x'
Closes gh-19486
2019-12-30 17:01:53 +01:00
Stephane Nicoll 07a21ec601 Harmonize property visibility in Saml2RelyingPartyProperties
Closes gh-19194
2019-12-30 16:53:23 +01:00
Stephane Nicoll 334f3e08ae Fix formatting 2019-12-30 15:08:50 +01:00
Stephane Nicoll 5f178db49b Polish test setup
This commit polishes a test configuration to avoid registering a mock
for the same bean twice.
2019-12-30 14:52:49 +01:00
Stephane Nicoll cf740add85 Fix component scan test setup
This commit fixes the setup of tests using component scan. Previously,
a configuration used an include filter to only include a particular
configuration class in a given package. Unfortunately, include filters
do not prevent regular filters by default and the definition did not
have the intended behaviour.

This commit disables default filters so that only the specified include
filter is applied.
2019-12-30 14:51:51 +01:00
Stephane Nicoll bb5e09882a Extract RabbitTemplate auto-configuration in a configurer
This commit movers the auto-configuration of RabbitTemplate to a
dedicated class that can be reused to create additional template with
similar settings.

CLoses gh-19440
2019-12-28 10:56:04 +01:00
Stephane Nicoll 015714c1d6 Merge branch '2.2.x'
See gh-19474
2019-12-28 10:52:30 +01:00
Stephane Nicoll 85667ba165 Merge branch '2.1.x' into 2.2.x
See gh-19473
2019-12-28 10:52:01 +01:00
Stephane Nicoll c0f1aaebb6 Fix Tomcat's maxConnections default value
Closes gh-19472
2019-12-28 10:51:42 +01:00
Stephane Nicoll 2c1e81adf0 Polish 2019-12-26 10:42:40 +01:00
Stephane Nicoll 5b1a622195 Harmonize class visibility
Closes gh-19414
2019-12-23 17:07:13 +01:00
Stephane Nicoll 58a28cf54c Merge branch '2.2.x'
Closes gh-19444
2019-12-23 16:54:57 +01:00
Stephane Nicoll c9bb17f444 Merge branch '2.1.x' into 2.2.x
Closes gh-19443
2019-12-23 16:54:29 +01:00
Stephane Nicoll c6dab447cd Fix visibility of inner classes of ServletWebServerFactoryConfiguration
Closes gh-19395
2019-12-23 16:44:52 +01:00
Stephane Nicoll 68dc850a82 Execute batch jobs with ApplicationRunner
This commit migrates JobLauncherCommandLineRunner to an
ApplicationRunner implementation. The latter allows to parse option
arguments (i.e. `--spring.something=value`) and makes it easy to ignore
arguments that are not meant to be passed to batch jobs.

Closes gh-19442
2019-12-23 16:19:28 +01:00
Johnny Lim 6efa98951d Polish LdapAutoConfigurationTests
See gh-19437
2019-12-23 08:53:10 +01:00
Stephane Nicoll 5031e6182b Merge branch '2.2.x'
Closes gh-19435
2019-12-22 08:53:13 +01:00
Filip Hrisafov bb5c151ee0 Disable SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS by default
See gh-19352
2019-12-22 08:52:07 +01:00
Stephane Nicoll fde06f4edd Merge branch '2.2.x'
Closes gh-19434
2019-12-22 08:44:47 +01:00
Stephane Nicoll 2171e7a425 Merge branch '2.1.x' into 2.2.x
Closes gh-19433
2019-12-22 08:44:18 +01:00
Tadaya Tsuyukubo 294267d2e0 Fix typo on ConditionMessage
See gh-19354
2019-12-22 08:40:43 +01:00
dreis2211 4b10462464 Fix compilation error
See gh-19423
2019-12-20 17:10:39 +00:00
Andy Wilkinson 7551a79e80 Merge branch '2.2.x'
Closes gh-19422
2019-12-20 15:55:16 +00:00
Andy Wilkinson ea00ab9919 Protect against NoSuchMethodError when deploying to old Tomcats
Fixes gh-19308
2019-12-20 15:53:08 +00:00
Stephane Nicoll aa821151bb Polish "Detect DirContextAuthenticationStrategy bean"
See gh-19328
2019-12-09 15:58:44 +01:00
Filip Hrisafov c108d2d011 Detect DirContextAuthenticationStrategy bean
This commit improves the LDAP auto-configuration to detect if a
DirContextAuthenticationStrategy bean is defined and, if so, associates
it with the auto-configured `LdapContextSource`.

See gh-19328
2019-12-09 15:58:25 +01:00
Stephane Nicoll 20bebdc07d Merge branch '2.2.x'
Closes gh-19331
2019-12-09 11:58:58 +01:00
dreis2211 b1158bf35d Simplify some Stream API usages
See gh-19291
2019-12-09 11:52:46 +01:00
dreis2211 c6c03e89a4 Remove code that is deprecated since 2.1.x
See gh-19189
2019-11-29 09:58:33 +00:00
Stephane Nicoll 8888f75a41 Polish "Add dedicated namespace for RemoteIpValve properties"
See gh-18489
2019-11-27 14:43:10 +01:00
Victor Mandujano 479cd8856b Add dedicated namespace for RemoteIpValve properties
See gh-18489
2019-11-27 14:07:44 +01:00
Stephane Nicoll cde9c2e853 Merge branch '2.2.x'
Closes gh-19161
2019-11-27 13:50:50 +01:00
Johnny Lim f234d9c0ec Remove ConditionEvaluationReportLoggingListener usage if possible
See gh-19159
2019-11-27 13:49:27 +01:00
Stephane Nicoll d2f256abe8 Polish "Add configuration for RabbitMQ requested channel max property"
See gh-19106
2019-11-27 10:36:56 +01:00
Franjo Zilic c043068578 Add configuration for RabbitMQ requested channel max property
See gh-19106
2019-11-27 10:01:03 +01:00
Stephane Nicoll a4ca1d02b3 Merge branch '2.1.x' into 2.2.x
Closes gh-19112
2019-11-25 13:59:45 +01:00
Stephane Nicoll 5d8fe860d7 Polish "Use ssl.enabled flag when RabbitMQ address has no protocol"
There is a direct link between the sslEnabled flag and the default port
that should be used by an address. The checks are currently set in two
places:

* Determine which port should be used
* Determine if SSL should be enabled

This commit polishes the initial proposal so that secureConnection is
only set if a protocol is available.

See gh-19109
2019-11-25 13:52:27 +01:00
cbono 2210236f82 Use ssl.enabled flag when RabbitMQ address has no protocol
See gh-19109
2019-11-25 11:16:56 +01:00
thelproad 65ab82b3cd Remove redundant code
See gh-19000
2019-11-23 12:01:19 +01:00
Brian Clozel 0c5bb60384 Fix responseCommitted test in webflux error handling
This commit updates the `responseCommitted` after changes were made in
`WebTestClient` with spring-projects/spring-framework#24051.

Fixes gh-19083
2019-11-22 20:58:38 +01:00
Stephane Nicoll 58bfbb92b9 Merge branch '2.1.x' into 2.2.x
Closes gh-19091
2019-11-21 14:38:09 +01:00
Adam Michalik c154a014a1 Remove invalid example of spring.mvc.async.request-timout property
See gh-19057
2019-11-21 14:13:22 +01:00
Brian Clozel 9fe721d75c Temporarily ignore failing error web handler test
See gh-19083
2019-11-21 11:07:23 +01:00
Stephane Nicoll 08067fb816 Polish "Remove reference to ConfigurationPropertiesScan in javadoc"
See gh-18920
2019-11-08 11:10:14 +01:00
wonwoo 92b00255a1 Remove reference to ConfigurationPropertiesScan in javadoc
See gh-18920
2019-11-08 11:09:57 +01:00
Stephane Nicoll d331f28222 Merge branch '2.1.x'
Closes gh-18885
2019-11-05 14:17:35 +01:00
Stephane Nicoll 4d1373c94d Polish "Support amqps:// URIs in spring.rabbitmq.addresses"
See gh-18808
2019-11-05 14:07:24 +01:00
Mark Pollack 0fedb24c6f Support amqps:// URIs in spring.rabbitmq.addresses
See gh-18808

Co-Authored-By: Bryan Kelly <xyloman@gmail.com>
2019-11-05 14:07:24 +01:00
Andy Wilkinson 49566edf6c Reduce visibility of test methods 2019-11-05 12:29:38 +00:00
Andy Wilkinson 63dd159935 Merge branch '2.1.x'
Closes gh-18878
2019-11-05 09:58:04 +00:00
Andy Wilkinson 69a95ce5c1 Allow dependsOn relationships created by post-processor to be overridden
Previously, AbstractDependsOnBeanFactoryPostProcessor was unordered
which meant that it was impossible to guarantee that another bean
factory post-processor would run after it. This prevented overriding
of the dependsOn relationships that is creates.

This commit updates AbstractDependsOnBeanFactoryPostProcessor to give
it a default order of zero. This will allow additional bean factory
post-processors to be configured with a lower precedence order (values
greater than 0) so that they run after any
AbstractDependsOnBeanFactoryPostProcessor and can override the
dependencies that it has configured.

Fixes gh-18362
2019-11-05 09:53:36 +00:00
Andy Wilkinson ae5f2d7725 Do not require aspectjweaver to enable CGLib-based proxies
Previously, AopAutoConfiguration would only enable CGLib-based
proxies if aspectjweaver was on the classpath. The intention was for
CGLib-based proxies to always be used by default so this behaviour
was incorrect.

This commit updates AopAutoConfiguration to force the use of
CGLib-based proxies even in the absence of aspectjweaver.

Closes gh-18523
2019-11-04 15:19:06 +00:00
Andy Wilkinson e26d5d95a8 Do not enable @ConfigurationPropertiesScan be default
In 2.2.0, @ConfigurationPropertiesScan was enabled by default.
Unfortunately, this had the unexpected side-effect of breaking
conditional enablement of a @ConfigurationProperties class via
@EnableConfigurationProperties if the @ConfigurationProperties class
was in a package covered by scanning.

This commit remove @ConfigurationPropertiesScan from
@SpringBootApplication so that it is no longer enabled by default.
2.1.x users who rely upon such conditional enablement of
@ConfigurationProperties classes can now upgrade to 2.2.x without
having to make any changes. Users who do not have such a need and are
in a position to use configuration properties scanning can now opt-in
by adding @ConfigurationPropertiesScan to their main application class
alongside @SpringBootApplication.

Closes gh-18674
2019-11-04 14:09:33 +00:00
Johnny Lim 45d85778b8 Polish
See gh-18838
2019-11-01 09:01:24 +02:00
Brian Clozel b7f59eb7cb Add config property for webflux codec maxInMemorySize
This commit creates a new configuration property
`spring.codec.max-in-memory-size` which configures the maximum
amount of data to be buffered in memory by codecs (both client and
server).

This property has no default value - it will let Spring Framework handle
the default behavior, currently enforcing a 256KB for provided codecs.

Fixes gh-18828
2019-10-31 20:01:43 +01:00
Stephane Nicoll 7f509bf84e Make sure Web infrastructure uses qualified beans
This commit is a follow-up of a change in Spring Framework[1] to make
sure injection points that are expecting a specific bean by name use
a qualifier.

As a result of this change, MVC uses the dedicated MVC validator again
rather than the general one auto-configured by Spring Boot.

[1] https://github.com/spring-projects/spring-framework/issues/23887

Closes gh-18672
2019-10-30 15:47:02 +01:00
Stephane Nicoll 2ceffcee14 Start building against Spring Data Moore-SR1 snapshots
See gh-18744
2019-10-29 10:36:35 +01:00
Stephane Nicoll a315d4229d Start building against Spring Data Lovelace-SR12 snapshots
See gh-18743
2019-10-29 10:31:00 +01:00
dreis2211 9ece2e277f Remove redundant explicit types
See gh-18754
2019-10-27 08:33:01 +01:00
wonwoo 3369d80f3f Polish OnBeanCondition message
See gh-18727
2019-10-26 11:55:34 +02:00
Phillip Webb 597baf9774 Polish "Optimize logger calls"
See gh-18710
2019-10-23 21:00:05 -07:00
wycm 240b1f9e29 Optimize logger calls
Guard logger calls to ensure that they are only made when the
level is set.

See gh-18710
2019-10-23 20:59:11 -07:00
Johnny Lim 8c2d6b28f8 Polish
See gh-18697
2019-10-23 10:09:56 +02:00
dreis2211 8ecdf919f8 Fix Mockito deprecations
See gh-18689
2019-10-23 09:49:33 +02:00
Phillip Webb 511a2a073f Merge branch '2.1.x'
Closes gh-18695
2019-10-22 16:20:05 -07:00
Rafiullah Hamedy 81dc6e02e6 Rename `max-http-post-size` server property
Rename `max-http-post-size` to `max-http-form-post-size` for Jetty and
Tomcat to make it clearer that they only apply to POSTed form content.

See gh-18566
2019-10-22 16:00:43 -07:00
Phillip Webb 714c9b9804 Polish 2019-10-22 13:12:09 -07:00
Stephane Nicoll dccb842286 Polish "Apply dependsOn semantic between Liquibase and JPA"
See gh-18673
2019-10-22 17:44:04 +02:00
Dmytro Nosan bacd36f0cf Apply dependsOn semantic between Liquibase and JPA
This commits restores the dependency between Liquibase and the JPA
EntityManager even if a custom `SpringLiquibase` is configured.

See gh-18673
2019-10-22 17:43:28 +02:00
Stephane Nicoll 4d5d90847e Merge branch '2.1.x'
Closes gh-18682
2019-10-22 09:41:04 +02:00
wycm 681a94b0d5 Optimize debug level logs
See gh-18604
2019-10-22 09:36:48 +02:00
Stephane Nicoll c05f88bf78 Polish "Add missing package-info files"
See gh-18632
2019-10-22 09:35:10 +02:00
Leo Li af114c93ee Add missing package-info files
See gh-18632
2019-10-22 09:30:04 +02:00
Alessandro Falappa f28af3db9f Narrow type for Tomcat 'locale' and 'encoding' properties
See gh-18637
2019-10-22 09:22:48 +02:00
Brian Clozel 1529ba14c8 Rename server.jetty.idle-timeout
This commit renames the `server.jetty.idle-timeout` property to
`server.jetty.thread-idle-timeout`, since there are other timeout
properties that are not tied to the threadpool configuration (e.g. the
connection idle timeout).

We might regroup thread-related properties in a dedicated group in the
future, see gh-18620.

Fixes gh-18615
2019-10-16 14:57:05 +02:00
Andy Wilkinson fd1d653c34 Rename socket factory processor methods on NettyRSocketServerFactory
Previously, the methods were named addServerProcessors and
setServerProcessors which wasn't aligned with them taking
socket factory processors (ServerRSocketFactoryProcessor) as an
argument.

This commit renames the methods to align them more closely with the
type of their arguments.

Closes gh-18617
2019-10-16 13:39:42 +01:00
Brian Clozel 7104b8385f Merge branch '2.1.x' 2019-10-16 14:37:26 +02:00
Brian Clozel 9c5ee1126f Polish
See gh-18473
2019-10-16 14:36:19 +02:00
Brian Clozel 7113d41a80 Merge branch '2.1.x'
Closes gh-18618
2019-10-16 14:09:46 +02:00
Brian Clozel e4fa9ce8c6 Deprecate server.connection-timeout property
Prior to this commit, all supported servers would share the same
configuration property `server.connection-timeout`. Unfortunately, in
many cases the behavior of this timeout changes depending on the server.
From actual connection setup timeout, to detecting and closing idle
connections, this property cannot be properly translated from one server
implementation to another.

This commit deprecates this configuration property and introduces server
specific properties:

* `server.jetty.connection-idle-timeout`
(Time that the connection can be idle before it is closed.)
* `server.netty.connection-timeout`
(Connection timeout of the Netty channel.)
* `server.tomcat.connection-timeout`
(Amount of time the connector will wait, after accepting a connection,
for the request URI line to be presented.)
* `server.undertow.no-request-timeout`
(Amount of time a connection can sit idle without processing a request,
before it is closed by the server.)

`server.connection-timeout` is now deprecated and will be removed in a
future release.

Fixes gh-18473
2019-10-16 13:48:48 +02:00
Andy Wilkinson 4b4b39853b Merge branch '2.1.x'
Closes gh-18608
2019-10-15 19:47:41 +01:00
Andy Wilkinson 00d4b44cbb Remove trailing commas from test SQL scripts
Closes gh-18607
2019-10-15 19:47:27 +01:00
Andy Wilkinson 6e84ae6474 Make SAML 2 login configuration back off with user provider config adapter
Previously, a WebSecurityConfigurerAdapter would be configured
irrespective of whether or not the user had provided their own
WebSecurityConfigurerAdapter. This then required them to use ordering
to diambiguate the configuration and made it harder to take complete
control of security configuration.

This commit updates the configuration of the SAML 2 login configurer
adapter to be conditional on missing bean, aligning it with other
security configuration such as the equivalent OAuth 2 configurer
adapter.

Closes gh-18530
2019-10-15 16:52:18 +01:00
Andy Wilkinson 07d0794827 Consider possibility of missing @ConstructorBinding in failure analysis
Previously, when a NoSuchBeanDefinitionException was being analyzed,
the possibility of a missing @ConstructorBinding annotation on a
@ConfigurationProperties class was not considered.

This commit updates the failure analysis for failed constructor
injection of an instance of a @ConfigurationProperties-annotated
class. When such a failure occurs, adding @ConstructorBinding is
now suggested as an action.

Closes gh-18545
2019-10-15 13:48:20 +01:00
Johnny Lim 701bd0dd46 Polish
See gh-18490
2019-10-02 22:15:05 -07:00
Phillip Webb 795303d667 Replace depends-on post processor configurations
Replace `AbstractDependsOnBeanFactoryPostProcessor` `@Configuration`
classes with simple `@Import` component classes.

Closes gh-18382
2019-10-02 21:41:31 -07:00
Madhura Bhave 40ac5b4ae2 Autoconfigure RSocket Security
Closes gh-18356
2019-10-02 13:54:07 -07:00
Madhura Bhave bc96e09965 Add additional test for reactive security auto-config 2019-10-02 13:46:50 -07:00
Madhura Bhave 22ed56ac52 Add auto-config for Spring Security's SAML support
Closes gh-18260

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2019-10-02 11:23:21 -07:00
Phillip Webb 71f8347c81 Rename ServerRSocketFactoryCustomizer
Rename `ServerRSocketFactoryCustomizer` to
`ServerRSocketFactoryProcessor` to better reflect that it is not a
traditional customizer.

Closes gh-18390
2019-10-02 10:41:53 -07:00
Andy Wilkinson 46c30d6bb0 Merge branch '2.1.x'
Closes gh-18476
2019-10-02 10:48:57 +01:00
Andy Wilkinson 3d4157ad6d Correct SCM URLs in published poms
Previously, Maven's default behaviour was relied up which resulted
in the artifact ID being appended to each URL as it was inherited.
This behaviour can only be disabled in Maven 3.6 and later, a version
that we cannot use due to an incompatibility with the Flatten Plugin.

This commit works around Maven's default behaviour by defining
properties for the SCM URL, connection, and developer connection and
then explicitly defining the settings in each pom using these
properties. The explicit definition of the properties in each pom
prevents them being inherited from the parent, thereby disabling the
unwanted appending of the artifact ID to the URL.

Fixes gh-18328
2019-10-02 10:48:30 +01:00
Vedran Pavic 4808016560 Align with Spring Session MongoDB deprecations
See gh-18470
2019-10-01 21:32:45 +01:00
dreis2211 bafc10f2c4 Fix default values in metadata for HiddenHttpMethodFilter
See gh-18435
2019-09-29 16:18:41 +02:00
Phillip Webb 1f9c9fedb4 Merge branch '2.1.x'
Closes gh-18409
2019-09-28 22:31:17 -07:00
Phillip Webb 615c6d4e86 Restructure RSocket packages and polish
Polish code and relocate `RSocketServerBootstrap` from `server` to
`context` since it's really an `ApplicationContext` concern.

Closes gh-18391
2019-09-28 22:04:30 -07:00
Phillip Webb 4b0fb8ff24 Polish 'Add @LocalRSocketServerPort support'
See gh-18287
2019-09-28 22:03:36 -07:00
Verónica Vásquez 3c8fa3bbd0 Add @LocalRSocketServerPort support
Add an appication context initializer to detect and store the
active RSocket port in the Environment under
`local.rsocket.server.port`.

Additionally add a `@LocalServerPort` that provides a convenient
alternative to `@Value`.

See gh-18287

Co-authored-by: Eddú Meléndez <eddu.melendez@gmail.com>
2019-09-28 22:03:36 -07:00
Tadaya Tsuyukubo bccdf04358 Use ordered TaskExecutorCustomizers
Use an ordered stream in `TaskExecutionAutoConfiguration` when
obtaining the TaskExecutor customizers.

See gh-18333
2019-09-28 18:44:57 -07:00
Madhura Bhave 39ed15728f Configure oauth2client in Reactive OAuth2 client auto-config
Closes gh-18385
2019-09-27 11:42:43 -07:00
Stephane Nicoll f78c9574d8 Start building against Spring Session Corn snapshots
See gh-18257
2019-09-27 16:20:50 +02:00
Phillip Webb d83238aaab Merge branch '2.1.x'
Closes gh-18369
2019-09-26 12:14:35 -07:00
Phillip Webb 050460f635 Check factory bean for EntityManager datasource
Update `DataSourceInitializedPublisher` to fallback to the
`LocalContainerEntityManagerFactoryBean` if the
`javax.persistence.nonJtaDataSource` property is not defined.

As of Hibernate 4.3 the property is no longer set if the `EntityManager`
is created from a `PersistenceUnitInfo` instance rather than actual
properties.

Although this is being addressed in Hibernate issue HHH-13432, it's
not strictly a requirement of the JPA spec that the property is set.

Fixes gh-17061
2019-09-26 12:14:13 -07:00
dreis2211 4262aab446 Fix deprecation warnings caused by BodyInserters.fromObject
See gh-18349
2019-09-25 13:57:17 +01:00
Madhura Bhave 0a70e33009 Merge branch '2.1.x'
Closes gh-18345
2019-09-24 10:28:54 -07:00
Madhura Bhave 342a0535d7 Explicitly configure SecurityWebFilterChain bean for reactive oauth2 client
This will ensure that ReactiveManagementWebSecurityAutoConfiguration backs
off and that the actuator endpoints are also secured via OAuth2.

Fixes gh-17949
2019-09-24 09:50:45 -07:00
Andy Wilkinson a354657ace Merge branch '2.1.x'
Closes gh-18343
2019-09-24 16:17:36 +01:00
Andy Wilkinson c613418451 Suppress body when handling a no content (204) "error"
Fixes gh-18136
2019-09-24 16:01:18 +01:00
Andy Wilkinson 419f92d381 Tune @ConditionalOnMissingBean for interface-based back off
Previously, a number of usages of @ConditionalOnMissingBean prevented
a bean that implements an auto-configured bean's "main" interface from
causing the auto-configuration of the bean to back off. This would
happen when @ConditionalOnMissingBean did not specify a type, the
@Bean method returned the bean's concrete type, and that concreate
type implements a "main" interface.

This commit updates such usages of @ConditionalOnMissingBean to
specify the "main" interface as the type of the bean that must be
missing. This will allow, for example, the auto-configured
MongoTemplate bean to back off when a MongoOperations bean is defined.

Fixes gh-18101
2019-09-24 11:13:35 +01:00
Phillip Webb 5076d8562a Fix Artemis EmbeddedJMS initialization
Update `ArtemisConnectionFactoryFactory` to reference the new
embedded Artemis classes.

See gh-16646
2019-09-23 23:42:30 -07:00
Andy Wilkinson 42e0dc14b5 Migrate from deprecated Artemis EmbeddedJMS
Closes gh-16646
2019-09-23 18:27:32 +01:00
Andy Wilkinson b9cfbf7c8b Merge branch '2.1.x'
Closes gh-18323
2019-09-23 16:46:53 +01:00
Andy Wilkinson 9df356ec4c Fix destination checking in Artemis auto-configuration tests
Closes gh-18319
2019-09-23 16:45:36 +01:00
Andy Wilkinson 2de7b3af4a Merge branch '2.1.x' 2019-09-22 11:30:51 +01:00
Andy Wilkinson e5f26a4f1a Rename test resource to be Windows-friendly 2019-09-22 11:29:45 +01:00
Andy Wilkinson 30c05b2b49 Support X-Forwarded-Host header when auto-configuring RemoteIpValve
Closes gh-18233
2019-09-22 08:30:27 +01:00
Andy Wilkinson 4cc7fef728 Deprecate support for Spring Cloud Connectors in favor of Java CFEnv
Closes gh-17877
2019-09-21 20:23:56 +01:00
Andy Wilkinson ea6d9f3328 Merge branch '2.1.x'
Closes gh-18298
2019-09-21 13:42:54 +01:00
aohana 51a8c73b7b Test custom comment prefix with one that does not work by default
See gh-18285
2019-09-21 13:33:20 +01:00
Andy Wilkinson 8791b696f8 Add auto-configuration support for TransactionalOperator
Closes gh-18265
2019-09-20 17:37:41 +01:00
Andy Wilkinson 3b01bc0366 Switch TransactionAutoConfigurationTests to ApplicationContextRunner 2019-09-20 17:37:08 +01:00
Brian Clozel 070eedaa19 Configure RouteMatcher at the RSocketStrategies level
After a change in Spring Framework (see
spring-projects/spring-framework#23314), the `RouteMatcher` to be used
with the RSocket infrastructure is configured on the `RSocketStrategies`
directly.

This commit moves the auto-configuration of the
`PathPatternRouteMatcher` from the message handling parts to the RSocket
strategy one.

Closes gh-17571
2019-09-20 18:32:21 +02:00
Johnny Lim b70be97cbf Polish
See gh-18281
2019-09-19 09:03:38 +02:00
Andy Wilkinson 9377b9a9e4 Support -- and # by default as Quartz datasource init comment prefixes
Closes gh-17435
2019-09-18 20:38:16 +01:00
Andy Wilkinson 1b237de5f5 Use Awaitility in our own tests
Closes gh-18227
2019-09-13 20:50:14 +01:00
Andy Wilkinson b9bb84236b Restore compatibility with Flyway 5.2
Previously, the upgrade to Flyway 6 broke compatibility with Flyway
5.2 due to the use of method references that refer to two methods
that do not exist in Flyway 5.2.

This commit replaces the method references with lambdas that are only
called if the user sets the related property. Unless a new-in-Flyway-6
property is set, the auto-configuration will work as before. When such
a property is set the auto-configuration will fail with a
NoSuchMethodError. This approach was chosen to make the
incompatibility clear.

We have also introduced support for passing any JavaMigration beans
in the context into Flyway. This too relies on API that is new in
Flyway 6. It is possible (although unlikely) that users had
JavaMigration beans in Spring Boot 2.1 that were being ignored. This
commit restores this behaviour when using Flyway 5.2.

Closes gh-18193
2019-09-13 10:26:59 +01:00
Stephane Nicoll 70f7e47002 Polish "Use Duration for ServerProperties.Jetty.idleTimeout"
See gh-18206
2019-09-12 15:13:31 +02:00
Johnny Lim 96019362f7 Use Duration for ServerProperties.Jetty.idleTimeout
See gh-18206
2019-09-12 14:59:54 +02:00
Johnny Lim 5b41c3b608 Polish
See gh-18192
2019-09-12 14:55:47 +02:00
Brian Clozel 219bafaba1 Apply RSocket server customizers to netty web server
This commit applies `ServerRSocketFactoryCustomizer` beans to RSocket
setups when the RSocket server is being plugged into an existing Reactor
Netty web server.

Fixes gh-18208
2019-09-11 21:09:43 +02:00
Andy Wilkinson 80b8f19961 Tune @ConditionalOnMissingBean for interface-based back off
Previously, a number of usages of @ConditionalOnMissingBean prevented
a bean that implements an auto-configured bean's "main" interface from
causing the auto-configuration of the bean to back off. This would
happen when @ConditionalOnMissingBean did not specify a type, the
@Bean method returned the bean's concrete type, and that concreate
type implements a "main" interface.

This commit updates such usages of @ConditionalOnMissingBean to
specify the "main" interface as the type of the bean that must be
missing. This will allow, for example, the auto-configured
MongoTemplate bean to back off when a MongoOperations bean is defined.
2019-09-06 17:55:06 +01:00
Andy Wilkinson 71d5d481ad Merge branch '2.1.x'
Closes gh-18165
2019-09-06 13:07:58 +01:00
Andy Wilkinson 19ccfaea86 Fix QuartzAutoConfiguration when Liquibase is not on the class path
Fixes gh-18153
2019-09-06 13:05:53 +01:00
Andy Wilkinson 1f875d552a Polish "Add a config property for JMS listener container's receive timeout"
See gh-17332
2019-09-05 21:42:13 +01:00
ibmmqmet 1cde657861 Add a config property for JMS listener container's receive timeout
See gh-17332
2019-09-05 21:30:53 +01:00
Andy Wilkinson 6328f2e8a8 Polish "Make logError() in AbstractErrorWebExceptionHandler overrideable"
See gh-17863
2019-09-05 21:18:21 +01:00
Peter Jurkovic 7ea612beaf Make logError() in AbstractErrorWebExceptionHandler overrideable
See gh-17863
2019-09-05 21:04:45 +01:00
Andy Wilkinson 13b45b42c7 Align with breaking API changes in latest Security snapshots
See gh-17897
2019-09-04 14:55:50 +01:00
Andy Wilkinson 29080b87ec Protect autoconfigure module against slow starting test containers 2019-09-04 10:15:10 +01:00
Phillip Webb c1a16f5f21 Merge branch '2.1.x'
Closes gh-18117
2019-09-03 16:56:34 -07:00
Phillip Webb 43108d5495 Add @SpringBootApplication.scanBasePackages note
Update the javadoc to note that `scanBasePackages` only affects the
`@ComponentScan` annotation and isn't a replacement for `@EntityScan`
or `@Enable...Repositories`.

Closes gh-18109
2019-09-03 16:51:06 -07:00
Andy Wilkinson 6daab5c8ef Merge branch '2.1.x'
Closes gh-18108
2019-09-03 13:33:12 +01:00
Johnny Lim 2eac53cc5d Fix typo in deprecation reason for liquibase.check-change-log-location
See gh-18100
2019-09-03 13:32:29 +01:00
Andy Wilkinson ee0f57bfc7 Merge branch '2.1.x'
Closes gh-18106
2019-09-03 12:57:37 +01:00
Andy Wilkinson 52311ffe3c Depend on FlywayMigrationInitializer beans by type not name
Previously, a custom FlywayMigrationInitializer bean named anything
other than flywayInitializer could result in a
NoSucBeanDefinitionException as the dependencies set up for JPA and
JDBC components used the bean name flywayInitializer.

This commit updates the configuration of the dependencies to depend
on FlywayMigrationInitializer beans by type rather than name.

Fixes gh-18105
2019-09-03 12:45:17 +01:00
Andy Wilkinson 2dea534a0e Merge branch '2.1.x'
Closes gh-18103
2019-09-03 12:25:32 +01:00
Andy Wilkinson f313bf27a1 Depend on Flyway beans by type not name
Previously, a custom Flyway bean named anything other than flyway
could result in a NoSucBeanDefinitionException as the dependencies
set up for JPA and JDBC components used the bean name flyway.

This commit updates the configuration of the dependencies to depend
on Flyway beans by name rather than type.

Fixes gh-18102
2019-09-03 12:13:28 +01:00
dreis2211 07b857e57a Use disabledWithoutDocker option for @Testcontainers
See gh-18095
2019-09-03 09:51:53 +02:00
dreis2211 b4350a9d96 Remove unnecessary blank lines
See gh-18089
2019-09-03 08:48:10 +02:00
Andy Wilkinson 20b6656ba7 Protect autoconfigure module against slow starting test containers 2019-09-02 12:19:09 +01:00
Andy Wilkinson 3a417eec52 Merge branch '2.1.x' 2019-09-02 11:46:42 +01:00
Andy Wilkinson 4fd7b68f71 Polish 2019-09-02 11:45:55 +01:00
Phillip Webb a86258e62c Revert "Reduce bean method visibility"
Reverts commit 2be3027dcf
on 2.1.x
2019-09-01 20:04:09 -07:00
Phillip Webb b3835a8149 Merge branch '2.1.x' 2019-09-01 18:31:27 -07:00
Phillip Webb 2be3027dcf Reduce bean method visibility
See gh-17539
2019-09-01 18:30:39 -07:00
Phillip Webb 3746631081 Merge branch '2.1.x'
Closes gh-18085
2019-09-01 14:54:02 -07:00
Phillip Webb 75a1a24914 Polish "Ensure Flyway/Liquibase runs before Quartz"
See gh-17539
2019-09-01 14:48:37 -07:00
Dmytro Nosan 7e5bd1f281 Ensure Flyway/Liquibase runs before Quartz
Add post processors to ensure that SchedulerFactoryBean and Scheduler
beans depend on the Flyway and Liquibase beans.

See gh-17539
2019-09-01 14:46:25 -07:00
dreis2211 3e35a6616c Fix duplicated words
See gh-18004
2019-09-01 09:09:38 +02:00
Phillip Webb 1283bc05d7 Merge branch '2.1.x'
Closes gh-18021
2019-08-30 14:41:36 -07:00
Phillip Webb 5938ca78b6 Fix request matcher management context support
Fix caching issues in `ApplicationContextRequestMatcher` and allow
subclasses to ignore an application context entirely. Update existing
matcher implementations so that they deal with the management context
correctly.

Prior to this commit, the `ApplicationContextRequestMatcher` would
return a context cached from the first request. It also didn't
provide any way to ignore a context. This meant that if the user was
running the management server on a different port the matching results
could be inconsistent depending on if the first request arrived on
the regular context or the management context. It also meant that we
could not distinguish between the regular context and the management
context when matching.

Closes gh-18012
2019-08-30 14:36:16 -07:00
davinkevin 84c81462b4 Upgrade to jOOQ 3.12.0
See gh-18014
2019-08-30 09:56:02 +01:00
Andy Wilkinson e2edb6a539 Polish "Auto-configure Flyway with JavaMigration beans"
See gh-17993
2019-08-30 09:26:56 +01:00
Semyon Danilov ff68295928 Auto-configure Flyway with JavaMigration beans
See gh-17993
2019-08-30 09:20:59 +01:00
Andy Wilkinson 0e2a131e5d Polish "Upgrade to Flyway 6.0.1"
See gh-17997
2019-08-30 08:19:07 +01:00
Semyon Danilov 278b20d9c9 Upgrade to Flyway 6.0.1
See gh-17997
2019-08-30 08:19:07 +01:00
Stephane Nicoll 96596f8ecc Polish contribution
See gh-17962
2019-08-28 10:55:32 +02:00
Kant 7ee3656188 Polish
See gh-17962
2019-08-28 10:55:13 +02:00
Madhura Bhave 2726540e76 Merge branch '2.1.x'
Closes gh-17980
2019-08-28 13:13:48 +05:30
Madhura Bhave 674f2f5a6c EndpointRequest should match @ServletEndpoint
This commit also changes the request matcher for MVC
endpoints to use an AntPathRequestMatcher instead of an
MvcRequestMatcher. The endpoint is always available
under the mapped endpoint path and this way the same matcher
can be used for both MVC and Jersey.

Fixes gh-17912

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2019-08-28 11:48:53 +05:30
dreis2211 ec57f0c31f Fix upstream RSocket method renames
See gh-17973
2019-08-27 13:12:52 +01:00
Madhura Bhave 46ea4a2501 isPublisherConfirms in RabbitProperties should not throw NPE
Fixes gh-17967
2019-08-27 08:39:55 +05:30
Stephane Nicoll 7d994e607d Restructure tests to exercise deprecated property in a dedicated test
See gh-17848
2019-08-24 08:22:28 +02:00
Madhura Bhave 21783faede Merge branch '2.1.x'
Closes gh-17953
2019-08-23 19:44:16 -07:00
Madhura Bhave 28d374d84d Polish "Configure Issuer Validator for Resource Server"
See gh-17952
2019-08-23 19:34:49 -07:00
HaiTao Zhang b3d189cf87 Configure Issuer Validator for Resource Server
See gh-17952
2019-08-23 19:34:31 -07:00
Madhura Bhave 8954fe13e5 Polish "Support additional publisher confirm types"
See gh-17848
2019-08-23 18:44:42 -07:00
HaiTao Zhang 8c1c8a27d9 Support additional publisher confirm types
See gh-17848
2019-08-23 18:44:15 -07:00
LiangYong 12bfca56d6 Remove unnecessary null check
See gh-17916
2019-08-23 13:25:11 +02:00
Andy Wilkinson c48228f645 Merge branch '2.1.x'
Closes gh-17942
2019-08-23 11:03:43 +01:00
Andy Wilkinson ac0a22d603 Tolerate LCEMFB with null JpaVendorAdapter in JPA auto-config
Closes gh-17935
2019-08-23 10:39:40 +01:00
Andy Wilkinson 05e089601e Remove default favicon and support for serving from classpath root
Closes gh-17925
2019-08-22 13:53:13 +01:00
dreis2211 6ef6875a60 Correct WebFlux response body method
See gh-17919
2019-08-21 11:07:48 +01:00
Andy Wilkinson 9ac6485768 Prioritise static resource locations over classpath for favicon.ico
Closes gh-17922
2019-08-21 10:42:32 +01:00
Brian Clozel e7c3ab3e27 Rename WebFlux response body methods
This commit adapts to recent changes in Spring Framework.
See spring-projects/spring-framework#23212
2019-08-20 13:03:24 +02:00
Andy Wilkinson 7f8944d00f Polish 2019-08-19 17:31:56 +01:00
Andy Wilkinson cc3df98135 Merge branch '2.1.x' 2019-08-19 16:08:25 +01:00
Andy Wilkinson ab87b2a39b Polish 2019-08-19 16:05:43 +01:00
LiangYong a5746d0a03 Simplify some code
See gh-17893
2019-08-19 07:24:54 +02:00
dreis2211 d4affd7f85 Use hasSize() assertion in favor of length checks
See gh-17874
2019-08-17 06:39:41 +02:00
Stephane Nicoll 04b63cda8f Merge branch '2.1.x'
Closes gh-17889
2019-08-17 06:38:00 +02:00
Filip Hrisafov 1ebbe9fc55 Map non-null LDAP properties
The userDn and password in LdapContextSource are not nullable. The
default values for userDn and password in LdapProperties are null. When
the values are set to null there will eventually be a
NullPointerException during
AbstractContextSource#setupAuthenticatedEnvironment since HashTable
doesn't allow null for values.

See gh-17861
2019-08-17 06:34:22 +02:00
Madhura Bhave 76dfe1aae4 Merge branch '2.1.x'
Closes gh-17887
2019-08-16 16:53:42 -07:00
Madhura Bhave 0187e5106d Polish "Set up SpringLiquibase beans' dependencies by type rather than name"
See gh-17805
2019-08-16 16:43:50 -07:00
Andrii Hrytsiuk b69f9e9fdf Add missing javadoc
See gh-17805
2019-08-16 16:05:33 -07:00
Andrii Hrytsiuk eaad22dd89 Set up SpringLiquibase beans' dependencies by type rather than name
See gh-17805
2019-08-16 16:05:33 -07:00
Madhura Bhave 64e8b1d47c Polish "Add properties for Jetty threadpool"
See gh-17871
2019-08-15 18:31:12 -07:00
HaiTao Zhang 1024d74742 Add properties for Jetty threadpool
See gh-17871
2019-08-15 18:30:57 -07:00
Madhura Bhave eea83e935e Resolve httpstatus error series using raw int code
See gh-16691
2019-08-15 10:44:46 -07:00
Madhura Bhave 4b4dc28a86 Support non-standard error codes with AbstractErrorWebExceptionHandler
Fixes gh-16691
2019-08-15 08:21:04 -07:00
Madhura Bhave 178746d678 Update Opaque Token Client Name following upstream changes
Closes gh-17846
2019-08-12 18:38:27 -07:00