Commit Graph

2675 Commits (7e6df7d0e8ddecb2ac429a37e890c1f46cca122c)

Author SHA1 Message Date
Andy Wilkinson 67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
4 years ago
Phillip Webb 630d216430 Update copyright year of changed files 4 years ago
Phillip Webb c9a2c4e326 Merge branch '2.4.x' 4 years ago
Phillip Webb 4b0ef67e8e Update code for Spring Data 2021.0.0-M3
See gh-25004
4 years ago
Andy Wilkinson 5a56f8864f Remove error message attribute instead of blanking it when not included
Closes gh-24712
4 years ago
Andy Wilkinson 1370e8ca97 Merge branch '2.4.x'
Closes gh-24974
4 years ago
Andy Wilkinson 5362633014 Merge branch '2.3.x' into 2.4.x
Closes gh-24973
4 years ago
Andy Wilkinson 0b06ac9938 Use AssertJ's doesNotContainKey
Closes gh-24970
4 years ago
Andy Wilkinson 0fc33b020d Remove metadata for Data Solr property
Data Solr support was removed in 012a1997 so the property is no longer
supported.

See gh-24939
4 years ago
Andy Wilkinson 977b938977 Upgrade to Flyway 7.5.1
Closes gh-24961
4 years ago
Andy Wilkinson c125e0ee35 Upgrade to Spring Kafka 2.7.0-M1
Closes gh-24592
4 years ago
Andy Wilkinson 4135e3c061 Upgrade to Flyway 7.5
Closes gh-24953
4 years ago
Andy Wilkinson d15ec4cdb4 Upgrade to Liquibase 4.2.2
Closes gh-24952
4 years ago
Madhura Bhave cf8e667795 Fix formatting 4 years ago
Madhura Bhave 06263c46ce Upgrade to Spring Security 5.5.0-M1
Closes gh-24937
4 years ago
Stephane Nicoll 4c2a7db4f8 Upgrade to Spring Data 2021.0.0-M2
Closes gh-24931
4 years ago
Stephane Nicoll 012a199773 Remove Spring Data Solr support
In preparation to the upgrade to Spring Data 2021.0, this commit removes
auto-configuration for Spring Data Solr.

Closes gh-24939
4 years ago
Stephane Nicoll 3e376b955d Fix build failure
See gh-24943
4 years ago
Stephane Nicoll 2f4d4c7b5d Merge branch '2.4.x' 4 years ago
Stephane Nicoll 56ce5bdf44 Merge branch '2.3.x' into 2.4.x
See gh-24943
4 years ago
Stephane Nicoll 244a6ac7e5 Polish "Deprecate Spring Data Solr"
See gh-24942
4 years ago
Stephane Nicoll 85729d2a8a Merge branch '2.3.x' into 2.4.x
Closes gh-24943
4 years ago
Stephane Nicoll 10b4cb8cb5 Deprecate Spring Data Solr support
Closes gh-24942
4 years ago
Andy Wilkinson 294231efe7 Merge branch '2.4.x'
Closes gh-24883
4 years ago
Andy Wilkinson 7b4fbd2c85 Document WebMvcProperties.MatchingStrategt as being since 2.4.0
Closes gh-24875
4 years ago
Stephane Nicoll 7592c98d5c Merge branch '2.4.x'
Closes gh-24871
4 years ago
izeye 21db14227c Fix property name for spring.dao.exceptiontranslation.enabled
See gh-24867
4 years ago
Stephane Nicoll 742983fc5e Update copyright of changed file
See gh-24866
4 years ago
izeye 41fcc427c6 Restore persistOfNullThrowsIllegalArgumentExceptionWithoutExceptionTranslation()
See gh-24866
4 years ago
Stephane Nicoll dcc0ca0df9 Polish contribution
See gh-24862
4 years ago
izeye 3aea8b37a0 Polish
See gh-24862
4 years ago
Stephane Nicoll bcc1331f85 Restore missing deprecated metadata for Bitronix
See gh-24806
4 years ago
izeye e7350503b8 Polish
See gh-24837
4 years ago
Stephane Nicoll 2c2c160579 Remove deprecated code
See gh-24806
4 years ago
Stephane Nicoll a18f01addf Remove bitronix support
See gh-24806
4 years ago
Stephane Nicoll a788ef4958 Merge branch '2.4.x'
Closes gh-24842
4 years ago
Stephane Nicoll 2072e7242a Merge branch '2.3.x' into 2.4.x
Closes gh-24841
4 years ago
Stephane Nicoll 283ed48d63 Unwrap Datasource against an actual interface
This commit updates DataSourceUnwrapper to take a separate interface
type argument if the target datasource has to be unwrapped, given that
the target type is usually not an interface.

