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 useunwrapin favor ofraw. - Adding new operators to
Promise-thenFilterandthenFilterAsync - Adding missing
Thread/Executor-related stuff:TaskCompletionService,TreadFactoryBuilder,ThreadGroupBuilderand alike. - Revisiting
ContextVarand 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-resourcefunctionality toPromisesthat supports both synchronously closeable resources (std.AutoClosable) and asynchronously closeable resources (implementing library-specificAsyncCloseable). - Adding
AsyncCompletionsclass 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
PromiseOperationsclass that exposes utility methods for convenient decoration ofPromise-s viaPromise.as(decorator)operation. - Adding
Promises.loopto 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.