Add `OpenTelemetryEventPublisherApplicationListener` which uses a single
static `ContextStorage` wrapper which gets applied as early as possible.
The static wrapper is then updated as beans come and go.
By adding the wrapper early, we hope to avoid silent failures which
can occur if the `ContextStorage` gets initialized before the wrapper
is added.
Closes gh-41439
Deprecate `EndpointExposure.CLOUD_FOUNDRY` and introduce an alternative
implementation based on a pluggable abstraction.
The new `EndpointExposureOutcomeContributor` interface may now be used
to influence `@OnAvailableEndpointCondition` exposure results. Several
infrastructure beans that previously used the condition have been
refactored to always be registered, but tolerate missing endpoints.
A new smoke test application has been added that demonstrates how the
abstraction can be used by a third-party.
Closes gh-41135
Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
This commit ensures that Health probes are automatically enabled when
the application runs on Cloud Foundry. This was already the case for
Kubernetes, but now that Cloud Foundry supports this feature we should
do the same.
Closes gh-39804
As of spring-projects/spring-framework#24560, Spring provides additional
metadata for scheduled tasks:
* next execution time
* last execution outcome (including status, time and raised exception)
This commit leverages this information to enhance the existing
`scheduledtasks` Actuator endpoint.
Closes gh-17585
- Deprecate Deprecate @MockBean and @SpyBean in favor of Spring
Framework 6.2's @MockitoBean and @MockitoSpy
- Migrate usages of @MockBean and @SpyBean to @MockitoBean and
@MockitoSpy
Signed-off-by: Jakob Wanger <jakobwanger@gmail.com>
See gh-39864
Depending on what tests had already run, Otel tests in
BaggagePropagationIntegrationTests could fail due to missing baggage
related entries in the MDC. The entries were missing if Otel's
ContextStorageWrappers had been marked as initialized without an
EventPublishingContextWrapper containing event publisher that will
publish to Slf4JBaggageEventListener.
ContextStorageWrappers uses a static so this commit avoids to problem
by forking a new classpath in BaggagePropagationIntegrationTests. This
ensures that any previous static state in ContextStorageWrappers has
no effect upon BaggagePropagationIntegrationTests.
This adds a property to provide some indicator that a set of
applications are part of a larger "business application" so that they
can be viewed in metrics, portals, traces and more.
See gh-39957