Tascalate Concurrent 0.9.0
This release adds several major features as long as refactorings of the existing API (so it has some breaking changes):
- Revisit and refactor
Promise.raw()
functionality and introducingPromise.unwrap()
(single-level undecoration) in addition toPromise.raw()
(full undecoration); fixing all related code to useunwrap
in favor ofraw
. - Adding new operators to
Promise
-thenFilter
andthenFilterAsync
- Adding missing
Thread
/Executor
-related stuff:TaskCompletionService
,TreadFactoryBuilder
,ThreadGroupBuilder
and alike. - Revisiting
ContextVar
and related context-aware functionality: shifting responsibilities, introducingContextTrampoline
, provide an option to create contex-awareExecutor
-s in addition to context-awarePromise
-s. - Adding asynchronous version of
try-with-resource
functionality toPromises
that supports both synchronously closeable resources (std.AutoClosable
) and asynchronously closeable resources (implementing library-specificAsyncCloseable
). - Adding
AsyncCompletions
class that provides an option to iterate / stream over completedPromise
-s results (loaded by batches). - Providing an option to partitioned collections processing with
Promises.partitioned
. - Introduce
PromiseOperations
class that exposes utility methods for convenient decoration ofPromise
-s viaPromise.as(decorator)
operation. - Adding
Promises.loop
to provide asynchronous function-style equivalent of Java loops (likefor
/while
/do-while
). - Refactor retry functionality (fix corner cases, simplifying code using asynchronous loop).
- Complement
all
/any[Strict]
/atLeast[Strict]
/ with overloaded methods that accepts and returns keyed collections (java.util.Map
) in addition to indexed collections.