Commit Graph

1294 Commits (b6135ce919080326be3582c28ca7dab03bc193d7)

Author SHA1 Message Date
Brian Clozel b680db6cd8 Add HealthEndpointGroupsRegistry and its Customizer
Prior to this commit, `HealthContributor` would be exposed under the
main `HealthEndpoint` and subgroups, `HealthEndpointGroups`. Groups are
driven by configuration properties and there was no way to contribute
programmatically new groups.

This commit introduces the `HealthEndpointGroupsRegistry` (a mutable
version of `HealthEndpointGroups`) and a
`HealthEndpointGroupsRegistryCustomizer`. This allows configurations to
add/remove groups during Actuator auto-configuration.

Closes gh-20554
5 years ago
Stephane Nicoll abe43b2e83 Upgrade to Couchbase SDK v3
This commit upgrades to the Couchbase SDK v3 which brings the following
breaking changes:

* Bootstrap hosts have been replaced by a connection string and the
authentication is now mandatory.
* A `Bucket` is no longer auto-configured. The
`spring.couchbase.bucket.*` properties have been removed
* `ClusterInfo` no longer exists and has been replaced by a dedicated
API on `Cluster`.
* `CouchbaseEnvironment` no longer exist in favour of
`ClusterEnvironment`, the customizer has been renamed accordingly.
* The bootstrap-related properties have been removed. Users requiring
custom ports should supply the seed nodes and initialize a Cluster
themselves.
* The endpoints-related configuration has been consolidated in a
single IO configuration.

The Spring Data Couchbase provides an integration with the new SDK. This
leads to the following changes:

* A convenient `CouchbaseClientFactory` is auto-configured.
* Repositories are configured against a bucket and a scope. Those can
be set via configuration in `spring.data.couchbase.*`.
* The default consistency property has been removed in favour of a more
flexible annotation on the repository query methods instead. You can now
specify different query consistency on a per method basis.
* The `CacheManager` implementation is provided, as do other stores for
consistency so a dependency on `couchbase-spring-cache` is no longer
required.

See gh-19893

Co-authored-by: Michael Nitschinger <michael@nitschinger.at>
5 years ago
dreis2211 3e24df3beb Fix method order checkstyle issue
See gh-20525
5 years ago
Andy Wilkinson 0315724126 Cache endpoint responses on a per-principal basis
Previously, any HTTP request to an endpoint that included a principal
would bypass the cache. This prevented authenticated requests from
making use of the cache and its configurable time-to-live.

This commit updates the caching operation invoker to include the
principal, if any, in its cache key. As a result, requests that
include a principal will make use of the cache, potentially returning
the result of a previous invocation of the same endpoint by the same
principal.

Closes gh-19538
5 years ago
Andy Wilkinson ef9960c69f Allow additional tags to be contributed to WebMvc and WebFlux defaults
Closes gh-20175
5 years ago
Andy Wilkinson c917b61484 Reinstate leading / in default value for spring.liquibase.change-log
Unfortunately, while redundant for new applications, removing the
leading slash adversely affected existing application upon upgrades as
it caused Liquibase to re-apply every change log.

Closes gh-20177
5 years ago
Stephane Nicoll 278f769f80 Merge branch '2.2.x' 5 years ago
Stephane Nicoll 1fdb08300b Polish 5 years ago
Scott Frederick 185f644877 Remove the body from actuator 404 responses
When a request to the /actuator/env/{toMatch} endpoint does not match a
property, a response status 404 was being returned along with a body
containing the existing property sources. This commit removes the body
from the response to be more consistent with a typical 404 response.

Fixes gh-20314
5 years ago
Stephane Nicoll fa8a09d46d Merge branch '2.2.x'
Closes gh-20395
5 years ago
dreis2211 f08a9db984 Fix some deprecations
See gh-20388
5 years ago
Johnny Lim bd08b4d91c Polish DataSourceHealthIndicator
See gh-20367
5 years ago
Stephane Nicoll 51c29229d3 Polish "Improve details of neo4h health indicator"
See gh-20356
5 years ago
Said BOUDJELDA b09d5d27e0 Improve details of neo4h health indicator
This commit changes the neo4j health indicator to provide the version
and edition of the neo4j database.

See gh-20356
5 years ago
Stephane Nicoll 89e5c285e5 Merge branch '2.2.x'
Closes gh-20387
5 years ago
Johnny Lim 1721aeccb0 Use ServerHttpResponse.getRawStatusCode() in WebFluxTags
See gh-19987
5 years ago
Stephane Nicoll 925756dae1 Polish "Add descriptions for data source pool metrics"
See gh-20354
5 years ago
Johnny Lim 21a0b0544a Add descriptions for data source pool metrics
See gh-20354
5 years ago
Stephane Nicoll 45e6058761 Add R2BC connection pool metrics
This commit adds metrics support for `ConnectionPool` beans.

See gh-19988

Co-authored-by: Mark Paluch <mpaluch@pivotal.io>
Co-authored-by: Tadaya Tsuyukubo <tadaya@ttddyy.net>
5 years ago
Stephane Nicoll bee7302fc7 Add R2BC connection factory health check
This commit adds an health indicator for R2DBC. If a validation query is
provided, it is used to validate the state of the database. If not, a
check of the connection is issued.

See gh-19988

Co-authored-by: Mark Paluch <mpaluch@pivotal.io>
5 years ago
Brian Clozel e73ee7b3fe Merge branch '2.2.x'
Closes gh-20293
5 years ago
Brian Clozel 11b9862064 Revert "Clear ProducesRequestCondition cache attribute"
Closes gh-20292
5 years ago
Brian Clozel ab72cc8fdb Revert "Add actuator specific ObjectMapper"
See gh-12951
See gh-20291
5 years ago
Dmytro Nosan 1a8c321a7b Support nested requests in MetricsClientHttpRequestInterceptor
Prior to this commit, requests made by `HttpRequestInterceptor`
instances configured on `RestTemplate` would not be recorded
properly.

This commit ensures that nested requests are recorded separately.

Closes gh-20231
5 years ago
Stephane Nicoll 26c673a1a4 Merge branch '2.2.x' 5 years ago
Stephane Nicoll 592ae85043 Merge branch '2.1.x' into 2.2.x 5 years ago
Stephane Nicoll 6aeff91f50 Polish 5 years ago
Stephane Nicoll 287d577aea Merge branch '2.2.x'
Closes gh-20218
5 years ago
Stephane Nicoll 16111f126e Use query-less datasource validation by default
This commit changes DataSourceHealthIndicator to validate the connection
rather than issuing a query to the database. If a custom validation
query is specified, it uses that as before.

Closes gh-17582
5 years ago
Brian Clozel e59d3fbb86 Clear ProducesRequestCondition cache attribute
As of spring-projects/spring-framework#22644, Spring Framework caches
the "produces" condition when matching for endpoints in the
`HandlerMapping` infrastructure. This has been improved in
spring-projects/spring-framework#23091 to prevent side-effects in other
implementations.

Prior to this commit, the Spring Boot actuator infrastructure for
`EndpointHandlerMapping` would not clear the cached attribute,
presenting the same issue as Spring Framework's infrastructure. This
means that a custom arrangement with custom `HandlerMapping` or
`ContentTypeResolver` would not work properly and reuse the cached
produced conditions for other, unintented, parts of the handler mapping
process.

This commit clears the cached data and ensures that other handler
mapping implementations are free of that side-effect.

Fixes gh-20150
5 years ago
Stephane Nicoll 03bee83991 Update copyright date
See gh-20192
5 years ago
zhangt2333 e2d87a89d0 Polish
See gh-20192
5 years ago
Stephane Nicoll 2ede9e63b9 Merge branch '2.1.x' into 2.2.x
Closes gh-20117
5 years ago
Stephane Nicoll 32c1dd45a9 Revert "Merge pull request #19926 from xak2000"
Closes gh-19926
5 years ago
Brian Clozel 97af0b2f3a Add actuator specific ObjectMapper
Prior to this commit, Actuator endpoints would use the application
ObjectMapper instance for serializing payloads as JSON. This was
problematic in several cases:

* application-specific configuration would change the actuator endpoint
output.
* choosing a different JSON mapper implementation in the application
would break completely some endpoints.

Spring Boot Actuator already has a hard dependency on Jackson, and this
commit uses that fact to configure a shared `ObjectMapper` instance that
will be used by the Actuator infrastructure consistently, without
polluting the application context.

This `ObjectMapper` is used in Actuator for:

* JMX endpoints
* Spring MVC endpoints with an HTTP message converter
* Spring WebFlux endpoints with an `Encoder`
* Jersey endpoints with a `ContextResolver<ObjectMapper>`

For all web endpoints, this configuration is limited to the
actuator-specific media types such as
`"application/vnd.spring-boot.actuator.v3+json"`.

Fixes gh-12951
5 years ago
Stephane Nicoll 466c1ba251 Merge branch '2.2.x'
Closes gh-20118
5 years ago
Stephane Nicoll a425cc1b46 Merge branch '2.1.x' into 2.2.x
Closes gh-20117
5 years ago
Ruslan Stelmachenko 5f7e1ac4f2 Remove unnecessary leading slash in changelog locations
See gh-19926
5 years ago
Madhura Bhave 19b7dc8e4f Merge branch '2.2.x'
Closes gh-20114
5 years ago
Madhura Bhave d485708f68 Fix 404 when composite contributor is added to a group
Fixes gh-19974
5 years ago
Madhura Bhave eeab9233cc Merge branch '2.2.x'
Closes gh-20056
5 years ago
Madhura Bhave acc453db4a Polish contribution
See gh-19999
5 years ago
cbono badc83d368 Add 'uris', 'address' and 'addresses' to keys to sanitize.
See gh-19999
5 years ago
Stephane Nicoll 1c87325420 Merge branch '2.2.x' 5 years ago
Stephane Nicoll d85bdfb23c Fix checkstyle violation 5 years ago
Stephane Nicoll 9aef2bde77 Merge branch '2.2.x'
Closes gh-20030
5 years ago
Stephane Nicoll 10643b7702 Polish "Stop time web metrics when autotime is disabled"
See gh-19981
5 years ago
babjo e323e05eea Stop time web metrics when autotime is disabled
See gh-19981
5 years ago
Scott Frederick 60f5bb1636 Remove health actuator code deprecated in 2.2
This partially re-applies the deprecation removal from commit
df1837a16b,
without removing CompositeHealthIndicator, HealthAggregator, and related
configuration that is required by Spring Cloud.
5 years ago
Scott Frederick de1a26cf35 Revert "Remove deprecated HealthIndicator and HealthAggregator 2.2 code"
This reverts commit df1837a16b.
5 years ago
Stephane Nicoll b5e23e7405 Update copyright year of changed files
See gh-20020
5 years ago
Johnny Lim b67ece48e4 Polish
See gh-20020
5 years ago
Stephane Nicoll c4daff7225 Polish "Upgrade to MongoDB Java Driver 4.0 beta1"
See gh-19960
5 years ago
Christoph Strobl d2d6dbdc00 Upgrade to MongoDB Java Driver 4.0 beta1
See gh-19960
5 years ago
dreis2211 56df70b0e7 Use Spring 5 module of Jersey
See gh-20009
5 years ago
Johnny Lim e6d5f5a271 Polish
See gh-19995
5 years ago
Andy Wilkinson 6db5ca97d3 Sort names alphabetically in metrics list response
Closes gh-19934
5 years ago
Madhura Bhave dc542b29d8 Merge branch '2.2.x'
Closes gh-19977
5 years ago
Johnny Lim f3aed11714 Update test name in WebFluxTagsTests
See gh-19976
5 years ago
Stephane Nicoll cb7e8cdbef Merge branch '2.2.x'
Closes gh-19904
5 years ago
Stephane Nicoll 99330325c0 Merge branch '2.1.x' into 2.2.x
Closes gh-19903
5 years ago
Stephane Nicoll 7fd8cce465 Polish "Close TomcatMetrics on shutdown for cleanup"
See gh-19880
5 years ago
Johnny Lim 51dfd528bd Close TomcatMetrics on shutdown for cleanup
See micrometer-metrics/micrometer#1424
See gh-19880
5 years ago
Phillip Webb 77bbe089b2 Update copyright year of changed files 5 years ago
Phillip Webb e0013454b5 Use parentheses when declaring dependencies
Update all dependencies declarations to use the form `scope(reference)`
rather than `scope reference`.

Prior to this commit we declared dependencies without parentheses unless
we were forced to add them due to an `exclude`.
5 years ago
Phillip Webb 0209cd3e4c Polish quote form used in Gradle scripts
Replace Gradle single quote strings with the double quote form
whenever possible. The change helps to being consistency to the
dependencies section where mostly single quotes were used, but
occasionally double quotes were required due to `${}` references.
5 years ago
Stephane Nicoll 08967bca3e Merge branch '2.2.x'
Closes gh-19843
5 years ago
Stephane Nicoll 84324c438b Merge branch '2.1.x' into 2.2.x
Closes gh-19842
5 years ago
Stephane Nicoll 34c263a828 Polish actuator dependencies and test resources
This commit removes references of cache infra following the move to
Micrometer. We no longer ships an infinispan specific binder so the
dependency has been removed as well.

Closes gh-19838
5 years ago
dreis2211 991bcf5ce4 Revisit documentation that mentions Gradle "compile" configuration
See gh-19797
5 years ago
Scott Frederick 8f102aee68 Remove deprecated 2.2 code
See gh-19699
5 years ago
Scott Frederick 2e32cb2af1 Remove deprecated HealthIndicator and HealthAggregator 2.2 code
See gh-19699
5 years ago
Scott Frederick 1f1b06dfe2 Remove deprecated Actuator metrics 2.2 code
See gh-19699
5 years ago
Scott Frederick 7031a3b17d Remove deprecated logging properties
See gh-19699
5 years ago
Stephane Nicoll 421c464dd8 Deprecate CachingOperationInvoker#apply
This commit deprecates the only public accessor to
`CacheOperationInvoker` so that we can make the entire class package
private in the next feature release.

Closes gh-19089
5 years ago
Andy Wilkinson 443d1a6a21 Upgrade to Liquibase 3.8.5
Closes gh-19754
5 years ago
Andy Wilkinson 714a187d8f Rework dep mgmt again to avoid consumers picking up strict constraints
This paves the way for publishing Gradle module metadata once the
problem caused by snapshot versions and our two-step publication
process has been addressed.

See gh-19609
5 years ago
Andy Wilkinson aefe52e4d0 Revert "Rework dep management to avoid consumers picking up strict constraints"
This reverts commit b34a311d02 as,
having disabled the publishing of Gradle's module metadata (4f75ab5),
the changes are no longer needed.

See gh-19609
5 years ago
Phillip Webb 862462b791 Update copyright year of changed files 5 years ago
Phillip Webb 1e5ba09a3e Merge branch '2.2.x' 5 years ago
Phillip Webb 15652ae4c1 Update copyright year of changed files 5 years ago
Madhura Bhave d1f51e064b Merge branch '2.2.x'
Closes gh-19701
5 years ago
Madhura Bhave e60194c7d5 Ignore trailing slash when recording Web metrics
Fixes gh-18207
5 years ago
Scott Frederick c789592e26 Remove support for deprecated Elasticsearch Jest client
Closes #19676
5 years ago
Andy Wilkinson b34a311d02 Rework dep management to avoid consumers picking up strict constraints
Previously, enforcedPlatform dependencies were using to pull in the
constraints defined in spring-boot-dependencies and
spring-boot-parent and applied them strictly so that the constrained
version had to be used. This worked as intended in Spring Boot's own
build but incorrectly enforced those same strict version requirements
on external consumers of Spring Boot's modules.

This commit reworks how Spring Boot defines its internal dependency
management so that platform dependencies are exposed to external
consumers while enforced platform dependencies are using internally.

See gh-19609
5 years ago
Stephane Nicoll ca1710ee56 Upgrade to Apache Cassandra 4.3.1
See gh-19588
5 years ago
Dmytro Nosan 25838b4794 Support nested requests in MetricsClientHttpRequestInterceptor
Prior to this commit, requests made by `HttpRequestInterceptor`
instances configured on `RestTemplate` would not be recorded
properly.

This commit ensures that nested requests are recorded separately.

See gh-19381
5 years ago
Andy Wilkinson 7595336184 Build against Spring Integration 5.3.0.M1 snapshots
See gh-19650
5 years ago
Andy Wilkinson ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
5 years ago
Madhura Bhave abe95fa8a7 Merge branch '2.2.x'
Closes gh-19600
5 years ago
Madhura Bhave 7f0573df49 Fallback on underlying server default when determining outcome tag
This commit also changed the default outcome to SUCCESS

