foldright/cffu

v1.0 project management

oldratlee opened this issue ยท 2 comments

๐Ÿ“š Documentation

๐Ÿฆฎ CompletableFuture Guide

  • design patterns of biz usage
  • best practice and traps
  • write English doc, and English first

see README.md

๐ŸŽช CompletableFuture Usage Showcase

see CompletableFutureUsageShowcaseTest.kt

๐Ÿ‡จ๐Ÿ‡ณ Translations

๐Ÿ“ฆ Library

see

โœจ Support the missing convenient new methods

  • new methods CffuFactory.cffuAllOf(...)(7acfa4d)
    with results version of CompletableFuture.allof
  • new methods CffuFactory.cffuAnyOf(...)(d9df93f)
    type safe version of CompletableFuture.anyOf Method
  • new methods Cffu.cffuCombine(...)
    same as CffuFactory.cffuAllOf(...), providing this method is convenient for method chaining.
  • new method Cffu.cffuJoin support timeout join โณ (323e14a)

๐Ÿš— Customizable CF

  • sticky default executor for *Async methods

๐Ÿ”ฎ backport CF methods from high java versions to Java 8

  • Cffu.java
    • timeout control methods orTimeout(...)/completeOnTimeout(...)
    • exceptionallyAsync()
    • exceptionallyCompose(...)/exceptionallyComposeAsync(...)
    • resultNow()/exceptionNow()
    • backport Future#state()
      • and add a new method cffuState() to works on Java 8
    • completeAsync(...)
    • minimalCompletionStage()
    • copy()
    • newIncompleteFuture()
  • CffuFactory.java
    • delay execution methods defaultExecutor(...)
    • completedStage(...)/failedStage(...)
    • failedFuture(...)

๐Ÿฉ Kotlin support

  • extension methods of java implemented methods

๐Ÿ™Œ Mics

  • make lib 0-dependence(optional Kotlin runtime is ok)
    implement tuple instead of common-lang3 dependency

โ˜”๏ธ Testing

๐Ÿ‘ท Chore

  • CI build/Github Action
    • support build by Java 19 and test by low version java(e.g. Java 8) (3a0c8e3)
      because the implementation used high java version api of CF
    • release maven SNAPSHOT to repo when main branch integration_test pass

cancelled/holden actions

Image Gallery

(images are generated from docs file)

task stauts transition

task flow