Commit Graph

1073 Commits

Author SHA1 Message Date
Brian Clozel ab72cc8fdb Revert "Add actuator specific ObjectMapper"
See gh-12951
See gh-20291
2020-02-21 17:16:24 +01:00
Stephane Nicoll d65e06081f Update copyright year of changed files
See gh-20226
2020-02-19 09:35:28 +01:00
Johnny Lim 8be8a8421d Polish
See gh-20226
2020-02-19 09:34:46 +01:00
Stephane Nicoll a6fdbdcd80 Merge branch '2.2.x'
Closes gh-20178
2020-02-14 10:26:39 +01:00
Dave Syer dcaaf9785f Remove duplicate auto-configuration class
See gh-20168
2020-02-14 10:25:19 +01:00
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
2020-02-12 20:10:25 +01:00
Stephane Nicoll 9aef2bde77 Merge branch '2.2.x'
Closes gh-20030
2020-02-04 10:09:11 +01:00
Stephane Nicoll 10643b7702 Polish "Stop time web metrics when autotime is disabled"
See gh-19981
2020-02-04 10:03:08 +01:00
babjo e323e05eea Stop time web metrics when autotime is disabled
See gh-19981
2020-02-04 09:50:49 +01:00
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.
2020-02-03 17:07:56 -06:00
Scott Frederick de1a26cf35 Revert "Remove deprecated HealthIndicator and HealthAggregator 2.2 code"
This reverts commit df1837a16b.
2020-02-03 14:02:39 -06:00
dreis2211 2d9902f10e Fix link to Spring Integration Graph documentation
See gh-19992
2020-02-03 17:32:02 +01:00
Stephane Nicoll 90e3d88793 Fix link to Spring Integration Graph documentation
Closes gh-20023
2020-02-03 17:30:37 +01:00
Stephane Nicoll c4daff7225 Polish "Upgrade to MongoDB Java Driver 4.0 beta1"
See gh-19960
2020-02-03 14:12:46 +01:00
Christoph Strobl d2d6dbdc00 Upgrade to MongoDB Java Driver 4.0 beta1
See gh-19960
2020-02-03 10:59:30 +01:00
dreis2211 56df70b0e7 Use Spring 5 module of Jersey
See gh-20009
2020-02-03 09:34:57 +01:00
Johnny Lim 0ddf8be151 Polish
See gh-20001
2020-02-01 16:13:51 +01:00
dreis2211 fac6f08ca3 Use new AssertJ duration assertions
See gh-19985
2020-01-30 08:14:49 +01:00
Stephane Nicoll eb852f1ad6 Disable bean overriding by default in ApplicationContextRunner
For consistency with SpringApplication, this commit disables bean
overriding by default in ApplicationContextRunner. Bean overriding can
be enabled again using withAllowBeanDefinitionOverriding.