Closes gh-24697
4 years ago
Andy Wilkinson 31fe24c451 Merge branch '2.4.x'
Closes gh-24791
4 years ago
Andy Wilkinson 5cae1a2842 Merge branch '2.3.x' into 2.4.x
Closes gh-24790
4 years ago
Andy Wilkinson 7b1d07fa98 Use SpringSessionDataSource-annotated DataSource when one is available
Fixes gh-24624
4 years ago
Phillip Webb 66598ed4ad Merge branch '2.4.x' 4 years ago
Phillip Webb bd21c43d71 Simplify resource registration
Simplify resource registration by using the new Spring Framework API
that allows `Resource` instances to be registered directly.

See gh-24745
4 years ago
Phillip Webb a8f291b252 Merge branch '2.4.x'
Closes gh-24749
4 years ago
Phillip Webb f1fcfa6fc3 Merge branch '2.3.x' into 2.4.x
Closes gh-24748
4 years ago
Phillip Webb 72dd3b5628 Merge branch '2.2.x' into 2.3.x
Closes gh-24747
4 years ago
Phillip Webb f9e3e0d532 Register default resource path using a Resource
Update `WebMvcAutoConfiguration` so that the default "/" resource path
is registered directly as a `ServletContextResource`.

Closes gh-24745
4 years ago
Phillip Webb 21a08ed37d Merge branch '2.4.x'
Closes gh-24746
4 years ago
Phillip Webb 53a6fa2fed Respect spring.dao.exceptiontranslation setting
Update `DataSourceTransactionManagerAutoConfiguration` to respect
the `spring.dao.exceptiontranslation` setting. If `exceptiontranslation`
is `false` then we create a classic `DataSourceTransactionManager`
rather than a `JdbcTransactionManager`.

Fixes gh-24321
4 years ago
Phillip Webb 3fc1d319fe Merge branch '2.4.x' 4 years ago
Phillip Webb cff3e4c831 Fix tests following upstream framework changes 4 years ago
Stephane Nicoll 6bf74e5752 Polish 4 years ago
Stephane Nicoll 0897af0dfa Add customizer for jOOQ's configuration
This commit adds a customizer hook point for jOOQ's configuration. When
such a bean is present, it is invoked with the auto-configuration
`Configuration`. This effectively supersedes checking for a number of
jOOQ `*Provider`beans. The existing beans are still honoured, in a
deprecated fashion.

Closes gh-24732
4 years ago
Stephane Nicoll 8a6e79dc8b Configure Couchbase to use the application's ObjectMapper
Closes gh-24616
4 years ago
Scott Frederick bd4c6e51fa Merge branch '2.4.x'
Closes gh-24687
4 years ago
Scott Frederick ef7a82756e Allow overriding ThemeResolver and FlashMapManager beans
Previously, an error would occur when a user contributed a
`ThemeResolver` or `FlashMapManager` bean because those beans would
would not properly override the default beans provided by Spring
Framework. This commit adds conditional auto-configuration of these
bean types, preferring user-provided beans and falling back to
Framework-provided defaults.

Fixes gh-24207
4 years ago
Stephane Nicoll 8cd07dbc60 Polish
See gh-21286
4 years ago
Stephane Nicoll e4618cfb8d Delete ErrorProperties.IncludeStacktrace
Closes gh-21286
4 years ago
Stephane Nicoll 1fd17cf641 Add support for Elasticsearch sniffer
Closes gh-24174
4 years ago
Stephane Nicoll ad6b01d6d0 Add control connection timeout property for Cassandra
Closes gh-24189
4 years ago
Stephane Nicoll 5000051891 Merge branch '2.4.x'
Closes gh-24589
4 years ago
Stephane Nicoll 0691ba600f Polish "Detect Persistent and RelationshipProperties with Neo4j"
See gh-24239
4 years ago
Gerrit Meier ab4b1c4e61 Detect Persistent and RelationshipProperties with Neo4j
See gh-24239
4 years ago
Stephane Nicoll ec683605d4 Polish "Allow to configure Kafka Listener's onlyLogRecordMetadata"
See gh-24582
4 years ago
Martín Dacosta b539e2e749 Allow to configure Kafka Listener's onlyLogRecordMetadata
See gh-24582
4 years ago
Stephane Nicoll 490a40af20 Polish 4 years ago
Stephane Nicoll 338c8c4fc8 Polish "Allow to configure ActiveMQ Artemis with a broker url"
See gh-24302
4 years ago
Justin Bertram 99b43cb690 Allow to configure ActiveMQ Artemis with a broker url
See gh-24302
4 years ago
Stephane Nicoll a6c6655c82 Polish "Upgrade to Jackson 2.12.0"
Guard breaking change to PropertyNamingStrategies so that we tolerate
older Jackson versions.