Fixes gh-19367
5 years ago
Stephane Nicoll 7d6f4a6666 Merge branch '2.2.x'
Closes gh-19590
5 years ago
Stephane Nicoll 99c64b7cdf Merge branch '2.1.x' into 2.2.x
Closes gh-19589
5 years ago
Matthias Stock adfbbcc0f6 Simplify validation pattern of EndpointId
See gh-19584
5 years ago
Andy Wilkinson 4efd8ba587 Merge branch '2.2.x'
Closes gh-19574
5 years ago
Andy Wilkinson 02965e9744 Fix javadoc warnings
Fixes gh-19572
5 years ago
Stephane Nicoll 6fc52b0563 Polish 5 years ago
Stephane Nicoll 2c1e81adf0 Polish 5 years ago
Phillip Webb 695de2c6f5 Polish end-to-end configuration properties tracing
See gh-14880
5 years ago
Madhura Bhave 8dcf1e4033 Provide end-to-end traceability for config properties
Closes gh-14880

Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
5 years ago
Stephane Nicoll 20bebdc07d Merge branch '2.2.x'
Closes gh-19331
5 years ago
dreis2211 b1158bf35d Simplify some Stream API usages
See gh-19291
5 years ago
Madhura Bhave b42bc1b23d Merge branch '2.2.x'
Closes gh-19314
5 years ago
Madhura Bhave ed571bab24 Merge branch '2.1.x' into 2.2.x
Closes gh-19313
5 years ago
dreis2211 20ff764756 Increase cache ttl in CachingOperationInvokerTests
See gh-19193
5 years ago
Andy Wilkinson ae5ec4e41a Merge branch '2.2.x'
Closes gh-19300
5 years ago
Andy Wilkinson 758b80a0fe Merge branch '2.1.x' into 2.2.x
Closes gh-19299
5 years ago
luoyuan c6a184474c Remove redundant hasText check as query always has text
See gh-19290
5 years ago
Madhura Bhave 0a2387ed0b Merge branch '2.2.x'
Closes gh-19279
5 years ago
Madhura Bhave 2c4a1f1c15 Display @Validated constructor bound properties in configprops endpoint
Fixes gh-19219
5 years ago
Andy Wilkinson b6fb251097 Merge branch '2.2.x'
Closes gh-19191
5 years ago
Andy Wilkinson 189f74220c Merge branch '2.1.x' into 2.2.x
Closes gh-19190
5 years ago
Andy Wilkinson e8eace2d5b Polish "Fix Liquibase endpoint's output with multiple datasources"
See gh-19171
5 years ago
Leo Li 5302d91930 Fix Liquibase endpoint's output with multiple datasources
Previously, the endpoint used the same change log history service for
for each SpringLiquibase bean that it processed. This resulted in
pollution of the reported changes as the history of each bean was not
isolated.

This commit updates the endpoint to use a new history service for each
SpringLiquibase bean that is processed.

See gh-19171
5 years ago
Stephane Nicoll 79201b61b6 Merge branch '2.2.x'
Closes gh-19158
5 years ago
Stephane Nicoll ce16c9e945 Merge branch '2.1.x' into 2.2.x
Closes gh-19157
5 years ago
Stephane Nicoll 2356462587 Polish "Remove '.' and '-' reference in the EndpointId javadoc"
See gh-19101
5 years ago
Lars Grefer 58e599b6c1 Remove '.' and '-' reference in the EndpointId javadoc
Endpoint ID's which contain '-' or '.' cause a deprecation warning.
Therefore they shouldn't be doumented as valid characters.

See gh-19101
5 years ago
dreis2211 8a730ff630 Use DateTimeFormatter in favor of SimpleDateFormat
See gh-19142
5 years ago
Stephane Nicoll 12c5cdceb1 Merge branch '2.2.x'
Closes gh-19104
5 years ago
thelproad 65ab82b3cd Remove redundant code
See gh-19000
5 years ago
dreis2211 21dc7e9ca3 Fix StepVerifier usage in HealthIndicatorReactiveAdapterTests 5 years ago
dreis2211 0bdcd2ee67 Handle ApiVersion in CachingOperationInvoker
Prior to this commit, ApiVersion was treated as a mandatory parameter in
CachingOperationInvokerAdvisor and thus prevented the
CachingOperationInvoker to kick in. By skipping ApiVersion in the same
way we're skipping SecurityContext we can avoid this.

In order to not return the same cached response, this commit also
changes the cache handling in CachingOperationInvoker to account for
different ApiVersions being passed.

See gh-18961
5 years ago
Madhura Bhave 6e22ddc1a6 Merge branch '2.1.x' into 2.2.x 5 years ago
Madhura Bhave 849a76c6c2 Polish 5 years ago
Madhura Bhave ff22bd4827 Merge branch '2.1.x' into 2.2.x
Closes gh-19059
5 years ago
Madhura Bhave a3a53d299f Check authorities when exposing health details
Fixes gh-18998
5 years ago
dreis2211 6b500d82b4 Polish
See gh-18918
5 years ago
Stephane Nicoll 86a1c96224 Make sure health endpoint is available with no contributor
This commit makes sure that the health endpoint returns a default health
status when no contributors are available. Previously, it was returning
`null` which leads to a 404 when exposed via HTTP.

Closes gh-18676
5 years ago
dreis2211 1b2112ea8c Reduce method visibility in EndpointDiscovererTests
See gh-18884
5 years ago
Andy Wilkinson ce01f7f150 Merge branch '2.1.x'
Closes gh-18882
5 years ago
Andy Wilkinson ed50bf2494 Honour EndpointFilter configured on an endpoint's superclass
Previously, @EndpointFilter would only have an effect when used as
an annotation or meta-annotation on the endpoint class itself. It
would have no effect when used on a super-class of the endpoint
bean's class.

This commit updates EndpointDiscoverer so that an @EndpointFilter
annotation or meta-annotation on a super-class will be found and
applied to the discovery process. This is achieved by using find…
rather than get… when retrieving the attributes for the EndpointFilter
annotation.

Fixes gh-17866
5 years ago
Phillip Webb b3e9a06476 Polish 5 years ago
Stephane Nicoll d6d32ec01d Polish 5 years ago
Stephane Nicoll 11e0045ec6 Polish contribution
See gh-18736
5 years ago
mattisonchao f61da8b723 Polish
See gh-18736
5 years ago
dreis2211 9ece2e277f Remove redundant explicit types
See gh-18754
5 years ago
dreis2211 911b12f28d Fix JsonParser deprecation
See gh-18750
5 years ago
Stephane Nicoll 3d253854e9 Handle constructor bound configuration properties in /configprops
This commit updates the configprops actuator endpoint to detect
configuration properties that are bound using a constructor.

Closes gh-18636
5 years ago
Phillip Webb 597baf9774 Polish "Optimize logger calls"
See gh-18710
5 years ago
wycm 240b1f9e29 Optimize logger calls
Guard logger calls to ensure that they are only made when the
level is set.

See gh-18710
5 years ago
Phillip Webb ba30ee03df Improve health contributor null support
Update `NamedContributorsMapAdapter` to check for `null` keys or values
during construction. Also update `HealthEndpointSupport` to allow
null component entries.

See gh-18687
5 years ago
Phillip Webb 7c9ac03014 Filter empty health contributions
Update `HealthEndpointSupport` so that aggregate elements that don't
ultimately provide a contribution are filtered out. Prior to this
commit an NPE was returned when calculating the aggregate status.

Fixes gh-18687
5 years ago
dreis2211 8ecdf919f8 Fix Mockito deprecations
See gh-18689
5 years ago
Stephane Nicoll d254c62712 Polish tests 5 years ago
Stephane Nicoll 64401216b0 Merge branch '2.1.x'
Closes gh-18614
5 years ago
contextshuffling a8c6540191 Use LinkedHashSet for deterministic order in test assertion
See gh-18612
5 years ago
Stephane Nicoll 9c6e5f0904 Merge branch '2.1.x'
Closes gh-18585
5 years ago
dreis2211 abfb87d1a3 Rename tests to match Surefire expectations
See gh-18579
5 years ago
dreis2211 d8de6fff53 Polish
See gh-18557
5 years ago
dreis2211 3174f06bf2 Remove usage of @InjectMocks
See gh-18557
5 years ago
Andy Wilkinson 46c30d6bb0 Merge branch '2.1.x'
Closes gh-18476
5 years ago
Andy Wilkinson 3d4157ad6d Correct SCM URLs in published poms
Previously, Maven's default behaviour was relied up which resulted
in the artifact ID being appended to each URL as it was inherited.
This behaviour can only be disabled in Maven 3.6 and later, a version
that we cannot use due to an incompatibility with the Flatten Plugin.

