Skip to content

Releases: vsilaev/tascalate-concurrent

Tascalate Concurrent 0.8.4

14 Jan 11:37
Compare
Choose a tag to compare

Minor release with the following changes:

  1. Fix bug in default DelayPolicy.withMinDelay(...) metod -- erroneously delegates to withMaxDelay.
  2. Remove rarely used internal helper classes to minimize library size.

Tascalate Concurrent 0.8.3

09 Dec 11:09
Compare
Choose a tag to compare

The following changes are done:

  1. Fixed error with unimplemented methods for children of AbstractPromiseDecorator (sic!)
  2. Avoid async operations with exceptionallyAsync / exceptionallyComposeAsync when no exception produced.
  3. Simplify Promise default methods logic via delegation to DependentPromise (it's used anyway) -- reduces code duplication.
  4. Remove non-api methods from Promises class.
  5. Introducing Promise.onCancel operator -- execute custom code block when promise is cancelled (directly, or as dependent promise or via timeout)

Tascalate Concurrent 0.8.2

04 Dec 11:42
e440726
Compare
Choose a tag to compare

The following changes is done:

  1. Adding new Java 12 CompletionStage API methods: exceptionallyAsync, composeExceptionally, composeExceptionallyAsync.
  2. Adding meaningful stack trace to MultitargetException (includes stack traces of child exceptions).

Tascalate Concurrent 0.8.1

10 Sep 08:37
44dbf34
Compare
Choose a tag to compare

The following changes are made since 0.8.0

  1. Fixed timeout handling in Promises.retry* - previously only timeout set was cancellable, not the original promise.
  2. Fixed error in RetryPolicy that prevents creating infinite retry operations.
  3. Revisited decorators hierarchy
  4. Fix numerous bugs in decorators (enlistOptions are not passed for dependent promise decorator; wrong behavior for defaultAsyncOn / dependent decorators)
  5. Introduced ContextVar -- now it's possible to relay contextual variables (ThreadLocal-s) to composition operations on Promise-s

Tascalate Concurrent 0.8.0

19 Apr 11:55
Compare
Choose a tag to compare

The following changes are made since 0.7.1

  1. Fixed exceptional completion handling in Promise.orTimeout and Promise.onTimeout operations
  2. The artifact was renamed to align naming across other Tascalate projects

IMPORTANT!
From version 0.8.0 please use the following artifact name:

<dependency>
    <groupId>net.tascalate</groupId>
    <artifactId>net.tascalate.concurrent</artifactId>
    <version>0.8.0</version>
</dependency>

The old naming was:

<dependency>
    <groupId>net.tascalate.concurrent</groupId>
    <artifactId>net.tascalate.concurrent.lib</artifactId>
    <version>0.7.1</version>
</dependency>

Tascalate Concurrent 0.7.1

14 Jan 12:31
2fcabf3
Compare
Choose a tag to compare

Minor enhancements:

  1. Decorators returned from Promise.defaultAsyncOn(executor) now avoids nesting decoration on defaultAsyncOn
  2. The result of Promises.retry with Executor argument (i.e. all methods except Promises.retryFuture) now has a default asynchronous Executor set to the parameter.

Tascalate Concurrent 0.7.0 (Java 9+ support / Promises.retry refactoring)

11 Jan 12:40
05c4880
Compare
Choose a tag to compare

The release contains both important bug fixing and important refactorings:

  1. Promise.orTimeout was fixed (previously no cancellation on timeout)
  2. Promise.delay was fixed (previously no delay on error)
  3. The Executor used after timeout methods now is always the default asynchronous executor of the original Promise (previously this requirement was not hold in some cases).
  4. Promises.retry* and Promises.poll* functionality has been fully revisited -- now only retry is left and it's a responsibility of RetryPolicy to define what result is valid (hence more flexible options besides just non-null are possible); RetryPolicy / DelayPolicy / RetryContext was intensively revisited and are not compatible with previous version.
  5. CompletableTask.submit method is added to allow submitting a Callable -- i.e. a lambda that throws any exception.
  6. Now library is created as a multi-release JAR and may be used with Java 8 as regular classpath library or with Java 9+ as a module

Bug fixing release

22 Aug 09:37
Compare
Choose a tag to compare
  • Fixes "hanged" promises when Executor.execute throws RejectedExecutionException.
  • Internal code refactorings and simplifications (within AbstractCompletableTask hierarchy)

Bug fixing release

03 Aug 13:14
Compare
Choose a tag to compare

Fix exception handling in AbstractCompletableTask.whenCompleteAsync

Extending Promises.all/any/atLeast - widening arguments

30 Jun 07:32
Compare
Choose a tag to compare

Widening generic arguments list type of Promises.all / any / atLeast (both regular and strict variants) to allow passing different implementations of CompletionStage