Commit Graph

13970 Commits

Author SHA1 Message Date
Stephane Nicoll
0424689aee Merge branch '2.2.x' into 2.3.x
Closes gh-23930
2020-10-28 16:18:00 +01:00
Stephane Nicoll
93e36a97ab Remove version elements from Maven plugin documentation
This commit removes `<version>` from the Maven Plugin documentation
where it makes sense so that versions aren't hardcoded unnecessarily.

Rather, a plugin or dependency management should be in place so those
are not needed.

Closes gh-23909
2020-10-28 13:39:03 +01:00
Stephane Nicoll
a3818d690e Fix custom layout example so that tokens are replaced 2020-10-28 13:37:59 +01:00
Andy Wilkinson
74ec5f65d1 Make isPresent check more Graal-friendly
Closes gh-23925
2020-10-28 10:30:11 +00:00
Andy Wilkinson
506f7acc8d Streamline use of TestContextAnnotationUtils
See gh-12470
2020-10-28 10:20:14 +00:00
Andy Wilkinson
d9084eab67 Provide Mockito with a MockResolver that removes Spring-created proxies 2020-10-28 09:43:09 +00:00
Andy Wilkinson
6b437ece54 Inherit enclosing class's configuration in nested tests
Fixes gh-12470
2020-10-28 08:56:42 +00:00
Stephane Nicoll
b0a1c2a740 Upgrade to Spring HATEOAS 1.2.0
Closes gh-23779
2020-10-28 09:06:34 +01:00
Stephane Nicoll
65d76f2fe8 Upgrade to Mockito 3.6.0
Closes gh-23924
2020-10-28 08:25:50 +01:00
Stephane Nicoll
a55325f0ad Upgrade to Lettuce 6.0.1.RELEASE
Closes gh-23923
2020-10-28 08:25:41 +01:00
Andy Wilkinson
12dcf147be Polish
See gh-21454
2020-10-28 07:09:47 +00:00
Stephane Nicoll
c02b16eeeb Upgrade to Lettuce 5.3.5.RELEASE
Closes gh-23922
2020-10-28 08:03:44 +01:00
Phillip Webb
2e2b371679 Add auto-trimming support to configtree sources
Update `ConfigTreePropertySource` with an option to automatically trim
trailing new-line characters.

Closes gh-23826
2020-10-27 22:22:59 -07:00
Phillip Webb
cf673cee55 Use stricter document properties separator logic
Update `OriginTrackedPropertiesLoader` with stricter logic around the
document separator. If the preceding or following lines are comments
then the separator will be ignored.

Closes gh-22963
2020-10-27 21:43:44 -07:00
Phillip Webb
0588e989af Don't adapt RandomPropertySource
Stop adapting `RandomPropertySource` to `ConfigurationPropertySource`
since it's not useful as a binding source.

Closes gh-21659
2020-10-27 20:41:13 -07:00
Phillip Webb
11a153869f Polish 'Support nested @PropertyMapping annotations'
See gh-23146
2020-10-27 18:49:04 -07:00
Stefan Zwanenburg
edf4c833c2 Support nested @PropertyMapping annotations
Update `AnnotationsPropertySource` so that nested annotations are
supported. Prior to this commit, annotations annotated with
`@PropertyMapping` that contained nested annotation attributes would
result in instances of `TypeMappedAnnotation` being used as properties.
This usually led to errors due to not being able to convert those to
Strings. This commit makes it so that nested annotations are recursively
mapped to properties. This should allow for more complex configuration
to be mapped from annotations.

See gh-23146
2020-10-27 18:48:46 -07: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
Phillip Webb
a0862f9146 Support wildcard configtree imports
Update `ConfigTreeConfigDataResource` so that a wildcard suffix can
be used to import multiple folders. The pattern logic from
`StandardConfigDataLocationResolver` has been extracted into a new
`LocationResourceLoader` class so that it can be reused.

Closes gh-22958
2020-10-27 14:14:23 -07:00
Stephane Nicoll
8b6b0505fb Upgrade to Spring Framework 5.3.0
Closes gh-23774
2020-10-27 16:59:16 +01:00
Andy Wilkinson
b9516bc77c Await registration of http.server.requests meter
Previously, the test would make an HTTP request and, as soon as the
response was received, it would check the presence and value of the
http.server.requests meter. This create a race condition between the
meter being registered once the response had been flushed and the
meter's presence being checked. If the check won the race, the test
would fail.

This commit updates the test to wait for up to 5 seconds for the
meter to be present and have a count of 1, matching the single request
that has been made.