This commit works around Maven's default behaviour by defining
properties for the SCM URL, connection, and developer connection and
then explicitly defining the settings in each pom using these
properties. The explicit definition of the properties in each pom
prevents them being inherited from the parent, thereby disabling the
unwanted appending of the artifact ID to the URL.

Fixes gh-18328
5 years ago
Phillip Webb 869a8c2691 Merge branch '2.1.x'
Closes gh-18411
5 years ago
Phillip Webb 38968d2fff Polish 'Apply TTL invocation caching on reactor types'
Extract reactor specific code to an inner class to protect
against ClassNotFound exceptions if reactor is not in use.

Also add support for `Flux`.

See gh-18339
5 years ago
dreis2211 33d8bfa99d Apply TTL invocation caching on reactor types
Update `CachingOperationInvoker` so that TTL caching is applied directly
to reactive types. Prior to this commit, a `Mono` would be cached, but
the values that it emitted would not.

See gh-18339
5 years ago
Stephane Nicoll 15eeedb59a Merge branch '2.1.x'
Closes gh-18380
5 years ago
Phillip Webb a94ab673a3 Add health endpoint 'show-components' support
Add a `show-components` property under `management.endpoint.health` and
`management.endpoint.health.group.<name>` that can be used to change
when components are displayed.

Prior to this commit it was only possible to set `show-details` which
offered an "all or nothing" approach to the resulting JSON. The new
switch allows component information to be displayed whilst still hiding
potentially sensitive details returned from the actual `HealthIndicator`.

Closes gh-15076
5 years ago
Phillip Webb 69c561a69a Rename health JSON 'details' to 'components' in v3
Update the health endpoint so the nested components are now exposed
under `components` rather than `details` when v3 of the actuator
REST API is being used.

This distinction helps to clarify the difference between composite
health (health composed of other health components) and health
details (technology specific information gathered by the indicator).

Since this is a breaking change for the REST API, it is only returned
for v3 payloads. Requests made accepting only a v2 response will have
JSON provided in the original form.

Closes gh-17929
5 years ago
Phillip Webb cd1b7c1a9c Test v3 actuator API with loggers endpoint
Update `LoggersEndpointWebIntegrationTests` to ensure that the new
v3 media type can be used.

See gh-17929
5 years ago
Phillip Webb deb9d67cef Add Actuator ApiVersion support and bump version
Add `ApiVersion` enum that can be injected into actuator endpoints if
they need to support more than one API revision.

Spring MVC, WebFlux and Jersey integrations now detect the API version
based on the HTTP accept header. If the request explicitly accepts a
`application/vnd.spring-boot.actuator.v` media type then the version
is set from the header. If no explicit Spring Boot media type is
accepted then the latest `ApiVersion` is assumed.

A new v3 API revision has also been introduced to allow upcoming health
endpoint format changes. By default all endpoints now consume and
can produce v3, v2 and `application/json` media types.

See gh-17929
5 years ago
Phillip Webb 323a78c4b9 Add property to migrate deprecated endoint IDs
Allow legacy actuator endpoint IDs that contain dots to be transparently
migrated to the new format. This update will allow Spring Cloud users
to proactively migrate from endpoints such as `hystrix.stream` to
`hystrixstream`.

Closes gh-18148
5 years ago
Stephane Nicoll c2df1afff0 Start building against Spring Integration 5.2.0 snapshots
See gh-18254
5 years ago
Phillip Webb 221ff0ff6d Polish configuration property bean classes
Refactor the `org.springframework.boot.actuate.context` package
with the following changes:

- Deprecate several classes which would ideally be internal

- Replace `ConfigurationBeanFactoryMetadata` with a new
  `ConfigurationPropertiesBean` class to better reflect that we no
  longer maintain meta-data directly.

- Use constructor injection and final fields whenever possible

- Rename `ConfiguraionPropertiesBeanDefinition` to
  `ConfigurationPropertiesValueObjectBeanDefinition` to align
  with the binder changes made in commit 0b3015e4ff

- Add additional tests

Closes gh-16903
5 years ago
Johnny Lim b70be97cbf Polish
See gh-18281
5 years ago
Brian Clozel ce2c26e934 Use Reactor's new Schedulers.boundedElastic()
Prior to this commit, Spring Boot would use `Schedulers.elastic()` when
required to process blocking tasks in a reactive environment.
reactor/reactor-core#1804 introduced a new scheduler,
`Schedulers.boundedElastic()` that behaves quite similarly but:

* will limit the number of workers thread
* will queue tasks if no worker thread is available and reject them is
the queue is exceeds a limit

This allows Spring Boot to schedule blocking tasks as before and allows
greater flexibility.

Fixes gh-18269
See gh-18276
5 years ago
Andy Wilkinson b15e427a3e Improve handling of non-standard status codes in WebFluxTags
Closes gh-18267
5 years ago
Andy Wilkinson 1b237de5f5 Use Awaitility in our own tests
Closes gh-18227
5 years ago
wonwoo b321dacc1c Fix typo in javadoc
See gh-18187
5 years ago
Andy Wilkinson e8de5a6d95 Provide a public API for determining a request's outcome
Closes gh-18150
5 years ago
dreis2211 a2a672de0e Improve handling of non-standard status codes in WebMvcTags
See gh-17998
5 years ago
Andy Wilkinson 58eddb8fa4 Become compatible with Jackson 2.10 while remaining 2.9 compatible
See gh-17999
5 years ago
Phillip Webb 75a6397b52 Merge branch '2.1.x'
Closes gh-18110
5 years ago
Phillip Webb e8d9b6f498 Polish "Fallback to ping if Solr URL references core"
See gh-16477
5 years ago
Markus Schuch b9764e8de8 Fallback to ping if Solr URL references core
Update `SolrHealthIndicator` to fallback to a basic ping operation if
the `baseUrl` references a particular core rather than the root context.

Prior to this commit, if the Solr `baseUrl` pointed to a particular
core then the health indicator would incorrectly report `DOWN`.

See gh-16477
5 years ago
dreis2211 b4350a9d96 Remove unnecessary blank lines
See gh-18089
5 years ago
Andy Wilkinson 82ea3b51b3 Polish 5 years ago
Andy Wilkinson 0217de4349 Polish "Improve handling of non-standard status codes in RestTemplate metrics"
See gh-17991
5 years ago
Johnny Lim 1acff410a2 Improve handling of non-standard status codes in RestTemplate metrics
See gh-17991
5 years ago
Madhura Bhave 7829593746 Polish "Sanitize password in URI properties"
See gh-17939
5 years ago
HaiTao Zhang d49a2ec98e Sanitize password in URI properties
See gh-17939
5 years ago
Andy Wilkinson b54ff7c45f Merge branch '2.1.x'
Closes gh-17950
5 years ago
Andy Wilkinson 608228d617 Improve handling of non-standard status codes in WebClient metrics
Fixes gh-17695
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
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
Brian Clozel e7c3ab3e27 Rename WebFlux response body methods
This commit adapts to recent changes in Spring Framework.
See spring-projects/spring-framework#23212
5 years ago
Andy Wilkinson cc3df98135 Merge branch '2.1.x' 5 years ago
Andy Wilkinson ab87b2a39b Polish 5 years ago
Stephane Nicoll 6f28f41774 Polish "Simplify some code"
See gh-17860
5 years ago
jason 4bb842343a Simplify some code
See gh-17860
5 years ago
lijuny d8baefc38a Simplify some code
See gh-17834
5 years ago
lijuny 844a8d8027 Simplify some code
See gh-17832
5 years ago
Stephane Nicoll 71cf0a3ec8 Merge branch '2.1.x'
Closes gh-17812
5 years ago
Stephane Nicoll 994f08d234 Polish "Fix annotation lookup on proxied EndpointExtension"
See gh-17807
5 years ago
Jacques-Etienne Beaudet 9083da2876 Fix annotation lookup on proxied EndpointExtension
See gh-17807
5 years ago
Phillip Webb 105df823ee Polish 5 years ago
Phillip Webb 2cdceb92bf Polish 5 years ago
Phillip Webb da4f436140 Change SearchStrategy EXHAUSTIVE to TYPE_HIERARCHY
Fixup references following upstream Spring Framework change.
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 61b86ff231 Polish "Add support for configuring logging groups"
See gh-17515

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
5 years ago
HaiTao Zhang b9047c22e0 Add support for configuring logging groups via endpoint
See gh-17515
5 years ago
Stephane Nicoll 6756385049 Merge branch '2.1.x'
Closes gh-17664
5 years ago
Stephane Nicoll 6356852e2f Polish "Log health check failure with Reactive health indicators"
See gh-17635
5 years ago
Dmytro Nosan fe1b9c9501 Log health check failure with Reactive health indicators
See gh-17635
5 years ago
dreis2211 eb9527a170 Fix deprecation warnings in spring-boot-actuator
See gh-17660
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
Phillip Webb 6c0dbacfce Polish 5 years ago
Stephane Nicoll 94c35ae1de Polish "Make Actuator dedicated ConversionService configurable"
See gh-16449
5 years ago
Stephane Nicoll be988d7072 Polish "Add HealthIndicator for Hazelcast"
See gh-17499
5 years ago
Dmytro Nosan fca5a2b824 Add HealthIndicator for Hazelcast
See gh-17499
5 years ago
Phillip Webb a9ba7080ce Merge branch '2.1.x' 5 years ago
Phillip Webb fd67f7ba3f Merge branch '1.5.x' into 2.0.x 5 years ago
Stephane Nicoll 56ce2b8e3f Polish "Add metrics support for idle jdbc connections"
See gh-17504
5 years ago
ayudovin 9acc02b5cc Add metrics support for idle jdbc connections
See gh-17504
5 years ago
Phillip Webb 01933f9b06 Merge previously split strings
Merge some string lines that were previously split because of the
90 chars wide formatting.
5 years ago
Phillip Webb c3816bfe7b Polish output capture names 5 years ago
dreis2211 82047a2544 Polish
See gh-17505
5 years ago
Madhura Bhave d590c3ed10 Merge branch '2.1.x'
Closes gh-17486
5 years ago
Madhura Bhave 773dda3d55 Log file location should be evaluated just once
Using a random value for the logfile name caused
the logfile endpoint to return a 404 as the name
was resolved from the environment on every request.
This commit registers a bean for LogFile which is then
used by the logfile endpoint.

