Class ResilienceDecorator
java.lang.Object
com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorator
Accessor class for decorating functions with resilient properties.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
clearAllCacheEntries
(ResilienceConfiguration configuration) Clears the entire cache associated with the givenResilienceConfiguration
if any exists, independent of the specifiedResilienceIsolationMode
and defined parameters.static void
clearCache
(ResilienceConfiguration configuration) Clears the cache associated with the givenResilienceConfiguration
if any exists.static void
clearCache
(ResilienceConfiguration configuration, CacheFilter filter) Clears the cache associated with the givenResilienceConfiguration
if any exists.static <T> Callable<T>
decorateCallable
(Callable<T> callable, ResilienceConfiguration configuration) Decorate an instance of a callable function.static <T> Callable<T>
decorateCallable
(Callable<T> callable, ResilienceConfiguration configuration, Function<? super Throwable, T> fallbackFunction) Decorate an instance of a callable function.static <T> Supplier<T>
decorateSupplier
(Supplier<T> supplier, ResilienceConfiguration configuration) Decorate an instance of a supplier function.static <T> Supplier<T>
decorateSupplier
(Supplier<T> supplier, ResilienceConfiguration configuration, Function<? super Throwable, T> fallbackFunction) Decorate an instance of a supplier function.static <T> T
executeCallable
(Callable<T> callable, ResilienceConfiguration configuration) Decorate and execute an instance of a callable function.static <T> T
executeCallable
(Callable<T> callable, ResilienceConfiguration configuration, Function<? super Throwable, T> fallbackFunction) Decorate and execute an instance of a callable function.static <T> T
executeSupplier
(Supplier<T> supplier, ResilienceConfiguration configuration) Decorate and execute an instance of a supplier function.static <T> T
executeSupplier
(Supplier<T> supplier, ResilienceConfiguration configuration, Function<? super Throwable, T> fallbackFunction) Decorate and execute an instance of a supplier function.static ResilienceDecorationStrategy
Returns theResilienceDecorationStrategy
that will be used to decorate resilient code,static <T> CompletableFuture<T>
queueCallable
(Callable<T> callable, ResilienceConfiguration configuration) Decorate an instance of a callable function.static <T> CompletableFuture<T>
queueCallable
(Callable<T> callable, ResilienceConfiguration configuration, Function<? super Throwable, T> fallbackFunction) Decorate an instance of a callable function.static <T> CompletableFuture<T>
queueSupplier
(Supplier<T> supplier, ResilienceConfiguration configuration) Decorate an instance of a supplier function.static <T> CompletableFuture<T>
queueSupplier
(Supplier<T> supplier, ResilienceConfiguration configuration, Function<? super Throwable, T> fallbackFunction) Decorate an instance of a supplier function.static void
Resets the decoration strategy to its default.static void
setDecorationStrategy
(ResilienceDecorationStrategy decorationStrategy) Sets theResilienceDecorationStrategy
that will be used to decorate resilient code.
-
Constructor Details
-
ResilienceDecorator
public ResilienceDecorator()
-
-
Method Details
-
getDecorationStrategy
Returns theResilienceDecorationStrategy
that will be used to decorate resilient code,- Returns:
- The
ResilienceDecorationStrategy
that will be used to decorate resilient code.
-
setDecorationStrategy
Sets theResilienceDecorationStrategy
that will be used to decorate resilient code.- Parameters:
decorationStrategy
- TheResilienceDecorationStrategy
that will be used to decorate resilient code.
-
resetDecorationStrategy
public static void resetDecorationStrategy()Resets the decoration strategy to its default. -
clearCache
Clears the cache associated with the givenResilienceConfiguration
if any exists. This method respects tenant/principal isolation according to theResilienceIsolationMode
as well as parameter isolation.
To clear all cache entries for all tenants, principals, and parameters, useclearAllCacheEntries(ResilienceConfiguration)
instead.- Parameters:
configuration
- TheResilienceConfiguration
the cache is attached to.
-
clearCache
public static void clearCache(@Nonnull ResilienceConfiguration configuration, @Nonnull CacheFilter filter) Clears the cache associated with the givenResilienceConfiguration
if any exists. Cache entries to clear are determined by applying the givenfilter
. Each cache entry for which the cache filter matches, gets cleared from the cache.- Parameters:
configuration
- TheResilienceConfiguration
the cache is attached to.filter
- ACacheFilter
to apply in order to select entries that should be cleared from the cache.
-
clearAllCacheEntries
Clears the entire cache associated with the givenResilienceConfiguration
if any exists, independent of the specifiedResilienceIsolationMode
and defined parameters. Be aware that this operation affects all tenants and principals.
UseclearCache(ResilienceConfiguration)
to respect the tenant/principal and parameter isolation.- Parameters:
configuration
- TheResilienceConfiguration
the cache is attached to.
-
decorateSupplier
@Nonnull public static <T> Supplier<T> decorateSupplier(@Nonnull Supplier<T> supplier, @Nonnull ResilienceConfiguration configuration) Decorate an instance of a supplier function.- Type Parameters:
T
- The return type of the call.- Parameters:
supplier
- The supplier.configuration
- The configuration of the resilient call.- Returns:
- A decorated supplier.
-
executeSupplier
@Nullable public static <T> T executeSupplier(@Nonnull Supplier<T> supplier, @Nonnull ResilienceConfiguration configuration) Decorate and execute an instance of a supplier function.- Type Parameters:
T
- The return type of the call.- Parameters:
supplier
- The supplier.configuration
- The configuration of the resilient call.- Returns:
- The value of the supplier.
-
decorateSupplier
@Nonnull public static <T> Supplier<T> decorateSupplier(@Nonnull Supplier<T> supplier, @Nonnull ResilienceConfiguration configuration, @Nullable Function<? super Throwable, T> fallbackFunction) Decorate an instance of a supplier function.- Type Parameters:
T
- The return type of the call.- Parameters:
supplier
- The supplier.configuration
- The configuration of the resilient call.fallbackFunction
- In case of failure, execute this function.- Returns:
- A decorated supplier.
-
executeSupplier
@Nullable public static <T> T executeSupplier(@Nonnull Supplier<T> supplier, @Nonnull ResilienceConfiguration configuration, @Nullable Function<? super Throwable, T> fallbackFunction) Decorate and execute an instance of a supplier function.- Type Parameters:
T
- The return type of the call.- Parameters:
supplier
- The supplier.configuration
- The configuration of the resilient call.fallbackFunction
- In case of failure, execute this function.- Returns:
- The value of the supplier.
-
decorateCallable
@Nonnull public static <T> Callable<T> decorateCallable(@Nonnull Callable<T> callable, @Nonnull ResilienceConfiguration configuration) Decorate an instance of a callable function.- Type Parameters:
T
- The return type of the call.- Parameters:
callable
- The callable.configuration
- The configuration of the resilient call.- Returns:
- A decorated callable.
-
executeCallable
@Nullable public static <T> T executeCallable(@Nonnull Callable<T> callable, @Nonnull ResilienceConfiguration configuration) throws Exception Decorate and execute an instance of a callable function.- Type Parameters:
T
- The return type of the call.- Parameters:
callable
- The callable.configuration
- The configuration of the resilient call.- Returns:
- The value returned by the callable.
- Throws:
Exception
- Exception that can be thrown by the callable.
-
decorateCallable
@Nonnull public static <T> Callable<T> decorateCallable(@Nonnull Callable<T> callable, @Nonnull ResilienceConfiguration configuration, @Nullable Function<? super Throwable, T> fallbackFunction) Decorate an instance of a callable function.- Type Parameters:
T
- The return type of the call.- Parameters:
callable
- The callable.configuration
- The configuration of the resilient call.fallbackFunction
- In case of failure, execute this function.- Returns:
- A decorated callable.
-
executeCallable
@Nullable public static <T> T executeCallable(@Nonnull Callable<T> callable, @Nonnull ResilienceConfiguration configuration, @Nullable Function<? super Throwable, T> fallbackFunction) Decorate and execute an instance of a callable function.- Type Parameters:
T
- The return type of the call.- Parameters:
callable
- The callable.configuration
- The configuration of the resilient call.fallbackFunction
- (Optional) In case of failure, execute this function.- Returns:
- The value returned by the callable.
-
queueCallable
@Nonnull public static <T> CompletableFuture<T> queueCallable(@Nonnull Callable<T> callable, @Nonnull ResilienceConfiguration configuration, @Nullable Function<? super Throwable, T> fallbackFunction) Decorate an instance of a callable function. Automatically schedule the asynchronous execution.- Type Parameters:
T
- The return type of the call.- Parameters:
callable
- The callable.configuration
- The configuration of the resilient call.fallbackFunction
- (Optional) In case of failure, execute this function.- Returns:
- An instance of Future being executed asynchronously.
-
queueCallable
@Nonnull public static <T> CompletableFuture<T> queueCallable(@Nonnull Callable<T> callable, @Nonnull ResilienceConfiguration configuration) Decorate an instance of a callable function. Automatically schedule the asynchronous execution.- Type Parameters:
T
- The return type of the call.- Parameters:
callable
- The callable.configuration
- The configuration of the resilient call.- Returns:
- An instance of Future being executed asynchronously.
-
queueSupplier
@Nonnull public static <T> CompletableFuture<T> queueSupplier(@Nonnull Supplier<T> supplier, @Nonnull ResilienceConfiguration configuration, @Nullable Function<? super Throwable, T> fallbackFunction) Decorate an instance of a supplier function. Automatically schedule the asynchronous execution.- Type Parameters:
T
- The return type of the call.- Parameters:
supplier
- The supplier.configuration
- The configuration of the resilient call.fallbackFunction
- (Optional) In case of failure, execute this function.- Returns:
- An instance of Future being executed asynchronously.
-
queueSupplier
@Nonnull public static <T> CompletableFuture<T> queueSupplier(@Nonnull Supplier<T> supplier, @Nonnull ResilienceConfiguration configuration) Decorate an instance of a supplier function. Automatically schedule the asynchronous execution.- Type Parameters:
T
- The return type of the call.- Parameters:
supplier
- The supplier.configuration
- The configuration of the resilient call.- Returns:
- An instance of Future being executed asynchronously.
-