Commit Graph

1215 Commits (fb846f434fb91182d40c7bdf3a9a9a087232ad60)

Author SHA1 Message Date
Madhura Bhave 48b5b6a24c Polish "Added support for devtools YAML configuration"
See gh-17915
5 years ago
Andy Wilkinson b43827d626 Configure ping (formerly application) health indicator by default
This commit renames ApplicationHealthIndicator to PingHealthIndicator
and changes the auto-configuration so that it is now always configured
by default.

Closes gh-17926
5 years ago
Andy Wilkinson 05e089601e Remove default favicon and support for serving from classpath root
Closes gh-17925
5 years ago
Phillip Webb e03f822c6d Add support for health indicator groups
Update the `HealthEndpoint` to support health groups. The
`HealthEndpointSettings` interface has been replaced with
`HealthEndpointGroups` which provides access to the primary group
as well as an optional set of additional groups.

Groups can be configured via properties and may have custom
`StatusAggregator` and `HttpCodeStatusMapper` settings.

Closes gh-14022

Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
5 years ago
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
5 years ago
Phillip Webb 5f88c592b3 Polish 5 years ago
Madhura Bhave 7494a2baad Merge branch '2.1.x'
Closes gh-17880
5 years ago
Madhura Bhave 8d7deb7b67 Polish "Expand documentation on remote devtools"
See gh-17780
5 years ago
Sergei Petunin ab33bc7deb Expand documentation on remote devtools
See gh-17780
5 years ago
Stephane Nicoll 704992e657 Merge branch '2.1.x'
Closes gh-17855
5 years ago
Stephane Nicoll fcf4680626 Polish "Document how to add metadata for collection and enum default values"
Closes gh-12874
5 years ago
Madhura Bhave 178746d678 Update Opaque Token Client Name following upstream changes
Closes gh-17846
5 years ago
Madhura Bhave c178c9dd47 Merge branch '2.1.x' 5 years ago
Madhura Bhave 38d36ab18d Document how to add metadata for collection and enum default values
Closes gh-12874
5 years ago
Stephane Nicoll 2059147421 Merge branch '2.1.x'
Closes gh-17840
5 years ago
Stephane Nicoll 56c2a52ea4 Polish "Fix syntax errors in docs"
Closes gh-17835
5 years ago
Stephane Nicoll d02000ecc0 Merge branch '2.1.x'
Closes gh-17840
5 years ago
dreis2211 2e32af4737 Fix syntax errors in docs
See gh-17835
5 years ago
Madhura Bhave 4208be0154 Merge branch '2.1.x'
Closes gh-17818
5 years ago
Madhura Bhave 47a9bb1c0e Document that auto-configuration classes are not public API
Closes gh-16704
5 years ago
Madhura Bhave 7997971b0e Merge branch '2.1.x'
Closes gh-17815
5 years ago
Madhura Bhave 1b62a05c40 Document Prometheus Pushgateway support
Closes gh-16853
5 years ago
Madhura Bhave faaada1416 Remove liquibase check change log location
Missing change logs would lead to an exception even
if the checkChangeLogLocation was set to false. Spring Boot's check
would pass but Liquibase would fail later making this property redundant.

Fixes gh-16232
5 years ago
Stephane Nicoll 45915d085e Merge branch '2.1.x'
Closes gh-17767
5 years ago
Stephane Nicoll bacb4d1715 Polish "Refine back-off strategy of Neo4j SessionFactory"
See gh-17662
5 years ago
Phillip Webb 890ea153bf Allow endpoint @Selector to capture all paths
Update `@Selector` with a `match` attribute that can be used to select
all remaining path segments. An endpoint method like this:

	 select(@Selector(match = Match.ALL_REMAINING) String... selection)

Will now have all reaming path segments injected into the `selection`
parameter.

Closes gh-17743
5 years ago
Madhura Bhave 9000d7d845 Merge branch '2.1.x'
Closes gh-17693
5 years ago
Tomas Aschan 1b172dc4fe Clarify documentation about specifying main class
See gh-17003
5 years ago
Phillip Webb 6675f49334 Switch to multi-line security configuration
Now that we have lambda style security configuration we can further
improve readability by switching to one statement per line.

See gh-17525
5 years ago
Madhura Bhave 39a7b9da38 Switch to lambda style security configuration
Closes gh-17525
5 years ago
Phillip Webb 8bc780762a Merge branch '2.1.x' 5 years ago
Phillip Webb fb1dd8fe93 Merge branch '2.0.x' into 2.1.x 5 years ago
Phillip Webb 913e831f4e Merge '1.5.x' into 2.0.x 5 years ago
dreis2211 4805208716 Remove obsolete UnauthenticatedAccessExample
See gh-17614
5 years ago
Andy Wilkinson e7b94be9cd Polish "Document `@EmbeddedKafka` and its interaction with Spring Boot"
See gh-15834
5 years ago
Artem Bilan 4e79408bb0 Document `@EmbeddedKafka` and its interaction with Spring Boot
See gh-15834
5 years ago
Stephane Nicoll 94c35ae1de Polish "Make Actuator dedicated ConversionService configurable"
See gh-16449
5 years ago
Stephane Nicoll 26ee9150b2 Document WebFilter is scanned by @WebFluxTest
See gh-17601
5 years ago
Stephane Nicoll 94a757113d Document HandlerInterceptor is scanned by @WebMvcTest
See gh-17601
5 years ago
Stephane Nicoll a1f32bbd7a Merge branch '2.1.x'
Closes gh-17603
5 years ago
Stephane Nicoll 30fe10613d Improve how to configure configuration keys of a custom starter
Closes gh-17573
5 years ago
Stephane Nicoll 300f07b2a8 Polish 5 years ago
Andy Wilkinson ff9d0cf49b Merge branch '2.1.x'
Closes gh-17588
5 years ago
Andy Wilkinson 74f0e42c98 Make it clearer when there will be no auto-configured MessageSource
Closes gh-17485
5 years ago
Andy Wilkinson 78871d7a5d Tighten up sourceDocumentExtensions used for single and multi-page docs
Previously, the sourceDocumentExtension used for the single-page
documentation was htmlsingleadoc and for the multi-page docs they
were adoc and htmladoc. When finding source files to render, the
Asciidoctor Maven Plugin looks for files with a name that ends with
one of the configured extensions. This resulted in the
index.htmlsingleadoc file matching the adoc extention in the
multi-page configuration in addition to the intended match for the
index.htmladoc. As a result both the single-page and multi-page
indexes were rendered when rendering the multi-page documentation.

In addition to this unwanted rendering, if the single-page index was
rendered after the multi-page index, the multi-page index would be
overwritten by the single-page index, leaving the multi-page docs with
the wrong index file. Asciidoctor uses File.listFiles() during its
source file discovery which is documented as having no guarantee
that the resulting array will be in any specific order. As a result,
there was also no guarantee about which index we'd end up with.

Closes gh-17263
5 years ago
Andy Wilkinson 3dc20ff934 Recommend third-party tracing/observability solutions
Closes gh-17047
5 years ago
Andy Wilkinson 741d8735d2 Merge branch '2.1.x'
Closes gh-17576
5 years ago
dreis2211 43833c7bf0 Remove unused java-statsd-client dependencies
See gh-17508
5 years ago
Stephane Nicoll be988d7072 Polish "Add HealthIndicator for Hazelcast"
See gh-17499
5 years ago
Stephane Nicoll 62233a0750 Merge branch '2.1.x'
Closes gh-17554
5 years ago