Commit Graph

2487 Commits

Author SHA1 Message Date
Phillip Webb 30c27274e2 Merge branch '2.3.x'
Closes gh-24339
2020-12-04 18:31:55 -08:00
Phillip Webb 5f351a6983 Merge branch '2.2.x' into 2.3.x
Closes gh-24338
2020-12-04 18:21:57 -08:00
Phillip Webb 837fc83527 Fix checkstyle header violations
See gh-24337
2020-12-04 18:05:53 -08:00
Andy Wilkinson 4a7bc3d096 Require bean name match for Locale(Context)Resolver to back off
Web MVC and WebFlux look up by name the Locale(Context)Resolver beans
that they use. Previously, the auto-configured resolvers for MVC and
WebFlux would back off when any bean of the required type was defined,
irrespective of its name. If the name of the user's bean didn't match
the name used by MVC and WebFlux to find the custom resolver, the
custom resolver would be ignored and MVC and WebFlux would use their
defaults. There was no indication of this happening in the condition
evaluation report as all it would show is that the auto-configured
resolver had backed off in favour of the custom resolver. It wouldn't
show anything to explain why the custom resolver had not been used.

This commit updates the auto-configured resolvers to be conditional
on a missing bean of the name required by MVC and WebFlux. If the
user then defines a custom resolver with a different name, the
condition evaluation report will show that the auto-configured
resolver remained as the bean name didn't match.

Fixes gh-24209
2020-11-20 10:35:30 +00:00
dreis2211 5ef6e09c64 Fix deprecation warnings in javadoc comments
See gh-24120
2020-11-11 20:09:23 +00:00
Stephane Nicoll b6fc0913cf Merge branch '2.3.x'
Closes gh-24104
2020-11-10 17:44:05 +01:00
Stephane Nicoll 515b18e142 Merge branch '2.3.x'
Closes gh-24108
2020-11-10 17:10:26 +01:00
Stephane Nicoll 9e901b6e07 Upgrade to Testcontainers 1.15.0
Closes gh-24103
2020-11-10 16:24:16 +01:00
Stephane Nicoll 23ad2b4156 Rationalize Testcontainers image versions
This commit rationalizes the Docker image names used in integration
tests.

Closes gh-24107
2020-11-10 16:04:27 +01:00
Brian Clozel 24f29a6516 Polish
See gh-24099
2020-11-10 15:52:17 +01:00
Stephane Nicoll 78fb3ccc53 Polish 2020-11-10 14:12:37 +01:00
Brian Clozel f0a6128db3 Add spring.web.resources.cache.use-last-modified
Prior to this commit, packaging a Spring Boot application as a container
image with Cloud Native Buildpacks could result in unwanted browser
caching behavior, with "Last-Modified" HTTP response headers pointing to
dates in the far past.

This is due to CNB resetting the last-modified date metadata for static
files (for build reproducibility and container layer caching) and Spring
static resource handling relying on that information when serving static
resources.

This commit introduces a new configuration property
`spring.web.resources.cache.use-last-modified` that can be used to
disable this behavior in Spring if the application is meant to run as a
container image built by CNB.

The default value for this property remains `true` since this remains
the default value in Spring Framework and using that information in
other deployment models is a perfectly valid use case.

Fixes gh-24099
2020-11-10 13:40:25 +01:00
Stephane Nicoll 45f1133e1e Merge branch '2.3.x' 2020-11-10 09:49:49 +01:00
Stephane Nicoll 339c8d0a26 Revert "Upgrade to Testcontainers 1.15.0" 2020-11-10 09:47:46 +01:00
Stephane Nicoll 5123eb0c74 Fix deprecation in Testcontainers 1.15.0
See gh-24103
2020-11-10 09:39:18 +01:00
Stephane Nicoll 7fb21fbff3 Merge branch '2.3.x'
Closes gh-24104
2020-11-10 08:47:51 +01:00
Stephane Nicoll c1a1b5fe71 Upgrade to Testcontainers 1.15.0
Closes gh-24103
2020-11-10 08:46:15 +01:00
Andy Wilkinson f3648d6fe1 Merge branch '2.3.x'
Closes gh-24030
2020-11-04 16:47:38 +00:00
Andy Wilkinson e83f3f40be Merge branch '2.2.x' into 2.3.x
Closes gh-24029
2020-11-04 16:47:23 +00:00
Andy Wilkinson a8b8f43180 Improve description of spring.datasource.initialization-mode
Closes gh-21121
2020-11-04 16:46:28 +00:00
Andy Wilkinson a1af99640e Merge branch '2.3.x'
Closes gh-24026
2020-11-04 10:15:26 +00:00
Andy Wilkinson 28f7bc37a5 Merge branch '2.2.x' into 2.3.x
Closes gh-24025
2020-11-04 10:15:07 +00:00
Andy Wilkinson c289ba0c2c Recommend disabling context root redirects with proxied Tomcat
Closes gh-22908
2020-11-04 10:13:55 +00:00
Andy Wilkinson f4e90f4512 Merge branch '2.3.x'
Closes gh-24016
2020-11-03 17:29:14 +00:00
Andy Wilkinson d1a9dba25d Polish "Avoid repeated calls of WebFlux and MVC registrations' getters"
See gh-23999
2020-11-03 17:23:16 +00:00
Michal Růžička 2aac5c0095 Avoid repeated calls of WebFlux and MVC registrations' getters
See gh-23999
2020-11-03 16:51:39 +00:00
Andy Wilkinson 73c444262b Merge branch '2.3.x'
Closes gh-24015
2020-11-03 16:38:49 +00:00
Andy Wilkinson f9ff39a7a6 Merge branch '2.2.x' into 2.3.x
Closes gh-24014
2020-11-03 16:38:33 +00:00
Andy Wilkinson 35bff55097 Ensure that Quartz can be auto-configured with a Quartz-specific TM
Previously, Quartz could be configured with a specific DataSource
using `@QuartzDataSource` but it was not possible to configure a
Quartz-specific transaction manager. This could result in the
different DataSources being used by Quartz itself and Quart'z
DataSourceTransactionManager.