Fixes gh-17434
5 years ago
Brian Clozel 2830847344 Optimize reactor operators in actuator support
This commit uses native Reactor operators `Mono.fromCallable` and
`subscribeOn` for better performance and support.

Fixes gh-17452
5 years ago
dreis2211 25586a2e23 Use Assertions.contentOf() where possible
See gh-17444
5 years ago
Andy Wilkinson d93c79316d Align with body method changes in RequestBodySpec
Closes gh-17460
5 years ago
Andy Wilkinson 2816635418 Polish 5 years ago
dreis2211 7c6fd31d06 Use Spring 5 module of Jersey
See gh-17412
5 years ago
Madhura Bhave 39b15af5d6 Polish "Provide links / when using a separate management port"
See gh-17418
5 years ago
HaiTao Zhang c108629311 Provide links for actuators at / when using a separate management port
See gh-17418
5 years ago
Andy Wilkinson e0048f234b Polish 5 years ago
Andy Wilkinson c5cae28261 Add support for plain text thread dumps to the threaddump endpoint
When a request that accepts text/plain is received, the threaddump
endpoint will now return a thread dump in plain text. The format of
this text is modelled after the output produced by JVisualVM when
connecting to a remote process over JMX. Note that this output does
not include all of the information in, for example, JStack's output
as it is not available via Java 8's ThreadInfo API.

Rather than the custom formatting logic, using ThreadInfo's toString()
method was considered but its output is documented as being undefined
and implementation specific. The implementation used while developing
this feature produced output that did not match that of JStack or
JVisualVM and truncated stack traces quite considerably.

At the time of writing the format produced by the endpoint could be
consumed by both Thread Dump Analyzer [1] and https://fastthread.io.

Closes gh-2339

[1] https://github.com/irockel/tda
5 years ago
Phillip Webb a66c4d3096 Unify method visibility of private classes
Apply checkstyle rule to ensure that private and package private
classes do not have unnecessary public methods. Test classes have
also been unified as much as possible to use default scoped
inner-classes.

Closes gh-7316
5 years ago
Andy Wilkinson 4ab4198168 Switch to Infinispan's Spring 5 integration
Closes gh-17333
5 years ago
Phillip Webb 605599138e Merge branch '2.1.x' 5 years ago
Phillip Webb 92bff3c328 Merge branch '2.0.x' into 2.1.x 5 years ago
Phillip Webb cfeb0239b7 Merge branch '1.5.x' into 2.0.x 5 years ago
Stephane Nicoll e560b7f6ba Remove public modifier on JUnit5 lifecycle methods
See gh-17292
5 years ago
Brian Clozel 809a3965c9 Add missing outcome tag for WebClient metrics
On error cases, the "outcome" tag would be missing from recorded metrics
for the `WebClient`.

This commit fixes this issue and improves the reference documentation by
mentioning the tag values used for error cases, when the client response
is not received (I/O errors, client error, etc).

Fixes gh-17219
5 years ago
Andy Wilkinson cffc870fd6 Fix test failures on Windows
Since the move to JUnit 5, a number of tests were failing on Windows.
The majority were failing due to open file handles preventing the
clean up of the tests' temporary directory. This commit addresses
these failures by updating the tests to close JarFiles, InputStreams,
OutputStreams etc.

A change has also been made to CachingOperationInvokerTests to make
a flakey test more robust. Due to System.currentTimeMillis() being
less precise on Windows than it is on *nix platforms, the test could
fail as it would not sleep for long enough for the TTL period to have
expired.
6 years ago
Phillip Webb 266d6334b2 Fix checkstyle RedundantModifier test violations 6 years ago
Phillip Webb cde4f0d688 Fix checkstyle violations 6 years ago
Phillip Webb 4c21dc1c31 Merge branch '2.1.x' 6 years ago
Phillip Webb fed11febec Fix checkstyle violations 6 years ago
Andy Wilkinson b18fffaf14 Move tests to JUnit 5 wherever possible 6 years ago
Andy Wilkinson aef92b9295 Merge branch '2.1.x'
Closes gh-17079
6 years ago
Andy Wilkinson 24925c3dae Merge branch '2.0.x' into 2.1.x
Closes gh-17078
6 years ago
Andy Wilkinson c6c139d980 Merge branch '1.5.x' into 2.0.x 6 years ago
Phillip Webb d306b31ce9 Merge branch '2.1.x' 6 years ago
Phillip Webb ccfbd03482 Merge branch '2.0.x' into 2.1.x 6 years ago
Phillip Webb b442d3b906 Merge branch '1.5.x' into 2.0.x 6 years ago
Stephane Nicoll 6a78995d61 Polish "Fix typo in javadoc"
See gh-17044
6 years ago
fidel 2ec0996a6f Fix typo in javadoc
See gh-17044
6 years ago
Phillip Webb 4b2fdee3fc Polish 6 years ago
Andy Wilkinson 0644a79401 Repackage output capture and always use extension declaratively
Closes gh-17029
6 years ago
Phillip Webb d11d5ceb29 Split up JUnit 5 OutputCapture class
Split the JUnit 5 `OutputCapture` class into separate `OutputExtension`
and `CapturedOutput` classes. The JUnit 5 callback methods are now
contained only in the `OutputExtension` class so no longer pollute the
public API that users will interact with.

The `CapturedOutput` class has also been updated to capture System.err
and System.out separately to allow distinct assertions if required.

Closes gh-17029
6 years ago
Phillip Webb 68a3fbd7a0 Extract AutoTimer interface for metrics
Refactor `Autotime` from a properties object to an interface and
change the existing metric recording implementations. The `AutoTimer`
interface is a general purpose callback that can be applied to a
`Timer.Builder` to configure it. Autotime properties are now located
in `spring-boot-actuator-autoconfigure` and have become an
implementation of the interface.

Closes gh-17026
6 years ago
Phillip Webb 68aec8b6ee Polish 6 years ago
Stephane Nicoll 2b5632ec3e Polish "Add Duration support in /configprops endpoint"
Closes gh-16539
6 years ago
dreis2211 47d85bb4fe Add Duration support in /configprops endpoint
See gh-16539
6 years ago
Phillip Webb 963a544fb1 Merge branch '2.1.x'
Closes gh-16860
6 years ago
Phillip Webb f790556f96 Polish 'Drop blocking RedisReactiveHealthIndicator calls'
See gh-16756
6 years ago
ayudovin de857372a5 Drop blocking RedisReactiveHealthIndicator calls
Update `RedisReactiveHealthIndicator` so that `getReactiveConnection`
is not called directly since it blocks.