Fixes gh-23919
2020-10-27 15:54:22 +00:00
Andy Wilkinson
9854e3019b Polish 2020-10-27 14:59:10 +00:00
Stephane Nicoll
41f3470e09 Upgrade to Spring Framework 5.2.10
Closes gh-23526
2020-10-27 15:49:21 +01:00
Stephane Nicoll
8b49f792cb Upgrade to Spring Framework 5.2.10
Closes gh-23773
2020-10-27 15:48:17 +01:00
Stephane Nicoll
4561f068aa Upgrade to Rsocket 1.1.0
Closes gh-23912
2020-10-27 15:10:49 +01:00
Andy Wilkinson
689d0c8307 Remove skipping of spring-boot-* projects from DevTools restart triggers
Closes gh-23158
2020-10-27 12:09:17 +00: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
Stephane Nicoll
ca08664ebd Upgrade to Reactor 2020.0.0
Closes gh-23771
2020-10-27 04:29:22 +01:00
Stephane Nicoll
e6c63b5b4e Polish
See gh-23914
2020-10-27 04:25:17 +01:00
Stephane Nicoll
a7f6c3652a Upgrade to Kotlin Coroutines 1.4.0
Close gh-23913
2020-10-27 03:58:26 +01:00
Stephane Nicoll
4769889c6b Upgrade to JUnit 4.13.1
Closes gh-23876
2020-10-27 03:41:23 +01:00
Stephane Nicoll
30a9424f6c Upgrade to JUnit Jupiter 5.6.3
Closes gh-23915
2020-10-27 03:40:41 +01:00
Stephane Nicoll
f727db3866 Upgrade to RSocket 1.0.3
Closes gh-23911
2020-10-27 03:37:58 +01:00
Stephane Nicoll
d5cb6c1a4f Upgrade to RSocket 1.0.3
Closes gh-23910
2020-10-27 03:25:59 +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
Scott Frederick
1a3f810cd8 Prevent serialization exception from Env actuator
When `EnvironmentEndpoint` is building a response to return to the
web infrastructure, it creates a data structure containing all
property values from all property sources. Prior to this commit, it
was possible for the response data structure to contain property
values that were not serializable to JSON by Jackson, which would
cause an exception to be thrown by the web infrastructure. This
commit ensures the data structure is serializable to JSON by
ensuring property values are primitives or Strings, and returning
a placeholder value if a property value is of any other type.

Fixes gh-23805
2020-10-26 14:26:41 -05:00
Stephane Nicoll
3119e85a32 Upgrade to Reactor Dysprosium-SR13
Closes gh-23770
2020-10-26 18:17:13 +01:00
Stephane Nicoll
7fa5ff46f7 Upgrade to Reactor Dysprosium-SR13
Closes gh-23769
2020-10-26 18:15:58 +01:00
Phillip Webb
5e26954068 Provide default charset properties
Fixed gh-23827
2020-10-26 08:57:06 -07:00
Andy Wilkinson
abfdfc3e5f Merge branch '2.3.x'
Closes gh-23908
2020-10-26 14:45:18 +00: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
c0bb6ff667 Await registration of http.server.requests meter
Previously, the test would make an HTTP request and, as soon as the
response was received, it would check the presence and value of the
http.server.requests meter. This create a race condition between the
meter being registered once the response had been flushed and the
meter's presence being checked. If the check won the race, the test
would fail.

This commit updates the test to wait for up to 5 seconds for the
meter to be present and have a count of 1, matching the single request
that has been made.

Fixes gh-23863
2020-10-26 14:41:58 +00:00
Andy Wilkinson
10f887a5ad Introduce management base-path property for servlet and reactive actuator
Previously, the base path of a servlet-based management server could be
configured using management.server.servlet.context-path but there was no
equivalent property for WebFlux.

This commit introduces a new property, management.server.base-path,
that can be used with both servlet and reactive management servers. The
existing servlet-specific property has been deprecated in favour of the
new general property. When using the servlet stack, if both the general
property and the servlet-specific property are set, the new general
property takes precedence. When using the reactive stack, only the new
general property is considered.

Closes gh-22906
2020-10-26 14:16:29 +00:00
Andy Wilkinson
653e64c4ef Upgrade to SendGrid 4.6.7
Closes gh-23906
2020-10-26 13:39:01 +00:00
Andy Wilkinson
1cf842cbf7 Upgrade to Rabbit AMQP Client 5.10.0
Closes gh-23905
2020-10-26 13:39:01 +00:00
Andy Wilkinson
5a35d3fd3d Upgrade to R2DBC Bom Arabba-SR8
Closes gh-23904
2020-10-26 13:39:01 +00:00
Andy Wilkinson
7fd392e66b Upgrade to Postgresql 42.2.18
Closes gh-23903
2020-10-26 13:39:01 +00:00
Andy Wilkinson
e57b65d719 Upgrade to Oracle Database 19.8.0.0
Closes gh-23902
2020-10-26 13:39:00 +00:00