This commit introduces a new qualifier, `@QuartzTransactionManager`,
that can be used to avoid the above-described problem. Any
`@QuartzTransactionManager`-annotated bean will be used by the
Quartz auto-configure configuration instead of the application's main
`TransactionManager`. If no such qualified bean is present, the
application's main TransactionManager, if any, will be used as before.

Fixes gh-20184
2020-11-03 15:56:44 +00:00
Andy Wilkinson 699f03d5a6 Merge branch '2.3.x'
Closes gh-24010
2020-11-03 14:04:38 +00:00
Andy Wilkinson 2dce4aa42b Merge branch '2.2.x' into 2.3.x
Closes gh-24009
2020-11-03 14:04:08 +00:00
Andy Wilkinson 30a0ccab02 Remove use of `@PostConstruct` from main code
When running on Java 11 (where `@PostConstruct` is no longer part of
the JRE) and without a dependency on jakarta-annotation-api,
`@PostContruct` annotions are silently dropped. This leads to obscure and
hard-to-track down changes in the behaviour of our auto-configuration
as the `@PostConstruct`-annotated methods are not invoked.

To allow users to run on Java 11 without having jakarta-annotation-api
on the classpath, this commit removes use of `@PostConstruct` from main
code. A Checkstyle rule has also been added to prevent its usage in
main code from being reintroduced.

Closes gh-23723
2020-11-03 13:59:38 +00:00
Andy Wilkinson dbb954734e Correct replacement for stale-while-revalidate config property
Fixes gh-23980
2020-11-02 20:49:00 +00:00
Stephane Nicoll 62f26ee36f Remove code that's no longer used
Closes gh-23993
2020-11-02 10:55:12 +01:00
Stephane Nicoll 339b21cee7 Merge branch '2.3.x'
Closes gh-23992
2020-11-02 10:48:32 +01:00
Stephane Nicoll 1e9c9b9d73 Add missing default values in configuration properties metadata
Closes gh-23991
2020-11-02 10:44:06 +01:00
Andy Wilkinson c22e655848 Move spring.resources.* properties to spring.web.resources.*
Closes gh-23917
2020-10-29 16:08:50 +00:00
Phillip Webb 929d8fcd3c Update copyright year of changed files 2020-10-29 09:08:13 -07:00
Phillip Webb b0c2687aa9 Update copyright year of changed files 2020-10-29 09:07:42 -07:00
Andy Wilkinson a8705d19e5 Upgrade to Flyway 7.1.1
Closes gh-23932
2020-10-29 13:04:00 +00:00
Andy Wilkinson 2db8e7eebe Polish "Add liquibase driver class name property"
See gh-23958
2020-10-29 10:06:43 +00:00
Evgeniy Cheban 8a9b31aa69 Add liquibase driver class name property
See gh-23958
2020-10-29 09:11:41 +00:00
Andy Wilkinson ab21b55dc4 Revert "Upgrade to Flyway 7.1.0"
This reverts commit a6c6aba40d.

See gh-23932
2020-10-28 19:45:19 +00:00
Stephane Nicoll a6c6aba40d Upgrade to Flyway 7.1.0
Closes gh-23932
2020-10-28 17:51:27 +01:00
Andy Wilkinson 8f2e58e301 Merge branch '2.3.x'
Closes gh-23933
2020-10-28 16:03:11 +00:00
Andy Wilkinson 58aa34489f Wait for DataSource init before allowing context refresh to complete
Closes gh-22852
2020-10-28 16:01:14 +00:00
Andy Wilkinson f60f3cb38e Exclude property beans from method validation
Exclude `@ConfigurationProperties` beans from method validation so
that `@Validated` can be used on final classes without the method
validation post-processor throwing an exception.

This commit introduces a `FilteredMethodValidationPostProcessor` class
which will use `MethodValidationExcludeFilters` to exclude beans from
method validation processing. Using `@EnableConfigurationProperties`
will automatically register an appropriate filter.

Closes gh-21454
2020-10-27 15:43:00 -07:00
Andy Wilkinson 1c4b4cb0cd Provide config properties for configuring WebFlux's locale resolution
Previously, the locale context resolver used with WebFlux could only be
configured by provided a custom LocaleContextResolver bean. By
constrast, when using Spring MVC, the spring.mvc.locale and
spring.mvc.locale-resolver properties could be used to configure the
locale and the resolver (fixed or Accept header) respectively.

This commit introduces spring.web.locale and spring.web.locale-resolver
properties and deprecates their spring.mvc equivalents. The new
properties can be used to configure locale resolution with either
Spring MVC or WebFlux.

Closes gh-23449
2020-10-27 11:12:00 +00:00
Phillip Webb ef89eb6dfb Add @ConditionalOnDefaultWebSecurity annotation
Add a dedicate condition annotation to detect when Spring Security is
available but has not been configured by the user. The new annotation
helps simplify quite a few of our auto-configuration classes.

See gh-23421
2020-10-26 23:47:14 -07:00
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