Fixed gh-16756
6 years ago
Phillip Webb 3a9ca5fa30 Update copyright header of changed files 6 years ago
Madhura Bhave 1db1c8b03c Validate our own tests work with JUnit5 and the vintage engine
Closes gh-14737

Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
6 years ago
Stephane Nicoll 8045bf1f50 Polish "Allow configuration of auto-timed metrics"
Closes gh-15988
6 years ago
Tadaya Tsuyukubo 4df6f5dee0 Allow configuration of auto-timed metrics
When `management.metrics.web.server.auto-time-requests` is enabled
(default=true), Spring Boot collects metrics on controller methods even
when they are not annotated with `@Timed`.

When this happens, created metrics are based on the default
`@Timed` configuration and there is no way to customize the
configuration of those auto-timed controller metrics.

This commit adds default configurations to auto-timed requests on both
client and server sides.

See gh-15988
6 years ago
Phillip Webb 17aaf26590 Use consistent javadoc style for annotation links
Closes gh-13920
6 years ago
Phillip Webb 1e44aba772 Fix compiler warnings and polish
Fix various compiler warnings and apply a little polish.
6 years ago
Phillip Webb b879972d0d Migrate to MergedAnnotations API
Migrate away from `AnnotationUtils` and `AnnotatedElementUtils`
when possible to the new `MergedAnnotations` API.

Closes gh-16551
6 years ago
Phillip Webb 5f1bbf8c72 Update copyright header of changed files 6 years ago
Phillip Webb 7d4118a0fe Align withBean methods with ApplicationContext
Rework `AbstractApplicationContextRunner.withBean` methods to
align signatures as much as possible with those provided by
the `ApplicationContext`.

Also update the implementation to use a dedicate member
variable rather than adding initializers.

Closes gh-16011
6 years ago
Phillip Webb 2dfd916c96 Polish 6 years ago
Brian Clozel 8ac69442f1 Deprecate ElasticsearchHealthIndicator
Since the transport client has been deprecated in gh-15008, the health
indicator for that should be deprecated as well.

See gh-15008
6 years ago
Brian Clozel 2e107929a0 Upgrade to Elasticsearch 6.7.1
Closes gh-16569
6 years ago
Vedran Pavic bbaa98175f Upgrade to Hazelcast 3.12
Closes gh-16503
6 years ago
Brian Clozel 3e56707132 Overriding getMappingPathPatterns is not required
After a hierarchy change in Spring Framework in gh-22543,
`AbstractWebFluxEndpointHandlerMapping` doesn't need to override the
`getMappingPathPatterns` method anymore.
6 years ago
Stephane Nicoll a828072132 Migrate tests to use withBean
See gh-16011
6 years ago
dreis2211 52cd9c6cac Fix compilation error
Closes gh-16476
6 years ago
Stephane Nicoll c432288ed1 Migrate ApplicationContext to common hierarchy
This commit migrates `AnnotationConfigReactiveWebApplicationContext`
parent to the `GenericApplicationContext` abstraction. Any use of
`AnnotationConfigWebApplicationContext` is also removed as it also
inherits from the `AbstractRefreshableApplicationContext` outdated
hierarchy.

A new `AnnotationConfigServletWebApplicationContext` context is
introduced instead, extending from `GenericApplicationContext` and
providing the counter part of the reactive context for the Servlet-based
web app tests.

See gh-16096
6 years ago
Andy Wilkinson 537a97c1e5 Merge branch '2.1.x'
Closes gh-16461
6 years ago
Andy Wilkinson 8a04e2cc86 Honor custom change log tables in Liquibase endpoint
Closes gh-16442
6 years ago
Phillip Webb ad7eebee9e Merge branch '2.1.x' 6 years ago
Phillip Webb f12ab1ff90 Update copyright header of changed files 6 years ago
Phillip Webb 2376f973f4 Merge branch '2.1.x' 6 years ago
Phillip Webb 47c6bf741d Merge branch '2.0.x' into 2.1.x 6 years ago
Phillip Webb 07c000c5b7 Merge branch '1.5.x' into 2.0.x 6 years ago
Andy Wilkinson e1a6726d76 Polish "Update CORS handling according to Framework changes"
See gh-16410
6 years ago
Sebastien Deleuze 2f9db7eec6 Update CORS handling according to Framework changes
This commit updates CORS handling according to Framework changes
introduced via [1]. It also fixes tests according to the new behavior.

See gh-16410

[1] d27b5d0ab6.
6 years ago
Andy Wilkinson 4f42597aca Merge branch '2.1.x' 6 years ago
Andy Wilkinson 02b24b6ed3 Specify that log file endpoint's response is UTF-8 encoded
Closes gh-16189
6 years ago
Andy Wilkinson 878a635bfb Merge branch '2.1.x' 6 years ago
Spring Operator 9fc3ac7d49 Use HTTPS for external links wherever possible
See gh-16320
6 years ago
Andy Wilkinson 864942ad4f Merge branch '2.0.x' into 2.1.x 6 years ago
Spring Operator 1a4c6f2dac Use HTTPS for external links wherever possible
See gh-16319
6 years ago
Andy Wilkinson 36c1c051b8 Merge branch '2.1.x' 6 years ago
Andy Wilkinson e23f72c8b0 Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson 9fbd38ab3c Merge branch '1.5.x' into 2.0.x 6 years ago
Andy Wilkinson b828b398b5 Merge branch '2.1.x' 6 years ago
Andy Wilkinson a36aa67b52 Merge branch '2.0.x' into 2.1.x 6 years ago
Spring Operator 3e2b6ac8ed Update build and setup configuration to use HTTPS
See gh-16246
6 years ago
Madhura Bhave 223f2be7d2 Inject InfoContributors instead of exposing them on InfoEndpoint
Closes gh-13586
6 years ago
Brian Clozel 5a66dc8c6e Merge branch '2.1.x' 6 years ago
Brian Clozel 9906ef2400 Merge branch '2.0.x' into 2.1.x 6 years ago
Brian Clozel 6138041578 Polish
Fixes gh-16014
6 years ago
Johnny Lim a6ccdbe19f Handle missing exceptions in WebMvcMetricsFilter
Prior to this commit, exceptions nested in
`NestedServletExceptions` would not be recorded by the
`WebMvcMetricsFilter`. This commit ensures that exceptions
happening downstream (e.g. happening while writing the response
body itself) are properly recorded.

See https://github.com/micrometer-metrics/micrometer/issues/1190
See gh-16014
6 years ago
Stephane Nicoll 81def1f21d Polish 6 years ago
Madhura Bhave e8cb75bba8 Enable git remote linking automatically on CF
Closes gh-13586
6 years ago
Andy Wilkinson 68bfb020aa Reduce need for bean method proxying and disable where not needed
Closes gh-9068
6 years ago
Phillip Webb ccfe20d3d3 Merge branch '2.1.x' 6 years ago
Phillip Webb 45ae97a4e9 Merge branch '2.0.x' into 2.1.x 6 years ago
Phillip Webb 03beed603c Fix ScheduledTasksEndpointTests BaseConfiguration
Update the `BaseConfiguration` class in `ScheduledTasksEndpointTests`
to be package private so that it can be enhanced by cglib.

Prior to merge commit 361437f4 the class was a lite configuration so
it didn't matter that it was a private class.
6 years ago
Andy Wilkinson aa2008bc5a Merge branch '2.1.x' 6 years ago
Andy Wilkinson 8c3cec8f13 Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson 361437f4e2 Merge branch '1.5.x' into 2.0.x 6 years ago
Andy Wilkinson 7675802338 Merge branch '2.1.x' 6 years ago
Andy Wilkinson f574213cc8 Mark log file endpoint as producing text/plain
Closes gh-16188
6 years ago
Andy Wilkinson 7d0317419d Polish 6 years ago
Andy Wilkinson 9d06d22b99 Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson affdbeef41 Polish 6 years ago
Andy Wilkinson acdbd18a7b Merge branch '2.1.x' 6 years ago
Andy Wilkinson 31ed042190 Return 503 when component or instance is down with WebFlux
Closes gh-16109
6 years ago
Andy Wilkinson 0959698c32 Upgrade to Jersey 2.28
Closes gh-16114
6 years ago
Andy Wilkinson d6a869fa98 Switch to Jakarta EE API dependencies where possible
Closes gh-16113
Closes gh-16112
Closes gh-16111
Closes gh-15916
Closes gh-15689
6 years ago
Stephane Nicoll 4f029d6df9 Polish "Add loadOnStartup property to EndpointServlet"
Closes gh-16053
6 years ago
Gómez Díaz, Julio José b99c05329f Add loadOnStartup property to EndpointServlet
loadOnStartup property was missing from EndpointServlet and cannot be set
inside ServletEndpointRegistrar. Now it can be set and register a Servlet
with that integer property ready to act upon registration.

