@Experimental(value="We are experimenting with spies for diagnosis and testing")
public interface Spy
Uni
and Multi
spies to observe events.
A spy is a transparent operator that can be plugged into a pipeline to help diagnose what events flow.
It observes how many times a given event has been observed.
Depending on the event type it will also report values, such as the last observed failure or termination.
It is important to note that spies observe and report events for all subscribers, not just one in particular.Modifier and Type | Method and Description |
---|---|
static <T> MultiGlobalSpy<T> |
globally(Multi<T> upstream)
Spy all
Multi events (except Multi.onOverflow() ). |
static <T> UniGlobalSpy<T> |
globally(Uni<T> upstream)
Spy all
Uni events. |
static <T> MultiOnCancellationSpy<T> |
onCancellation(Multi<T> upstream)
Spy
Multi.onCancellation() events. |
static <T> UniOnCancellationSpy<T> |
onCancellation(Uni<T> upstream)
Spy
Uni.onCancellation() events. |
static <T> MultiOnCompletionSpy<T> |
onCompletion(Multi<T> upstream)
Spy
Multi.onCompletion() events. |
static <T> MultiOnFailureSpy<T> |
onFailure(Multi<T> upstream)
Spy
Multi.onFailure() events. |
static <T> MultiOnFailureSpy<T> |
onFailure(Multi<T> upstream,
Class<? extends Throwable> typeOfFailure)
Spy
Multi.onFailure(Class) events. |
static <T> MultiOnFailureSpy<T> |
onFailure(Multi<T> upstream,
Predicate<? super Throwable> predicate)
Spy
Multi.onFailure(Predicate) events. |
static <T> UniOnFailureSpy<T> |
onFailure(Uni<T> upstream)
Spy
Uni.onFailure() events. |
static <T> UniOnFailureSpy<T> |
onFailure(Uni<T> upstream,
Class<? extends Throwable> typeOfFailure)
Spy
Uni.onFailure(Class) events. |
static <T> UniOnFailureSpy<T> |
onFailure(Uni<T> upstream,
Predicate<? super Throwable> predicate)
Spy
Uni.onFailure(Predicate) )} events. |
static <T> MultiOnItemSpy<T> |
onItem(Multi<T> upstream)
Spy
Multi.onItem() events and keep track of the items. |
static <T> MultiOnItemSpy<T> |
onItem(Multi<T> upstream,
boolean trackItems)
Spy
Multi.onItem() events and optionally keep track of the items. |
static <T> UniOnItemSpy<T> |
onItem(Uni<T> upstream)
Spy
Uni.onItem() events. |
static <T> UniOnItemOrFailureSpy<T> |
onItemOrFailure(Uni<T> upstream)
Spy
Uni.onItemOrFailure() events. |
static <T> MultiOnOverflowSpy<T> |
onOverflow(Multi<T> upstream,
boolean trackItems,
Function<MultiOverflowStrategy<? extends T>,Multi<? extends T>> strategyMapper)
Spy
Multi.onOverflow() events and track dropped items. |
static <T> MultiOnOverflowSpy<T> |
onOverflow(Multi<T> upstream,
Function<MultiOverflowStrategy<? extends T>,Multi<? extends T>> strategyMapper)
Spy
Multi.onOverflow() events and track dropped items. |
static <T> MultiOnRequestSpy<T> |
onRequest(Multi<T> upstream)
Spy
Multi.onRequest() events. |
static <T> MultiOnSubscribeSpy<T> |
onSubscribe(Multi<T> upstream)
Spy
Multi.onSubscribe() events. |
static <T> UniOnSubscribeSpy<T> |
onSubscribe(Uni<T> upstream)
Spy
Uni.onSubscribe() events. |
static <T> MultiOnTerminationSpy<T> |
onTermination(Multi<T> upstream)
Spy
Multi.onTermination() events. |
static <T> UniOnTerminationSpy<T> |
onTermination(Uni<T> upstream)
Spy
Uni.onTermination() events. |
static <T> UniOnSubscribeSpy<T> onSubscribe(Uni<T> upstream)
Uni.onSubscribe()
events.T
- the item typeupstream
- the upstreamUni
static <T> UniOnCancellationSpy<T> onCancellation(Uni<T> upstream)
Uni.onCancellation()
events.T
- the item typeupstream
- the upstreamUni
static <T> UniOnTerminationSpy<T> onTermination(Uni<T> upstream)
Uni.onTermination()
events.T
- the item typeupstream
- the upstreamUni
static <T> UniOnItemSpy<T> onItem(Uni<T> upstream)
Uni.onItem()
events.T
- the item typeupstream
- the upstreamUni
static <T> UniOnItemOrFailureSpy<T> onItemOrFailure(Uni<T> upstream)
Uni.onItemOrFailure()
events.T
- the item typeupstream
- the upstreamUni
static <T> UniOnFailureSpy<T> onFailure(Uni<T> upstream)
Uni.onFailure()
events.T
- the item typeupstream
- the upstreamUni
static <T> UniOnFailureSpy<T> onFailure(Uni<T> upstream, Predicate<? super Throwable> predicate)
Uni.onFailure(Predicate)
)} events.T
- the item typeupstream
- the upstreampredicate
- a predicate to match a failure typeUni
static <T> UniOnFailureSpy<T> onFailure(Uni<T> upstream, Class<? extends Throwable> typeOfFailure)
Uni.onFailure(Class)
events.T
- the item typeupstream
- the upstreamtypeOfFailure
- the expected failure typeUni
static <T> UniGlobalSpy<T> globally(Uni<T> upstream)
Uni
events.T
- the item typeupstream
- the upstreamUni
static <T> MultiOnCancellationSpy<T> onCancellation(Multi<T> upstream)
Multi.onCancellation()
events.T
- the items typeupstream
- the upstreamMulti
static <T> MultiOnCompletionSpy<T> onCompletion(Multi<T> upstream)
Multi.onCompletion()
events.T
- the items typeupstream
- the upstreamMulti
static <T> MultiOnFailureSpy<T> onFailure(Multi<T> upstream)
Multi.onFailure()
events.T
- the items typeupstream
- the upstreamMulti
static <T> MultiOnFailureSpy<T> onFailure(Multi<T> upstream, Predicate<? super Throwable> predicate)
Multi.onFailure(Predicate)
events.T
- the items typeupstream
- the upstreampredicate
- a predicate to match a failure typeMulti
static <T> MultiOnFailureSpy<T> onFailure(Multi<T> upstream, Class<? extends Throwable> typeOfFailure)
Multi.onFailure(Class)
events.T
- the items typeupstream
- the upstreamtypeOfFailure
- the type of failureMulti
static <T> MultiOnItemSpy<T> onItem(Multi<T> upstream)
Multi.onItem()
events and keep track of the items.T
- the items typeupstream
- the upstreamMulti
static <T> MultiOnItemSpy<T> onItem(Multi<T> upstream, boolean trackItems)
Multi.onItem()
events and optionally keep track of the items.T
- the items typeupstream
- the upstreamtrackItems
- true
when items shall be tracked, false
otherwiseMulti
static <T> MultiOnRequestSpy<T> onRequest(Multi<T> upstream)
Multi.onRequest()
events.T
- the items typeupstream
- the upstreamMulti
static <T> MultiOnSubscribeSpy<T> onSubscribe(Multi<T> upstream)
Multi.onSubscribe()
events.T
- the items typeupstream
- the upstreamMulti
static <T> MultiOnTerminationSpy<T> onTermination(Multi<T> upstream)
Multi.onTermination()
events.T
- the items typeupstream
- the upstreamMulti
static <T> MultiOnOverflowSpy<T> onOverflow(Multi<T> upstream, Function<MultiOverflowStrategy<? extends T>,Multi<? extends T>> strategyMapper)
Multi.onOverflow()
events and track dropped items.T
- the items typeupstream
- the uptreamstrategyMapper
- a function to define the drop strategy applied by the spyMulti
static <T> MultiOnOverflowSpy<T> onOverflow(Multi<T> upstream, boolean trackItems, Function<MultiOverflowStrategy<? extends T>,Multi<? extends T>> strategyMapper)
Multi.onOverflow()
events and track dropped items.T
- the items typeupstream
- the uptreamtrackItems
- true
if items shall be tracked, false
otherwisestrategyMapper
- a function to define the drop strategy applied by the spyMulti
static <T> MultiGlobalSpy<T> globally(Multi<T> upstream)
Multi
events (except Multi.onOverflow()
).
The overflow events are not being tracked because they cause the upstream
to be requested Long.MAX_VALUE
elements, so the behavior of a pipeline can be affected by introducing a MultiOnOverflowSpy
.
If you want to track overflow events then you will need to explicitly wrap a Multi
with
onOverflow(Multi, Function)
.T
- the items typeupstream
- the upstreamMulti
Copyright © 2019–2020 SmallRye. All rights reserved.