Package io.smallrye.mutiny.helpers.spies
Interface Spy
-
@Experimental("We are experimenting with spies for diagnosis and testing") public interface Spy
Helpers for creatingUni
andMulti
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.
-
-
Method Summary
Static Methods Modifier and Type Method Description static <T> MultiGlobalSpy<T>
globally(Multi<T> upstream)
Spy allMulti
events (exceptMulti.onOverflow()
).static <T> UniGlobalSpy<T>
globally(Uni<T> upstream)
Spy allUni
events.static <T> MultiOnCancellationSpy<T>
onCancellation(Multi<T> upstream)
SpyMulti.onCancellation()
events.static <T> UniOnCancellationSpy<T>
onCancellation(Uni<T> upstream)
SpyUni.onCancellation()
events.static <T> MultiOnCompletionSpy<T>
onCompletion(Multi<T> upstream)
SpyMulti.onCompletion()
events.static <T> MultiOnFailureSpy<T>
onFailure(Multi<T> upstream)
SpyMulti.onFailure()
events.static <T> MultiOnFailureSpy<T>
onFailure(Multi<T> upstream, java.lang.Class<? extends java.lang.Throwable> typeOfFailure)
SpyMulti.onFailure(Class)
events.static <T> MultiOnFailureSpy<T>
onFailure(Multi<T> upstream, java.util.function.Predicate<? super java.lang.Throwable> predicate)
SpyMulti.onFailure(Predicate)
events.static <T> UniOnFailureSpy<T>
onFailure(Uni<T> upstream)
SpyUni.onFailure()
events.static <T> UniOnFailureSpy<T>
onFailure(Uni<T> upstream, java.lang.Class<? extends java.lang.Throwable> typeOfFailure)
SpyUni.onFailure(Class)
events.static <T> UniOnFailureSpy<T>
onFailure(Uni<T> upstream, java.util.function.Predicate<? super java.lang.Throwable> predicate)
SpyUni.onFailure(Predicate)
)} events.static <T> MultiOnItemSpy<T>
onItem(Multi<T> upstream)
SpyMulti.onItem()
events and keep track of the items.static <T> MultiOnItemSpy<T>
onItem(Multi<T> upstream, boolean trackItems)
SpyMulti.onItem()
events and optionally keep track of the items.static <T> UniOnItemSpy<T>
onItem(Uni<T> upstream)
SpyUni.onItem()
events.static <T> UniOnItemOrFailureSpy<T>
onItemOrFailure(Uni<T> upstream)
SpyUni.onItemOrFailure()
events.static <T> MultiOnOverflowSpy<T>
onOverflow(Multi<T> upstream, boolean trackItems, java.util.function.Function<MultiOverflowStrategy<? extends T>,Multi<? extends T>> strategyMapper)
SpyMulti.onOverflow()
events and track dropped items.static <T> MultiOnOverflowSpy<T>
onOverflow(Multi<T> upstream, java.util.function.Function<MultiOverflowStrategy<? extends T>,Multi<? extends T>> strategyMapper)
SpyMulti.onOverflow()
events and track dropped items.static <T> MultiOnRequestSpy<T>
onRequest(Multi<T> upstream)
SpyMulti.onRequest()
events.static <T> MultiOnSubscribeSpy<T>
onSubscribe(Multi<T> upstream)
SpyMulti.onSubscription()
events.static <T> UniOnSubscribeSpy<T>
onSubscribe(Uni<T> upstream)
SpyUni.onSubscription()
events.static <T> MultiOnTerminationSpy<T>
onTermination(Multi<T> upstream)
SpyMulti.onTermination()
events.static <T> UniOnTerminationSpy<T>
onTermination(Uni<T> upstream)
SpyUni.onTermination()
events.
-
-
-
Method Detail
-
onSubscribe
static <T> UniOnSubscribeSpy<T> onSubscribe(Uni<T> upstream)
SpyUni.onSubscription()
events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstream- Returns:
- a new
Uni
-
onCancellation
static <T> UniOnCancellationSpy<T> onCancellation(Uni<T> upstream)
SpyUni.onCancellation()
events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstream- Returns:
- a new
Uni
-
onTermination
static <T> UniOnTerminationSpy<T> onTermination(Uni<T> upstream)
SpyUni.onTermination()
events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstream- Returns:
- a new
Uni
-
onItem
static <T> UniOnItemSpy<T> onItem(Uni<T> upstream)
SpyUni.onItem()
events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstream- Returns:
- a new
Uni
-
onItemOrFailure
static <T> UniOnItemOrFailureSpy<T> onItemOrFailure(Uni<T> upstream)
SpyUni.onItemOrFailure()
events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstream- Returns:
- a new
Uni
-
onFailure
static <T> UniOnFailureSpy<T> onFailure(Uni<T> upstream)
SpyUni.onFailure()
events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstream- Returns:
- a new
Uni
-
onFailure
static <T> UniOnFailureSpy<T> onFailure(Uni<T> upstream, java.util.function.Predicate<? super java.lang.Throwable> predicate)
SpyUni.onFailure(Predicate)
)} events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstreampredicate
- a predicate to match a failure type- Returns:
- a new
Uni
-
onFailure
static <T> UniOnFailureSpy<T> onFailure(Uni<T> upstream, java.lang.Class<? extends java.lang.Throwable> typeOfFailure)
SpyUni.onFailure(Class)
events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstreamtypeOfFailure
- the expected failure type- Returns:
- a new
Uni
-
globally
static <T> UniGlobalSpy<T> globally(Uni<T> upstream)
Spy allUni
events.- Type Parameters:
T
- the item type- Parameters:
upstream
- the upstream- Returns:
- a new
Uni
-
onCancellation
static <T> MultiOnCancellationSpy<T> onCancellation(Multi<T> upstream)
SpyMulti.onCancellation()
events.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstream- Returns:
- a new
Multi
-
onCompletion
static <T> MultiOnCompletionSpy<T> onCompletion(Multi<T> upstream)
SpyMulti.onCompletion()
events.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstream- Returns:
- a new
Multi
-
onFailure
static <T> MultiOnFailureSpy<T> onFailure(Multi<T> upstream)
SpyMulti.onFailure()
events.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstream- Returns:
- a new
Multi
-
onFailure
static <T> MultiOnFailureSpy<T> onFailure(Multi<T> upstream, java.util.function.Predicate<? super java.lang.Throwable> predicate)
SpyMulti.onFailure(Predicate)
events.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstreampredicate
- a predicate to match a failure type- Returns:
- a new
Multi
-
onFailure
static <T> MultiOnFailureSpy<T> onFailure(Multi<T> upstream, java.lang.Class<? extends java.lang.Throwable> typeOfFailure)
SpyMulti.onFailure(Class)
events.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstreamtypeOfFailure
- the type of failure- Returns:
- a new
Multi
-
onItem
static <T> MultiOnItemSpy<T> onItem(Multi<T> upstream)
SpyMulti.onItem()
events and keep track of the items.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstream- Returns:
- a new
Multi
-
onItem
static <T> MultiOnItemSpy<T> onItem(Multi<T> upstream, boolean trackItems)
SpyMulti.onItem()
events and optionally keep track of the items.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstreamtrackItems
-true
when items shall be tracked,false
otherwise- Returns:
- a new
Multi
-
onRequest
static <T> MultiOnRequestSpy<T> onRequest(Multi<T> upstream)
SpyMulti.onRequest()
events.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstream- Returns:
- a new
Multi
-
onSubscribe
static <T> MultiOnSubscribeSpy<T> onSubscribe(Multi<T> upstream)
SpyMulti.onSubscription()
events.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstream- Returns:
- a new
Multi
-
onTermination
static <T> MultiOnTerminationSpy<T> onTermination(Multi<T> upstream)
SpyMulti.onTermination()
events.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstream- Returns:
- a new
Multi
-
onOverflow
static <T> MultiOnOverflowSpy<T> onOverflow(Multi<T> upstream, java.util.function.Function<MultiOverflowStrategy<? extends T>,Multi<? extends T>> strategyMapper)
SpyMulti.onOverflow()
events and track dropped items.- Type Parameters:
T
- the items type- Parameters:
upstream
- the uptreamstrategyMapper
- a function to define the drop strategy applied by the spy- Returns:
- a new
Multi
-
onOverflow
static <T> MultiOnOverflowSpy<T> onOverflow(Multi<T> upstream, boolean trackItems, java.util.function.Function<MultiOverflowStrategy<? extends T>,Multi<? extends T>> strategyMapper)
SpyMulti.onOverflow()
events and track dropped items.- Type Parameters:
T
- the items type- Parameters:
upstream
- the uptreamtrackItems
-true
if items shall be tracked,false
otherwisestrategyMapper
- a function to define the drop strategy applied by the spy- Returns:
- a new
Multi
-
globally
static <T> MultiGlobalSpy<T> globally(Multi<T> upstream)
Spy allMulti
events (exceptMulti.onOverflow()
). The overflow events are not being tracked because they cause theupstream
to be requestedLong.MAX_VALUE
elements, so the behavior of a pipeline can be affected by introducing aMultiOnOverflowSpy
. If you want to track overflow events then you will need to explicitly wrap aMulti
withonOverflow(Multi, Function)
.- Type Parameters:
T
- the items type- Parameters:
upstream
- the upstream- Returns:
- a new
Multi
-
-