See gh-16053
6 years ago
Stephane Nicoll baa5a00d26 Merge branch '2.1.x' 6 years ago
Stephane Nicoll c224eebef3 Polish "Fix NullPointerException with empty X-Forwarded-For header"
Closes gh-16046
6 years ago
Dmytro Nosan 64a74c3bbb Fix NullPointerException with empty X-Forwarded-For header
See gh-16046
6 years ago
Stephane Nicoll 715db153e3 Polish "Remove code deprecated in 2.1"
Closes gh-16013
6 years ago
Mehmed Baždar 246111cd84 Remove code deprecated in 2.1
See gh-16013
6 years ago
Andy Wilkinson f2e3e274a8 Merge branch '2.1.x' 6 years ago
Andy Wilkinson 53326695ea Polish 6 years ago
Michael Simons 330f5b70f2 Upgrade to Neo4j-OGM 3.2.0-alpha04
Closes gh-15937
6 years ago
Andy Wilkinson 1aa7b30b70 Merge branch '2.1.x' 6 years ago
Andy Wilkinson 8e6b4629d4 Tolerate AuthenticationSwitchUserEvent with null target user
When Spring Security is misconfigured it's possible to switch from an anonymous user
to a normal user. When switching back again, the corresponding
AuthenticationSwitchUserEvent will have a null target user. Previously, Actuator's
AuthenticationAuditListener would throw a NullPointerException when it received such an
event.

This commit updates the audit listener to defensively handled events with a null target
user.

Closes gh-15767
6 years ago
Johnny Lim 9f6c5e4e39 Polish 6 years ago
dreis2211 1c50e7cf87 Polish
Closes gh-15823
6 years ago
Brian Clozel 99656b9dd8 Merge branch '2.1.x' 6 years ago
Brian Clozel 72c8e5d366 Collect HTTP trace at commit time for WebFlux
Prior to this commit, the `HttpTraceWebFilter` would collect the
response information (status and headers) for tracing purposes, after
the handling chain is done with the exchange - inside a
`doAfterSuccessOrError`.

Once the handler has processed the exchange, there is no strong
guarantee about the HTTP resources being still present. Depending on the
web server implementation, HTTP resources (including HTTP header maps)
might be recycled, because pooled in the first place.

This commit moves the collection and processing of the HTTP trace right
before the response is committed. This removes the need to handle
special cases with exceptions, since by that time all exception handlers
have processed the response and the information that we extract is the
information that's about to be written to the network.

Fixes gh-15819
6 years ago
Andy Wilkinson ecb7e240eb Merge branch '2.1.x' 6 years ago
Andy Wilkinson ebcc53a9b7 Include tasks with custom triggers in scheduledtasks endpoint output
Closes gh-15815
6 years ago
Andy Wilkinson 45cc649c7d Merge branch '2.1.x' 6 years ago
Andy Wilkinson 82bc87560c Use AssertJ’s exception assertions rather than fail
Closes gh-15761
6 years ago
Stephane Nicoll a6815bb2c9 Merge branch '2.1.x' 6 years ago
Vedran Pavic d7550d73a3 Remove duplicate code from HealthWebEndpointResponseMapper
Closes gh-15784
6 years ago
Stephane Nicoll 6baa6b291e Polish contribution
Closes gh-15695
6 years ago
Johnny Lim af3ed9ff9f Polish
See gh-15695
6 years ago
Phillip Webb 2f77ef7722 Merge branch '2.1.x' 6 years ago
Phillip Webb 9e58942698 Update copyright year for changed files 6 years ago
Phillip Webb 6a901199f5 Polish 6 years ago
Stephane Nicoll 8d1d3fb087 Polish "Avoid string concatenation inside StringBuilder append()"
Closes gh-15589
6 years ago
igor-suhorukov 59ac85d371 Avoid string concatenation inside StringBuilder append()
See gh-15589
6 years ago
Brian Clozel a3737cd76d Merge branch '2.1.x' 6 years ago
Brian Clozel 958e08c413 Merge branch '2.0.x' into 2.1.x 6 years ago
dreis2211 95e26ffcb9 Avoid uri tag explosion when use of path variable is undetected
This commit aligns the Spring WebFlux instrumentation on Spring MVC
since gh-12447.
From now on, if the best matching path pattern is not found,
the recorded uri tag will be "UNKNOWN".

Note that for WebFlux.fn, the pattern information is properly
recorded as of SPR-17395.

Closes gh-15609
6 years ago
Brian Clozel d5ae59dad7 Polish
Closes gh-15594
6 years ago
Nishant Raut 21df40b6c7 Add an outcome tag to web client metrics
Similar to what's ben done in gh-15420 for Spring MVC and Spring
WebFlux, this commit adds an outcome tag for the client side on both
`RestTemplate` and `WebClient`.

See gh-15594
6 years ago
Stephane Nicoll 960d375f57 Merge branch '2.1.x' 6 years ago
Stephane Nicoll a8efcadc90 Merge branch '2.0.x' into 2.1.x 6 years ago
Stephane Nicoll 4509164789 Polish "Add unit test for cassandra health checker"
Closes gh-15583
6 years ago
Oleksii Bondar db22a81742 Add unit test for cassandra health checker
See gh-15583
6 years ago
Stephane Nicoll 9d67400afa Merge branch '2.1.x' 6 years ago
Stephane Nicoll 06989d884b Polish "Fix StringSequence.equals() for different lengths"
Closes gh-15438
6 years ago
igor-suhorukov e578d30722 Replace anonymous inner class with lambda
See gh-15438
6 years ago
Andy Wilkinson 3a7406fe3a Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson 0741c90489 Avoid blocking on a Mono indefinitely
Closes gh-15535
6 years ago
Andy Wilkinson 9d2d6d5812 Merge branch '2.1.x' 6 years ago
Andy Wilkinson 9a33d1a2f9 Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson 8c68da0882 Avoid blocking on a Mono indefinitely
Closes gh-15535
6 years ago
Andy Wilkinson 064f6478df Move back to JUnit 4 until SUREFIRE-1614 has been resolved
See gh-14736
See gh-14737
See gh-14738
6 years ago
Andy Wilkinson 2b453bbb16 Minimise dependencies on Log4j2
Closes gh-15441
6 years ago
Brian Clozel 9a6dbb5290 Merge branch '2.1.x' 6 years ago
Brian Clozel 036aace2cc Add details in Jest ElasticSearch HealthIndicator
This commit polishes the previous one and aligns the Jest
HealthIndicator with the changes made for the REST variant.

Closes gh-15366
6 years ago
Filip Hrisafov 1ec2bbf54f Include details in ElasticsearchRestHealthIndicator
This commit adds more information to the ElasticSearch REST
health indicator.

When the ES instance responds with an error HTTP status,
the health details now include the actual status code and reason phrase.
When the ES instance returns a HTTP 200 response, the entire response
map is used as health details.

See gh-15366
6 years ago
igor-suhorukov 2b1653d009 Simplify code by using try-with-resources statement
Closes gh-15427
6 years ago
igor-suhorukov 5c1813aef8 Replace this lambda with a method reference
See gh-15401
6 years ago
Madhura Bhave 59d2b0a3fb Upgrade tests to Junit5
See gh-14737
6 years ago
Andy Wilkinson 8b21044902 Merge branch '2.1.x' 6 years ago
Andy Wilkinson 917108cce7 Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson 425a3aacf5 Add JAXB API dependency that is no longer transitive via testcontainers
See gh-15371
6 years ago
Stephane Nicoll a85e27c7cd Further replace magic number by HttpStatus
See gh-15130
6 years ago
Stephane Nicoll f2ca2533d5 Polish "Replace magic number by HttpStatus"
Closes gh-15130
6 years ago
holy12345 ffdc9f0ff3 Replace magic number by HttpStatus
See gh-15130
6 years ago
Stephane Nicoll 9483c91d58 Make sure to include validation query in case of failure
See gh-15055
6 years ago
Stephane Nicoll 9e84abc46b Polish "Add validation query to DataSourceHealthIndicator details"
Closes gh-15055
6 years ago
Erlend Haugsnes fc85c34dd8 Add validation query to DataSourceHealthIndicator details
See gh-15055
6 years ago
Stephane Nicoll 7939b8b4da Polish "Rename logging.file to logging.file.name"
Closes gh-15089
6 years ago
TwinProduction 21da4a5d12 Rename logging.file to logging.file.name
See gh-15089
6 years ago
Andre Restolho d9586d94f6 Change DataSourceHealthIndicator details from "hello" to "result"
Closes gh-15136
6 years ago
Phillip Webb 9c426c63bf Polish 6 years ago
Brian Clozel d12e42e8d5 Polish
Closes gh-15211
6 years ago
artsiom 0a4ba499df Add Actuator health checks for Elasticsearch REST clients
This commit adds `ElasticsearchRestHealthIndicator`, a new
`HealthIndicator` for Elasticsearch, using the Elasticsearch "low level
rest client" provided by the
`"org.elasticsearch.client:elasticsearch-rest-client"` dependency.

