@@ -157,8 +157,10 @@ interface Metrics {
157
157
*
158
158
* @param supplier the original supplier
159
159
* @param circuitBreaker the CircuitBreaker
160
+ *
160
161
* @return a supplier which is secured by a CircuitBreaker.
161
162
*/
163
+ @ Deprecated
162
164
static <T > Try .CheckedSupplier <T > decorateCheckedSupplier (Try .CheckedSupplier <T > supplier , CircuitBreaker circuitBreaker ){
163
165
return () -> {
164
166
CircuitBreakerUtils .isCallPermitted (circuitBreaker );
@@ -173,13 +175,38 @@ static <T> Try.CheckedSupplier<T> decorateCheckedSupplier(Try.CheckedSupplier<T>
173
175
};
174
176
}
175
177
178
+
179
+ /**
180
+ * Creates a supplier which is secured by a CircuitBreaker.
181
+ *
182
+ * @param circuitBreaker the CircuitBreaker
183
+ * @param supplier the original supplier
184
+ *
185
+ * @return a supplier which is secured by a CircuitBreaker.
186
+ */
187
+ static <T > Try .CheckedSupplier <T > decorateCheckedSupplier (CircuitBreaker circuitBreaker , Try .CheckedSupplier <T > supplier ){
188
+ return () -> {
189
+ CircuitBreakerUtils .isCallPermitted (circuitBreaker );
190
+ try {
191
+ T returnValue = supplier .get ();
192
+ circuitBreaker .recordSuccess ();
193
+ return returnValue ;
194
+ } catch (Throwable throwable ) {
195
+ circuitBreaker .recordFailure (throwable );
196
+ throw throwable ;
197
+ }
198
+ };
199
+ }
200
+
176
201
/**
177
202
* Creates a runnable which is secured by a CircuitBreaker.
178
203
*
179
204
* @param runnable the original runnable
180
205
* @param circuitBreaker the CircuitBreaker
206
+ *
181
207
* @return a runnable which is secured by a CircuitBreaker.
182
208
*/
209
+ @ Deprecated
183
210
static Try .CheckedRunnable decorateCheckedRunnable (Try .CheckedRunnable runnable , CircuitBreaker circuitBreaker ){
184
211
return () -> {
185
212
CircuitBreakerUtils .isCallPermitted (circuitBreaker );
@@ -193,13 +220,36 @@ static Try.CheckedRunnable decorateCheckedRunnable(Try.CheckedRunnable runnable,
193
220
};
194
221
}
195
222
223
+ /**
224
+ * Creates a runnable which is secured by a CircuitBreaker.
225
+ *
226
+ * @param circuitBreaker the CircuitBreaker
227
+ * @param runnable the original runnable
228
+
229
+ * @return a runnable which is secured by a CircuitBreaker.
230
+ */
231
+ static Try .CheckedRunnable decorateCheckedRunnable (CircuitBreaker circuitBreaker , Try .CheckedRunnable runnable ){
232
+ return () -> {
233
+ CircuitBreakerUtils .isCallPermitted (circuitBreaker );
234
+ try {
235
+ runnable .run ();
236
+ circuitBreaker .recordSuccess ();
237
+ } catch (Throwable throwable ){
238
+ circuitBreaker .recordFailure (throwable );
239
+ throw throwable ;
240
+ }
241
+ };
242
+ }
243
+
196
244
/**
197
245
* Creates a supplier which is secured by a CircuitBreaker.
198
246
*
199
247
* @param supplier the original supplier
200
248
* @param circuitBreaker the CircuitBreaker
249
+ *
201
250
* @return a supplier which is secured by a CircuitBreaker.
202
251
*/
252
+ @ Deprecated
203
253
static <T > Supplier <T > decorateSupplier (Supplier <T > supplier , CircuitBreaker circuitBreaker ){
204
254
return () -> {
205
255
CircuitBreakerUtils .isCallPermitted (circuitBreaker );
@@ -214,13 +264,37 @@ static <T> Supplier<T> decorateSupplier(Supplier<T> supplier, CircuitBreaker cir
214
264
};
215
265
}
216
266
267
+ /**
268
+ * Creates a supplier which is secured by a CircuitBreaker.
269
+ *
270
+ * @param circuitBreaker the CircuitBreaker
271
+ * @param supplier the original supplier
272
+ *
273
+ * @return a supplier which is secured by a CircuitBreaker.
274
+ */
275
+ static <T > Supplier <T > decorateSupplier (CircuitBreaker circuitBreaker , Supplier <T > supplier ){
276
+ return () -> {
277
+ CircuitBreakerUtils .isCallPermitted (circuitBreaker );
278
+ try {
279
+ T returnValue = supplier .get ();
280
+ circuitBreaker .recordSuccess ();
281
+ return returnValue ;
282
+ } catch (Throwable throwable ) {
283
+ circuitBreaker .recordFailure (throwable );
284
+ throw throwable ;
285
+ }
286
+ };
287
+ }
288
+
217
289
/**
218
290
* Creates a consumer which is secured by a CircuitBreaker.
219
291
*
220
292
* @param consumer the original consumer
221
293
* @param circuitBreaker the CircuitBreaker
294
+ *
222
295
* @return a consumer which is secured by a CircuitBreaker.
223
296
*/
297
+ @ Deprecated
224
298
static <T > Consumer <T > decorateConsumer (Consumer <T > consumer , CircuitBreaker circuitBreaker ){
225
299
return (t ) -> {
226
300
CircuitBreakerUtils .isCallPermitted (circuitBreaker );
@@ -234,13 +308,36 @@ static <T> Consumer<T> decorateConsumer(Consumer<T> consumer, CircuitBreaker cir
234
308
};
235
309
}
236
310
311
+ /**
312
+ * Creates a consumer which is secured by a CircuitBreaker.
313
+
314
+ * @param circuitBreaker the CircuitBreaker
315
+ * @param consumer the original consumer
316
+ *
317
+ * @return a consumer which is secured by a CircuitBreaker.
318
+ */
319
+ static <T > Consumer <T > decorateConsumer (CircuitBreaker circuitBreaker , Consumer <T > consumer ){
320
+ return (t ) -> {
321
+ CircuitBreakerUtils .isCallPermitted (circuitBreaker );
322
+ try {
323
+ consumer .accept (t );
324
+ circuitBreaker .recordSuccess ();
325
+ } catch (Throwable throwable ) {
326
+ circuitBreaker .recordFailure (throwable );
327
+ throw throwable ;
328
+ }
329
+ };
330
+ }
331
+
237
332
/**
238
333
* Creates a runnable which is secured by a CircuitBreaker.
239
334
*
240
335
* @param runnable the original runnable
241
336
* @param circuitBreaker the CircuitBreaker
337
+ *
242
338
* @return a runnable which is secured by a CircuitBreaker.
243
339
*/
340
+ @ Deprecated
244
341
static Runnable decorateRunnable (Runnable runnable , CircuitBreaker circuitBreaker ){
245
342
return () -> {
246
343
CircuitBreakerUtils .isCallPermitted (circuitBreaker );
@@ -254,13 +351,36 @@ static Runnable decorateRunnable(Runnable runnable, CircuitBreaker circuitBreake
254
351
};
255
352
}
256
353
354
+ /**
355
+ * Creates a runnable which is secured by a CircuitBreaker.
356
+ *
357
+ * @param circuitBreaker the CircuitBreaker
358
+ * @param runnable the original runnable
359
+ *
360
+ * @return a runnable which is secured by a CircuitBreaker.
361
+ */
362
+ static Runnable decorateRunnable (CircuitBreaker circuitBreaker , Runnable runnable ){
363
+ return () -> {
364
+ CircuitBreakerUtils .isCallPermitted (circuitBreaker );
365
+ try {
366
+ runnable .run ();
367
+ circuitBreaker .recordSuccess ();
368
+ } catch (Throwable throwable ){
369
+ circuitBreaker .recordFailure (throwable );
370
+ throw throwable ;
371
+ }
372
+ };
373
+ }
374
+
257
375
/**
258
376
* Creates a function which is secured by a CircuitBreaker.
259
377
*
260
378
* @param function the original function
261
379
* @param circuitBreaker the CircuitBreaker
380
+ *
262
381
* @return a function which is secured by a CircuitBreaker.
263
382
*/
383
+ @ Deprecated
264
384
static <T , R > Function <T , R > decorateFunction (Function <T , R > function , CircuitBreaker circuitBreaker ){
265
385
return (T t ) -> {
266
386
CircuitBreakerUtils .isCallPermitted (circuitBreaker );
@@ -275,13 +395,37 @@ static <T, R> Function<T, R> decorateFunction(Function<T, R> function, CircuitBr
275
395
};
276
396
}
277
397
398
+ /**
399
+ * Creates a function which is secured by a CircuitBreaker.
400
+
401
+ * @param circuitBreaker the CircuitBreaker
402
+ * @param function the original function
403
+ *
404
+ * @return a function which is secured by a CircuitBreaker.
405
+ */
406
+ static <T , R > Function <T , R > decorateFunction (CircuitBreaker circuitBreaker , Function <T , R > function ){
407
+ return (T t ) -> {
408
+ CircuitBreakerUtils .isCallPermitted (circuitBreaker );
409
+ try {
410
+ R returnValue = function .apply (t );
411
+ circuitBreaker .recordSuccess ();
412
+ return returnValue ;
413
+ } catch (Throwable throwable ){
414
+ circuitBreaker .recordFailure (throwable );
415
+ throw throwable ;
416
+ }
417
+ };
418
+ }
419
+
278
420
/**
279
421
* Creates a function which is secured by a CircuitBreaker.
280
422
*
281
423
* @param function the original function
282
424
* @param circuitBreaker the CircuitBreaker
425
+ *
283
426
* @return a function which is secured by a CircuitBreaker.
284
427
*/
428
+ @ Deprecated
285
429
static <T , R > Try .CheckedFunction <T , R > decorateCheckedFunction (Try .CheckedFunction <T , R > function , CircuitBreaker circuitBreaker ){
286
430
return (T t ) -> {
287
431
CircuitBreakerUtils .isCallPermitted (circuitBreaker );
@@ -295,4 +439,26 @@ static <T, R> Try.CheckedFunction<T, R> decorateCheckedFunction(Try.CheckedFunct
295
439
}
296
440
};
297
441
}
442
+
443
+ /**
444
+ * Creates a function which is secured by a CircuitBreaker.
445
+ *
446
+ * @param circuitBreaker the CircuitBreaker
447
+ * @param function the original function
448
+ *
449
+ * @return a function which is secured by a CircuitBreaker.
450
+ */
451
+ static <T , R > Try .CheckedFunction <T , R > decorateCheckedFunction (CircuitBreaker circuitBreaker , Try .CheckedFunction <T , R > function ){
452
+ return (T t ) -> {
453
+ CircuitBreakerUtils .isCallPermitted (circuitBreaker );
454
+ try {
455
+ R returnValue = function .apply (t );
456
+ circuitBreaker .recordSuccess ();
457
+ return returnValue ;
458
+ } catch (Throwable throwable ){
459
+ circuitBreaker .recordFailure (throwable );
460
+ throw throwable ;
461
+ }
462
+ };
463
+ }
298
464
}
0 commit comments