Closes gh-18019
2020-01-28 15:57:28 +01:00
wonwoo 8703c04475 Register Stackdriver auto-config in `META-INF/spring.factories`
See gh-19955
2020-01-28 10:49:59 +01:00
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`.
2020-01-22 16:02:38 -08:00
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.
2020-01-22 15:49:52 -08:00
Phillip Webb bfd2ca7fd9 Polish Gradle expression references
Expand all expression `$` references to the full `${...}` form.
2020-01-21 18:33:33 -08:00
Stephane Nicoll 08967bca3e Merge branch '2.2.x'
Closes gh-19843
2020-01-21 14:44:01 +01:00
Stephane Nicoll 84324c438b Merge branch '2.1.x' into 2.2.x
Closes gh-19842
2020-01-21 14:34:44 +01:00
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
2020-01-21 14:20:28 +01:00
Scott Frederick 8f102aee68 Remove deprecated 2.2 code
See gh-19699
2020-01-16 14:44:52 +01:00
Scott Frederick 2e32cb2af1 Remove deprecated HealthIndicator and HealthAggregator 2.2 code
See gh-19699
2020-01-16 14:44:51 +01:00
Scott Frederick 1f1b06dfe2 Remove deprecated Actuator metrics 2.2 code
See gh-19699
2020-01-16 14:44:09 +01:00
Scott Frederick 7031a3b17d Remove deprecated logging properties
See gh-19699
2020-01-16 14:35:41 +01:00
Andy Wilkinson 443d1a6a21 Upgrade to Liquibase 3.8.5
Closes gh-19754
2020-01-15 15:09:58 +00:00
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
2020-01-15 12:33:18 +00:00
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
2020-01-14 12:15:53 +00:00
Phillip Webb 1e5ba09a3e Merge branch '2.2.x' 2020-01-13 17:03:51 -08:00
Phillip Webb 15652ae4c1 Update copyright year of changed files 2020-01-13 16:47:17 -08:00
Phillip Webb f57281340c Merge branch '2.2.x' 2020-01-13 16:46:49 -08:00
Phillip Webb 3cfbfebbb1 Merge branch '2.1.x' into 2.2.x 2020-01-13 16:45:40 -08:00
Madhura Bhave d1f51e064b Merge branch '2.2.x'
Closes gh-19701
2020-01-13 14:15:01 -08:00
Madhura Bhave e60194c7d5 Ignore trailing slash when recording Web metrics
Fixes gh-18207
2020-01-13 14:14:28 -08:00
Phillip Webb 9bd49562fe Update copyright year of changed files 2020-01-13 14:09:11 -08:00
Scott Frederick c789592e26 Remove support for deprecated Elasticsearch Jest client
Closes #19676
2020-01-13 21:03:12 +01:00
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
2020-01-13 19:59:56 +00:00
Brian Clozel b780e5247c Remove support for Elasticsearch transport client
The Elasticsearch transport client has been deprecated since Spring Boot
2.2.0 and is about to be removed from Spring Data Elasticsearch and
Elasticsearch itself in their next major releases.

The available REST client support variants are now the preferred way of
using Elasticsearch features.

Closes gh-19668
2020-01-13 16:00:18 +01:00
Stephane Nicoll ca1710ee56 Upgrade to Apache Cassandra 4.3.1
See gh-19588
2020-01-13 15:12:41 +01:00
Andy Wilkinson ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
2020-01-10 14:15:35 +00:00
Stephane Nicoll 462442e7d2 Polish "Add Stackdriver metrics export support"
See gh-19528
2020-01-08 13:35:44 +01:00
Johannes Graf d42256d856 Add Stackdriver metrics export support
See gh-19528
2020-01-08 13:32:27 +01:00
Andy Wilkinson cbacb6116b Merge branch '2.2.x'
Closes gh-19568
2020-01-08 11:15:59 +00:00
Andy Wilkinson e04055650c Merge branch '2.1.x' into 2.2.x
Closes gh-19567
2020-01-08 11:15:29 +00:00
Andy Wilkinson 3fb1bb74ba Configure WebTestClient to be able to consume large responses
Closes gh-19566
2020-01-08 11:14:42 +00:00
Stephane Nicoll 6fc52b0563 Polish 2020-01-01 09:16:53 +01:00
Stephane Nicoll 2c1e81adf0 Polish 2019-12-26 10:42:40 +01:00
Stephane Nicoll bb3b6dbd7d Merge branch '2.2.x'
Closes gh-19375
2019-12-15 09:05:27 +09:00
dreis2211 b6e4c0f012 Add group property to DynatraceProperties
See gh-19369
2019-12-15 08:54:42 +09:00
Madhura Bhave 8dcf1e4033 Provide end-to-end traceability for config properties
Closes gh-14880

Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
2019-12-12 17:02:46 -08:00
dreis2211 aea37b5d81 Fix deprecation info in CompositeHealthIndicatorConfiguration
See gh-19180
2019-11-28 16:50:46 +01:00
Johnny Lim f234d9c0ec Remove ConditionEvaluationReportLoggingListener usage if possible
See gh-19159
2019-11-27 13:49:27 +01:00
thelproad 65ab82b3cd Remove redundant code
See gh-19000
2019-11-23 12:01:19 +01:00
Madhura Bhave 6e22ddc1a6 Merge branch '2.1.x' into 2.2.x 2019-11-19 12:09:49 -08:00
Madhura Bhave ff22bd4827 Merge branch '2.1.x' into 2.2.x
Closes gh-19059
2019-11-19 11:52:26 -08:00
Johnny Lim ddb22f5a52 Polish test methods
See gh-18962
2019-11-12 14:09:44 +01:00
wycm 363399ce4a Add missing reference to HazelcastHealthContributorAutoConfiguration
See gh-18847
2019-11-04 10:14:54 +01:00
Phillip Webb ae5ae72889 Add and adapt reactive health contributors
Update `HealthEndpointConfiguration` to also include adapted reactive
health contributors when project reactor is on the classpath. Prior to
this commit, reactive contributors were only exposed in WebFlux
applications. This was a regression from Spring Boot 2.1 that we didn't
catch because all our own reactive contributors all have non-reactive
equivalents.

Closes gh-18805
2019-10-30 15:12:28 -07:00
Phillip Webb b3e9a06476 Polish 2019-10-30 15:02:14 -07:00
Stephane Nicoll a83852b7cc Consistently clean actuator endpoint ids
Closes gh-18649
2019-10-29 10:03:18 +01:00
Stephane Nicoll d7652e8f14 Make sure Reactive health indicators take precedence
This commit restores the highest precedence of reactive
HealthContributor over imperative one. Previously, both would be
registered, leading to duplicate entries in health output.

Closes gh-18748
2019-10-28 12:24:09 +01:00
dreis2211 9ece2e277f Remove redundant explicit types
See gh-18754
2019-10-27 08:33:01 +01:00
Phillip Webb 597baf9774 Polish "Optimize logger calls"
See gh-18710
2019-10-23 21:00:05 -07:00
wycm 240b1f9e29 Optimize logger calls
Guard logger calls to ensure that they are only made when the
level is set.

See gh-18710
2019-10-23 20:59:11 -07:00
Phillip Webb c5138c56ff Restore AbstractRoutingDataSource health support
Update `DataSourceHealthContributorAutoConfiguration` so that any
`AbstractRoutingDataSource` beans are still included in the overall
health. Prior to this commit, a regression in Spring Boot 2.2 meant
that if a single routing bean was found an `IllegalArgumentException`
would be thrown.

In Spring Boot 2.1 all `AbstractRoutingDataSource` would be filtered
from the results, but if no results existed the following was returned:

  "details": {
    "db": {
      "status": "UNKNOWN"
    },

In Spring Boot 2.2 we now always include routing datasource beans, even
if other non-routing database beans are found. The health details
includes `"routing" : true` to help users disambiguate any results.

Fixes gh-18661
2019-10-23 15:14:51 -07:00
dreis2211 8ecdf919f8 Fix Mockito deprecations
See gh-18689
2019-10-23 09:49:33 +02:00
Andy Wilkinson cf62dc862b Polish "Correct Mono import in LegacyHealthEndpointCompatibilityConfiguration"
See gh-18571
2019-10-14 09:34:53 +01:00
dreis2211 35dc4817dd Correct Mono import in LegacyHealthEndpointCompatibilityConfiguration
See gh-18571
2019-10-14 09:34:10 +01:00
Johnny Lim d60d59434d Polish
See gh-18531
2019-10-11 10:29:22 -05:00
Phillip Webb 946202bd42 Polish 'Support 'New Relic' eventType properties'
See gh-18472
2019-10-02 22:12:53 -07:00
Neil Powell e73ae62621 Support 'New Relic' eventType properties
Update `NewRelicProperties` so that the event type sent with each
metric can be configured. An additional `boolean` property has
also been added if the previous behavior using the "meter-name"
is required.

NewRelic's own agents publish metrics to eventTypes aligned with broader
categories. To align with their recommendation the default behavior is
to publish metrics under a "SpringBootSample" category. When doing so,
additional context is provided by including "metricName" and
"metricType" attributes.

See gh-18472
2019-10-02 22:08:14 -07:00
Andy Wilkinson dab69cfbd2 Upgrade to Promethus Pushgateway 0.7.0
Closes gh-18418
2019-10-02 11:26:47 +01:00
Andy Wilkinson 46c30d6bb0 Merge branch '2.1.x'
Closes gh-18476
2019-10-02 10:48:57 +01:00
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
2019-10-02 10:48:30 +01:00
Phillip Webb a8139ba819 Merge branch '2.1.x' 2019-10-01 11:39:46 -07:00
Phillip Webb 40acbfc733 Update copyright header of changed files 2019-10-01 11:39:38 -07:00
Phillip Webb 262eb686d0 Merge branch '2.1.x'
Closes gh-18468
2019-10-01 11:34:56 -07:00
Madhura Bhave ecf393461e Skip management context ResourceConfigCustomizers
Update `JerseyManagementContextConfiguration` so that customizer beans
are not longer applied. The endpoint resource endpoints are now added
with a registrar bean `@PostConstruct` method.

Prior to this commit, when running the management server on a different
port a `Resource` added by a customizer could be added two different
`ResourceConfig` instance. This breaks the singleton contract expected
by Jersey.

Fixes gh-17801

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2019-10-01 11:16:23 -07:00
Stephane Nicoll a36d2cd159 Upgrade to micrometer 1.3.0
Closes gh-18389
2019-10-01 11:15:07 +02:00
Stephane Nicoll d2273bd68e Remove endpoint ID hints from metadata
Closes gh-18381
2019-09-30 12:56:34 +02:00
Phillip Webb 8f9fd97095 Don't reset defaults if source collection is empty
Update `LegacyHealthEndpointCompatibilityConfiguration` to ensure that
the default configuration is only overwritten when the user has
explicitly set new values.

Fixes gh-18354
2019-09-26 18:20:59 -07:00
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
2019-09-26 16:17:28 -07:00
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
2019-09-26 16:16:23 -07:00
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
2019-09-26 16:16:15 -07:00
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
2019-09-24 19:53:50 -07:00
Brian Clozel eeaa9bc6c1 Fix ref docs code snippet theme
This commit also fixes a link in the reference documentation.

See gh-18293
2019-09-24 11:25:57 +02:00
Stephane Nicoll 3c8402f6af Polish
See gh-18194
2019-09-24 09:35:39 +02:00
Phillip Webb d7a472b8a6 Restore HealthIndicatorRegistry beans
Restore `HealthIndicatorRegistry` and `ReactiveHealthIndicatorRegistry`
auto-configured beans with a version that adapts to the new contributor
interfaces.

Closes gh-16903
2019-09-23 23:43:43 -07:00
Phillip Webb 838e7eb605 Extract spring-doc-resources URL property
Update the build to use a shared spring-doc-resources URL
rather than repeating it multiple times.

See gh-18293
2019-09-20 21:38:56 -07:00
Brian Clozel 73ed96893f
Polish spring-doc-resources update
See gh-18293
2019-09-20 23:10:17 +02:00
Andy Wilkinson d5fc324537 Upgrade to Asciidoctor Maven Plugin 1.6.0
Closes gh-17234
2019-09-20 11:59:16 +01:00
Johnny Lim 5b41c3b608 Polish
See gh-18192
2019-09-12 14:55:47 +02:00
Stephane Nicoll a56eb4b974 Fix typo 2019-09-09 14:23:24 +02:00
Stephane Nicoll ae34ae78dc Polish "Remove management.health.status.order from docs"
See gh-18170
2019-09-09 14:13:46 +02:00
dreis2211 7a49651e09 Remove management.health.status.order from docs
See gh-18170
2019-09-09 14:13:04 +02:00