Commit Graph

26227 Commits

Author SHA1 Message Date
Phillip Webb
3c535e0de3 Add HealthContributor and refactor HealthEndpoint
Overhaul `HealthEndpoint` support to make it easier to support health
groups. Prior to this commit the `HealthIndicator` interface was used
for both regular indicators and composite indicators. In addition the
`Health` result was used to both represent individual, system and
composite health. This design unfortunately means that all health
contributors need to be aware of the `HealthAggregator` and could not
easily support heath groups if per-group aggregation is required.

This commit reworks many aspects of the health support in order to
provide a cleaner separation between a `HealthIndicator`and a
composite. The following changes have been made:

- A `HealthContributor` interface has been introduced to represent
  the general concept of something that contributes health information.
  A contributor can either be a `HealthIndicator` or a
  `CompositeHealthContributor`.

- A `HealthComponent` class has been introduced to mirror the
  contributor arrangement. The component can be either
  `CompositeHealth` or `Health`.

- The `HealthAggregator` interface has been replaced with a more
  focused `StatusAggregator` interface which only deals with `Status`
  results.

- `CompositeHealthIndicator` has been replaced with
  `CompositeHealthContributor` which only provides access to other
  contributors. A composite can no longer directly return `Health`.

- `HealthIndicatorRegistry` has been replaced with
  `HealthContributorRegistry` and the default implementation now
  uses a copy-on-write strategy.

- `HealthEndpoint`, `HealthEndpointWebExtension` and
  `ReactiveHealthEndpointWebExtension` now extend a common
  `HealthEndpointSupport` class. They are now driven by a
  health contributor registry and `HealthEndpointSettings`.

- The `HealthStatusHttpMapper` class has been replaced by a
  `HttpCodeStatusMapper` interface.

- The `HealthWebEndpointResponseMapper` class has been replaced
  by a `HealthEndpointSettings` strategy. This allows us to move
  role related logic and `ShowDetails` to the auto-configure module.

- `SimpleHttpCodeStatusMapper` and `SimpleStatusAggregator`
  implementations have been added which are configured via constructor
  arguments rather than setters.

- Endpoint auto-configuration has been reworked and the
  `CompositeHealthIndicatorConfiguration` class has been replaced
  by `CompositeHealthContributorConfiguration`.

- The endpoint JSON has been changed make `details` distinct from
  `components`.

See gh-17926
2019-08-21 18:43:25 -07:00
Andy Wilkinson
24b5b0d93e Polish 2019-08-21 15:50:33 +01:00
Andy Wilkinson
87339405f3 Merge branch '2.1.x'
Closes gh-17928
2019-08-21 15:18:13 +01:00
Andy Wilkinson
abe3d38527 Fix OoM error when starting Tomcat with max int load on startup
Fixes gh-17927
2019-08-21 15:17:54 +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
Madhura Bhave
55c6ee71c1 Include logger group with configuredLevel in docs
Closes gh-17772
2019-08-20 22:48:26 -07:00
Phillip Webb
5f88c592b3 Polish 2019-08-20 19:27:43 -07: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
Stephane Nicoll
752bb0f5ab Start building against Spring Kafka 2.3.0 snapshots
See gh-17902
2019-08-20 10:46:00 +02:00
Stephane Nicoll
9dd6edbe56 Start building against Spring Integration 5.2.0 snapshots
See gh-17901
2019-08-20 10:45:20 +02:00
Stephane Nicoll
b2e024f22e Start building against Spring HATEOAS 1.0.0 snapshots
See gh-17904
2019-08-20 10:44:32 +02:00
Stephane Nicoll
e984874e96 Start building against Spring Data Moore snapshots
See gh-17900
2019-08-20 10:44:32 +02:00
Stephane Nicoll
3c0a41646b Start building against Spring Batch 4.2.0 snapshots
See gh-17899
2019-08-20 10:44:27 +02:00
Stephane Nicoll
4b6e3b2a59 Start building against Reactor Dysprosium snapshots
See gh-17895
2019-08-20 10:01:31 +02:00
Andy Wilkinson
e805b6ea6e Upgrade to Mockito 3.0.0
Closes gh-17803
2019-08-19 18:25:07 +01: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
Andy Wilkinson
f916e1a1ce Document response structure for retrieving a logger group
Closes gh-17909
2019-08-19 14:18:41 +01:00
Stephane Nicoll
3bc65f4fec Upgrade to Kotlin coroutines 1.3.0-RC2
See gh-17907
2019-08-19 11:30:08 +02:00
Stephane Nicoll
a43e4c7a21 Start building against Spring Framework 5.2.0 snapshots
See gh-17896
2019-08-19 11:27:22 +02:00
Stephane Nicoll
7f06504006 Detect ConfigurationProperties using autowiring constructor
This commit improves InvalidConfigurationPropertiesException failure
analysis by adding a dedicated description when a single autowiring
constructor is found. When @Component is removed, such constructor is
used for properties binding and will not apply the same semantics as
before.

Closes gh-17750
2019-08-19 11:01:49 +02:00
LiangYong
a5746d0a03 Simplify some code
See gh-17893
2019-08-19 07:24:54 +02:00
thelproad
9c1f503e46 Simplify if statements
See gh-17884
2019-08-17 06:50:32 +02:00
Stephane Nicoll
fc0cee5ea7 Merge branch '2.1.x' 2019-08-17 06:47:33 +02:00
lijuny
d33ed84f1f Remove redundant code
See gh-17875
2019-08-17 06:41:10 +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
dab815af40 Simplify mockmvc security in tests following upstream changes
SecurityMockMvcConfigurer now honors filter order so we can use that instead
of manually adding the filter.
2019-08-16 10:51:57 -07:00
Andy Wilkinson
a785a5b58a Test the Gradle Plugin against Gradle 5.6
Closes gh-17883
2019-08-16 08:46:48 +01:00
dreis2211
56940fca97 Test the Gradle Plugin against Gradle 5.6
See gh-17876
2019-08-16 08:45:33 +01: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
09b690b3c9 Fix tests 2019-08-15 17:53:19 -07:00
Madhura Bhave
7494a2baad Merge branch '2.1.x'
Closes gh-17880
2019-08-15 15:15:50 -07:00
Madhura Bhave
8d7deb7b67 Polish "Expand documentation on remote devtools"
See gh-17780
2019-08-15 15:11:10 -07:00
Sergei Petunin
ab33bc7deb Expand documentation on remote devtools
See gh-17780
2019-08-15 15:09:43 -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
186530478c Bypass Spring security authentication for remote devtools endpoint
Closes gh-17878
2019-08-15 10:34:53 -07:00
Madhura Bhave
4b4dc28a86 Support non-standard error codes with AbstractErrorWebExceptionHandler
Fixes gh-16691
2019-08-15 08:21:04 -07:00
lijuny
64344214e1 Delete redundant variables
See gh-17864
2019-08-15 07:05:10 +02:00
Andy Wilkinson
ba4c5be2fd Remove unused field
See gh-17562
2019-08-14 19:41:14 +01:00
Stephane Nicoll
6f28f41774 Polish "Simplify some code"
See gh-17860
2019-08-14 08:55:20 +02:00
jason
4bb842343a Simplify some code
See gh-17860
2019-08-14 08:53:02 +02:00