See gh-24415
4 years ago
Valery Yatsynovich 1f63b82c5b Upgrade to Jackson 2.12.0
See gh-24415
4 years ago
Stephane Nicoll abbdbb07f6 Polish "Upgrade to Embedded Mongo 3.0.0"
See gh-24254
4 years ago
paulius 2f6b51babd Upgrade to Embedded Mongo 3.0.0
See gh-24254
4 years ago
Phillip Webb 308c2042ee Merge branch '2.4.x' 4 years ago
Phillip Webb 4fba7d0c60 Merge branch '2.3.x' into 2.4.x 4 years ago
Andy Wilkinson fb0f27ce2d Move EMFDependsOnPostProcessor into autoconfigure.orm.jpa
Closes gh-24452
4 years ago
Stephane Nicoll 0dcd9efdac Merge branch '2.4.x'
Closes gh-24509
4 years ago
izeye 8e69a821d5 Use BindResult.orElseGet() where beneficial
See gh-24477
4 years ago
Stephane Nicoll 59910338c9 Polish "Add configuration for Rabbit's key store and trust store algorithm"
See gh-24076
4 years ago
Gong Yi 489062b203 Add configuration for Rabbit's key store and trust store algorithm
See gh-24076
4 years ago
Phillip Webb 72d36e0c07 Update copyright year of changed files 4 years ago
Stephane Nicoll 0d472d6f74 Start building against Spring Data 2020.0.2 snapshots
See gh-24284
4 years ago
Phillip Webb e95c514661 Merge branch '2.3.x'
Closes gh-24412
4 years ago
Phillip Webb 49e754f48b Merge branch '2.2.x' into 2.3.x
Closes gh-24411
4 years ago
Phillip Webb 286ef61071 Narrow auto-configure checkstyle suppressions
Closes gh-21015
4 years ago
Phillip Webb cd5ff6e4af Merge branch '2.3.x'
Closes gh-24404
4 years ago
Phillip Webb 11f285bde5 Merge branch '2.2.x' into 2.3.x
Closes gh-24403
4 years ago
Stephane Nicoll 93d83342d2 Merge branch '2.3.x'
Closes gh-24401
4 years ago
Stephane Nicoll 06671aa50e Stop deferring JPA bootstrap mode by default
This commit changes the default value of bootstrap-mode to "default"
rather than "deferred" so that the JPA infrastructure starts in the
main thread rather than asynchronously.

Closes gh-24249
4 years ago
Phillip Webb 30c27274e2 Merge branch '2.3.x'
Closes gh-24339
4 years ago
Phillip Webb 5f351a6983 Merge branch '2.2.x' into 2.3.x
Closes gh-24338
4 years ago
Phillip Webb 837fc83527 Fix checkstyle header violations
See gh-24337
4 years ago
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
4 years ago
dreis2211 5ef6e09c64 Fix deprecation warnings in javadoc comments
See gh-24120
4 years ago
Stephane Nicoll b6fc0913cf Merge branch '2.3.x'
Closes gh-24104
4 years ago
Stephane Nicoll 515b18e142 Merge branch '2.3.x'
Closes gh-24108
4 years ago
Stephane Nicoll 9e901b6e07 Upgrade to Testcontainers 1.15.0
Closes gh-24103
4 years ago
Stephane Nicoll 23ad2b4156 Rationalize Testcontainers image versions
This commit rationalizes the Docker image names used in integration
tests.

