Skip to content

Commit f473513

Browse files
JiahaoRobWin
Jiahao
authored andcommitted
Added decorateFutureSupplier to timeLimiter as non-static method. (ReactiveX#525)
1 parent 0de54e0 commit f473513

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

resilience4j-timelimiter/src/main/java/io/github/resilience4j/timelimiter/TimeLimiter.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,16 @@ static <T, F extends Future<T>> Callable<T> decorateFutureSupplier(TimeLimiter t
8989
default <T, F extends Future<T>> T executeFutureSupplier(Supplier<F> futureSupplier) throws Exception {
9090
return decorateFutureSupplier(this, futureSupplier).call();
9191
}
92+
93+
/**
94+
* Creates a Callback that is restricted by a TimeLimiter.
95+
*
96+
* @param futureSupplier the original future supplier
97+
* @param <T> the type of results supplied by the supplier
98+
* @param <F> the future type supplied
99+
* @return a future supplier which is restricted by a {@link TimeLimiter}.
100+
*/
101+
default <T, F extends Future<T>> Callable<T> decorateFutureSupplier(Supplier<F> futureSupplier) {
102+
return decorateFutureSupplier(this, futureSupplier);
103+
}
92104
}

resilience4j-timelimiter/src/test/java/io/github/resilience4j/timelimiter/TimeLimiterTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,8 @@ public void shouldReturnResult() throws Exception {
7575

7676
Integer result = timeLimiter.executeFutureSupplier(supplier);
7777
Assertions.assertThat(result).isEqualTo(42);
78+
79+
result = timeLimiter.decorateFutureSupplier(supplier).call();
80+
Assertions.assertThat(result).isEqualTo(42);
7881
}
7982
}

0 commit comments

Comments
 (0)