Releases: rhuffman/re-retrying
Release 4.0.0
Improvements to the API
Primary features
- Retryer and RetryerBuilder no longer require a class-level parameter. A given Retryer can now be used with Callables that return any type.
- Retryer can now be used to retry a Runnable
API changes
- Retryer no longer has public constructors: the RetryerBuilder must be used to create them
- Retryer.call no longer throws ExecutionException. If the Callable throws an exception that causes retrying to stop, it is always wrapped in a RetryException before throwing. This includes any unchecked exceptions.
- Retryer.call now propagates InterruptedException. Previously, if the thread was interrupted, it would throw an unchecked Exception and set the interrupted state on the thread.
- Retryer has a new method,
void run(Runnable)
. It works similarly to thecall
method. However, if a Retryer is built with RetryerBuilder.retryIfResult, then the Predicate will be invoked with a "null" when Retryer.run is used. It would probably be best not to Retryer.run with RetryerBuilder.retryIfResult, but you can also simply insure your Predicate handles a null value. - Predicates used by RetryerBuilder are now of type java.util.function.Predicate instead of com.google.common.base.Predicate.
Semantic changes
- Retry strategies that attempt to retry on an InterruptedException no longer work: any InterruptedException thrown by a Callable is immediately thrown by the retry method. This is because of the fix for #36.
Issues Resolved since Release 3.0.0
#13 Retryer should work for Runnables
#15 Clean up Intellij warnings
#17 Every call to AttemptTimeLimiter.fixedTimeLimit creates a new CachedThreadPool
#20 A given Retryer should be usable with Callable of any type
#22 Stop wrapping exceptions thrown by the retried Callables in ExecutionExceptions
#24 Better handling of InterruptedException in Retryer.call
#27 Attempt.getAttemptNumber can return int instead of long
#29 Clean up the build file
#30 Use Java Predicates
#36 InterruptedException thrown by a Callable is not handled correctly
Release 3.0.0
Initial stable release after forking from rholder/guava-retrying.
Primary Features
Updated to use Java 8 and Guava 23.0
Issues Resolved since Release 2.0.0
#1 Guava should be pinned to a specific version
#2 Building shows several Javadoc warnings
#3 Version of gradle is relatively old
#5 Project needs to be updated to reflect that it is a fork of guava-retrying
#8 Cannot be compiled with Guava 23
#12 The JSR dependency can be compileOnly
Release 3.0.0-rc.2
Fixed additional issue with the JSR dependency
Issues Resolved
#12 The JSR dependency can be compileOnly
Release 3.0.0-rc.1
Initial release after forking from rholder/guava-retrying.
Primary Features
Updated to use Java 8 and Guava 23.0
Issues Resolved
#1 Guava should be pinned to a specific version
#2 Building shows several Javadoc warnings
#3 Version of gradle is relatively old
#5 Project needs to be updated to reflect that it is a fork of guava-retrying
#8 Cannot be compiled with Guava 23