Skip to content

Commit 800984e

Browse files
committed
Update changelog for 2.5.0
1 parent e0b76b0 commit 800984e

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,41 @@
1+
# 2.5.0
2+
3+
4+
### Bug Fixes
5+
6+
- Improved the reliability of async executions, cancellations, and Timeouts.
7+
8+
### Improvements
9+
10+
- Issue #292 - Created an extensible Policy SPI (API changes described below).
11+
- Issue #254 - Added an explicit `compose` method to `FailsafeExecutor`.
12+
- Issue #293 - Added `RetryPolicy.withBackoff(Duration, Duration)` and `.withDelay(Duration, Duration)`.
13+
- Issue #221 - `Executor` instances configured via `FailsafeExecutor.with(Executor)` are now used on all executions, including sync executions, and can be used in conjunction with a separately configured `ExecutorService` or `Scheduler` for async executions.
14+
15+
### API Changes
16+
17+
This release contains some breaking API changes for users of the standalone `Execution` class and also async executions created via `FailsafeExecutor.runAsyncExecution`, `getAsyncExecution`, or `getStageAsyncExecution`.
18+
19+
- The `Execution` and `AsyncExecution` methods for recording a result or completing an execution have changed to:
20+
- `record(R, Throwable)`
21+
- `recordResult(R)`
22+
- `recordFailure(Throwable)`
23+
- `complete()`
24+
- The previously supported `Execution` and `AsyncExecution` methods for recording a result have been removed. The methods for performing a retry have also been removed. For `Execution`, `isComplete` will indicate whether the execution is complete else is retries can be performed. For `AsyncExecution` retries will automatically be performed, if possible, immediately after a result or failure is recorded.
25+
- The `Execution` constructor is no longer visible. `Execution` instances must now be constructed via `Execution.of(policies)`.
26+
- `Execution.getWaitTime()` was renamed to `getDelay()`.
27+
- Added a type parameter to `ExecutionContext`.
28+
29+
### SPI Changes
30+
31+
The following changes effect the SPI classes, for users who are extending Failsafe with custom schedulers or policies:
32+
33+
- `Scheduler` and `DefauledScheduledFuture` were moved to the `spi` package.
34+
- `Policy` and `PolicyExecutor` were moved to the `spi` package and some method signatures changed.
35+
- `ExecutionResult` was moved to the `spi` package and made generic.
36+
- Several new classes were added to the `spi` package to contain internal execution APIs including `ExecutionInternal`, `SyncExecutionInternal`, and `AsyncExecutionInternal`.
37+
- `FailsafeFuture` was moved to the SPI package and some method signatures changed.
38+
139
# 2.4.4
240

341
### Bug Fixes

0 commit comments

Comments
 (0)