Note that Spring Boot will auto-configure both low and high level REST
clients, but since the high level one is using the former, a single
health indicator will cover both cases.

See gh-15211
6 years ago
Andy Wilkinson fa7be63fbb Merge branch '2.0.x' 6 years ago
Andy Wilkinson 7ddbb37bd5 Polish 6 years ago
Andy Wilkinson c73fdc4ce4 Merge branch '2.0.x' 6 years ago
Andy Wilkinson d2756319cb Polish 6 years ago
Andy Wilkinson c1bbcb6908 Merge branch '2.0.x' 6 years ago
Andy Wilkinson 4bc32e6358 Use a HandlerInterceptor for timing long tasks
Closes gh-15204
6 years ago
Phillip Webb 12a16dcfcf Merge branch '2.0.x' 6 years ago
Phillip Webb e4d5714d50 Polish "Skip scoped targets when determining endpoints"
See gh-15182
6 years ago
Rahul Ahuja 4853e6a7af Skip scoped targets when determining endpoints
Update `EndpointDiscoverer` to filter out scoped target beans when
finding endpoints.

Closes gh-15182
6 years ago
Brian Clozel 8e86bcafc1 Improve actuator endpoint mapping debug logging
Closes gh-14292
6 years ago
Johnny Lim fd5aa3ebf1 Polish
See gh-15134
6 years ago
Stephane Nicoll 2c3b455b8b Merge branch '2.0.x' 6 years ago
Johnny Lim 8470d649bc Polish
See gh-15134
6 years ago
dreis2211 3e95af2c85 Polish some Map operations
Closes gh-15103
6 years ago
Phillip Webb 8ded42ceb1 Use US spelling for "favor" 6 years ago
Phillip Webb 33d385cf7a Use US spelling for "favor" 6 years ago
Brian Clozel 2232f7d82f Polish
Closes gh-14914
6 years ago
Julian Devia 3e6a4eb6e3 Use cluster endpoint in Jest HealthIndicator
This commit changes the requested endpoint for the Jest
HealthIndicator. The `"/_all/_stats"` was previously used, but
the response size can be quite large and costly.

This is now using the `"/_cluster/health"` endpoint.
6 years ago
Phillip Webb c393f6262e Merge branch '2.0.x' 6 years ago
Phillip Webb 33c7a74bee Update copyright year for changed files 6 years ago
Vedran Pavic 6e967fe860 Upgrade to Hazelcast 3.11
Closes gh-14949
6 years ago
Phillip Webb acb5a90273 Log warning when using deprecated EndpointId chars
Update `EndpointId` to log a warning when `-` or `.` are used.

Closes gh-14840
6 years ago
dreis2211 5b6e94d78a Polish javadoc of CachesEndpoint
Closes gh-14969
6 years ago
Phillip Webb 6aa2862f85 Merge branch '2.0.x' 6 years ago
Phillip Webb 7bcc793faf Fix WebMvcMetricsFilter logger imports
Don't use SLF4J loggers in `WebMvcMetricsFilter`.

Fixes gh-14953
6 years ago
dreis2211 4857b45ea5 Replace lambdas with method reference or call
Closes gh-14937
6 years ago
Madhura Bhave eb61b2bbde Merge branch '2.0.x' 6 years ago
Madhura Bhave 4322b9781b Polish 6 years ago
Johnny Lim c3ac423fdd Use Commons Logging for PrometheusPushGatewayManager
Closes gh-14910
6 years ago
Madhura Bhave f0004c4ade Merge branch '2.0.x' 6 years ago
dreis2211 5c0d7f4ac0 Avoid creation of unnecessary collections
Closes gh-14916
6 years ago
Andy Wilkinson 660b912100 Merge branch '2.0.x' 6 years ago
Andy Wilkinson 2110215559 Provide more detailed uri tag for calls to Data REST repositories
Closes gh-14872
6 years ago
Andy Wilkinson efbc0fc2ca Merge branch '2.0.x' 6 years ago
Andy Wilkinson 76ad197584 Deallocate servlet after forcing initialization in mappings endpoint
Previously, when using Tomcat, a call to mappings endpoint would force
the initialization of any DispatcherServlets in the context. This was
done by calling allocate on Tomcat's StandardWrapper. This left the
wrapper in a state that would cause it to block for two seconds during
shutdown as the wrapper has an outstanding allocation.

This commit immediately deallocates the servlet after it has been
allocated. This ensures that the DispatcherServlet has been initialized
while also leaving the wrapper in a state that it can shut down
immediately when asked to do so.

Closes gh-14898
6 years ago
Andy Wilkinson 22e722d9f9 Polish 6 years ago
Brian Clozel 5bf51f52b9 Fix WebFlux instrumentation after SPR-17395
SPR-17395 ensures that WebFlux.fn is adding a request attribute of type
`PathPattern` on the `HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE`.

A specific tag provider for WebFlux.fn is no longer necessary.

See gh-14876
6 years ago
Johnny Lim c8c3f59e93 Polish
Closes gh-14884
6 years ago
Johnny Lim 7f9671fd14 Polish
Closes gh-14843
6 years ago
Andy Wilkinson d49cc20e79 Rework CouchbaseReactiveHealthIndicator to use DiagnosticsReport
Closes gh-14799
6 years ago
Phillip Webb d558a1a762 Merge branch '2.0.x' 6 years ago
Phillip Webb a12a6f2ade Polish 6 years ago
Phillip Webb 6b37d87497 Allow multiple endpoint PathMapper beans
Update `WebEndpointDiscoverer` and related classes to that multiple
`PathMapper` beans can be registered. Mappers are now tried in order
until one returns a non-null value.

Closes gh-14841
6 years ago
Phillip Webb a5dc004e0b Merge branch '2.0.x' 6 years ago
Phillip Webb cd1c2638e5 Polish 6 years ago
Phillip Webb f0f999a27d Merge branch '2.0.x' 6 years ago
Phillip Webb 5d219bcd19 Polish 6 years ago
Phillip Webb 734e9e4b74 Merge branch '2.0.x' 6 years ago
Phillip Webb b25e222136 Retain original case when mapping endpoint paths
Update `MappingWebEndpointPathMapper` to keep the original case rather
than using a lower-case version.

Closes gh-14773
6 years ago
Phillip Webb 3665917d44 Merge branch '2.0.x' 6 years ago
Phillip Webb c306e03112 Support '-' in endpoint names
Update the `EndpointId` constraints to allow '-' in names.

Closes gh-14773
6 years ago
Phillip Webb 9a80e88a73 Merge branch '2.0.x' 6 years ago
Phillip Webb d8b9685635 Support '.' in endpoint names
Update the `EndpointId` constraints to allow '.' in names.

Closes gh-14773
6 years ago
Andy Wilkinson a4eb636913 Merge branch '2.0.x' 6 years ago
Andy Wilkinson 6d98851fb5 Use Couchbase's DiagnosticsReport to determine its health
Previously, Couchbase's health was determined by retrieving the bucket info
from the cluster info. This retrieval could take over one minute in some
cases even when Couchbase is health. This latency is too large for a health
check.

The Couchbase team have recommended the of a Cluster#diagnostics instead.
This provides a much lower latency view of the cluster's health. This
commit updates CouchbaseHealthIndicator to use Cluster#diagnostics while
retaining support, in a deprecated form, for the old info-based mechanism
should anyone want to opt back into that in 2.0.x.

Closes gh-14685
6 years ago
Phillip Webb cfa130b2ef Merge branch '2.0.x' 6 years ago
Hanope 535dd7470f Fix typo in EndpointIdTests
Closes gh-14822
6 years ago
Phillip Webb 18319ac276 Remove deprecated Endpoint ID methods
See gh-14773
6 years ago