Closes gh-24107
4 years ago
Brian Clozel 24f29a6516 Polish
See gh-24099
4 years ago
Stephane Nicoll 78fb3ccc53 Polish 4 years ago
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
4 years ago
Stephane Nicoll 45f1133e1e Merge branch '2.3.x' 4 years ago
Stephane Nicoll 339c8d0a26 Revert "Upgrade to Testcontainers 1.15.0" 4 years ago
Stephane Nicoll 5123eb0c74 Fix deprecation in Testcontainers 1.15.0
See gh-24103
4 years ago
Stephane Nicoll 7fb21fbff3 Merge branch '2.3.x'
Closes gh-24104
4 years ago
Stephane Nicoll c1a1b5fe71 Upgrade to Testcontainers 1.15.0
Closes gh-24103
4 years ago
Andy Wilkinson f3648d6fe1 Merge branch '2.3.x'
Closes gh-24030
4 years ago
Andy Wilkinson e83f3f40be Merge branch '2.2.x' into 2.3.x
Closes gh-24029
4 years ago
Andy Wilkinson a8b8f43180 Improve description of spring.datasource.initialization-mode
Closes gh-21121
4 years ago
Andy Wilkinson a1af99640e Merge branch '2.3.x'
Closes gh-24026
4 years ago
Andy Wilkinson 28f7bc37a5 Merge branch '2.2.x' into 2.3.x
Closes gh-24025
4 years ago
Andy Wilkinson c289ba0c2c Recommend disabling context root redirects with proxied Tomcat
Closes gh-22908
4 years ago
Andy Wilkinson f4e90f4512 Merge branch '2.3.x'
Closes gh-24016
4 years ago
Andy Wilkinson d1a9dba25d Polish "Avoid repeated calls of WebFlux and MVC registrations' getters"
See gh-23999
4 years ago
Michal Růžička 2aac5c0095 Avoid repeated calls of WebFlux and MVC registrations' getters
See gh-23999
4 years ago
Andy Wilkinson 73c444262b Merge branch '2.3.x'
Closes gh-24015
4 years ago
Andy Wilkinson f9ff39a7a6 Merge branch '2.2.x' into 2.3.x
Closes gh-24014
4 years ago
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
4 years ago
Andy Wilkinson 699f03d5a6 Merge branch '2.3.x'
Closes gh-24010
4 years ago
Andy Wilkinson 2dce4aa42b Merge branch '2.2.x' into 2.3.x
Closes gh-24009
4 years ago
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
4 years ago
Andy Wilkinson dbb954734e Correct replacement for stale-while-revalidate config property
Fixes gh-23980
4 years ago
Stephane Nicoll 62f26ee36f Remove code that's no longer used
Closes gh-23993
4 years ago
Stephane Nicoll 339b21cee7 Merge branch '2.3.x'
Closes gh-23992
4 years ago
Stephane Nicoll 1e9c9b9d73 Add missing default values in configuration properties metadata
Closes gh-23991
4 years ago
Andy Wilkinson c22e655848 Move spring.resources.* properties to spring.web.resources.*
Closes gh-23917
4 years ago
Phillip Webb 929d8fcd3c Update copyright year of changed files 4 years ago
Phillip Webb b0c2687aa9 Update copyright year of changed files 4 years ago
Andy Wilkinson a8705d19e5 Upgrade to Flyway 7.1.1
Closes gh-23932
4 years ago
Andy Wilkinson 2db8e7eebe Polish "Add liquibase driver class name property"
See gh-23958
4 years ago
Evgeniy Cheban 8a9b31aa69 Add liquibase driver class name property
See gh-23958
4 years ago
Andy Wilkinson ab21b55dc4 Revert "Upgrade to Flyway 7.1.0"
This reverts commit a6c6aba40d.

See gh-23932
4 years ago
Stephane Nicoll a6c6aba40d Upgrade to Flyway 7.1.0
Closes gh-23932
4 years ago
Andy Wilkinson 8f2e58e301 Merge branch '2.3.x'
Closes gh-23933
4 years ago
Andy Wilkinson 58aa34489f Wait for DataSource init before allowing context refresh to complete
Closes gh-22852
4 years ago
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
4 years ago
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
4 years ago
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
4 years ago
Madhura Bhave 0818f27f44 Configure WebSecurity using WebSecurityCustomizer
Replace `WebSecurityConfigurer` and `WebSecurityConfigurerAdapter`
configurations with `WebSecurityCustomizer` or `SecurityFilterChain`
beans.

Closes gh-23421
4 years ago
Stephane Nicoll e6c63b5b4e Polish
See gh-23914
4 years ago
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
4 years ago
Stephane Nicoll 9ab3abb728 Add support for SAML2 relying party registration's decryption credentials
Closes gh-23705
4 years ago
Andy Wilkinson 708c43a8d1 Upgrade to Flyway 7.0.4
Closes gh-23892
4 years ago
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
4 years ago
Stephane Nicoll cb31d9547c Merge branch '2.3.x' 4 years ago
Stephane Nicoll d1e503602b Polish 4 years ago
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
4 years ago
Stephane Nicoll d0975d659f Polish "Remove RabbitMQ AutoConfig Boolean Coercion"
See gh-23799
4 years ago
Gary Russell 32ce453997 Remove RabbitMQ AutoConfig Boolean Coercion
See gh-23799
4 years ago
Andy Wilkinson 2d8528d5bd Adapt to deprecation of StringUtils.isEmpty(Object)
See gh-23774
4 years ago
Stephane Nicoll 17e12ea025 Polish "Add configuration options for RabbitMQ's batch listener config"
See gh-23766
4 years ago