Skip to content

Tascalate Concurrent 0.9.0

Compare
Choose a tag to compare
@vsilaev vsilaev released this 05 Aug 20:14
· 86 commits to master since this release

This release adds several major features as long as refactorings of the existing API (so it has some breaking changes):

  1. Revisit and refactor Promise.raw() functionality and introducing Promise.unwrap() (single-level undecoration) in addition to Promise.raw() (full undecoration); fixing all related code to use unwrap in favor of raw.
  2. Adding new operators to Promise - thenFilter and thenFilterAsync
  3. Adding missing Thread / Executor -related stuff: TaskCompletionService, TreadFactoryBuilder, ThreadGroupBuilder and alike.
  4. Revisiting ContextVar and related context-aware functionality: shifting responsibilities, introducing ContextTrampoline, provide an option to create contex-aware Executor-s in addition to context-aware Promise-s.
  5. Adding asynchronous version of try-with-resource functionality to Promises that supports both synchronously closeable resources (std. AutoClosable) and asynchronously closeable resources (implementing library-specific AsyncCloseable).
  6. Adding AsyncCompletions class that provides an option to iterate / stream over completed Promise-s results (loaded by batches).
  7. Providing an option to partitioned collections processing with Promises.partitioned.
  8. Introduce PromiseOperations class that exposes utility methods for convenient decoration of Promise-s via Promise.as(decorator) operation.
  9. Adding Promises.loop to provide asynchronous function-style equivalent of Java loops (like for / while / do-while).
  10. Refactor retry functionality (fix corner cases, simplifying code using asynchronous loop).
  11. Complement all / any[Strict] / atLeast[Strict] / with overloaded methods that accepts and returns keyed collections (java.util.Map) in addition to indexed collections.