cffu
cffu copied to clipboard
v1.0 project management
📚 Documentation
🦮 CompletableFuture Guide
- 📌 design patterns of biz usage
- 📌 best practice and traps
- [ ] write English doc, and English first
see README.md
🎪 CompletableFuture Usage Showcase
- [x] timeout control showcase(6386d9b83828904ab988fd323164150852ab3e8c)
- [x] delay execution showcase(6386d9b83828904ab988fd323164150852ab3e8c)
see CompletableFutureUsageShowcaseTest.kt
🇨🇳 Translations
- translate javadoc of
📦 Library
see
✨ Support the missing convenient new methods
- [x] new methods
CffuFactory.cffuAllOf(...)(7acfa4d36b7b58805013e2fb35fb168b4b411dc5) with results version ofCompletableFuture.allof - [x] new methods
CffuFactory.cffuAnyOf(...)(d9df93fdcb354575dd844f2487e949bd139ed084) type safe version ofCompletableFuture.anyOfMethod - [x] new methods
Cffu.cffuCombine(...)same asCffuFactory.cffuAllOf(...), providing this method is convenient for method chaining. - [x] new method
Cffu.cffuJoinsupport timeoutjoin⏳ (323e14ad27e77f09b40ac7b9180aafe9250e15c8)
🚗 Customizable CF
- [x] sticky default executor for
*Asyncmethods
🔮 backport CF methods from high java versions to Java 8
Cffu.java- [x] timeout control methods
orTimeout(...)/completeOnTimeout(...) - [x]
exceptionallyAsync() - [x]
exceptionallyCompose(...)/exceptionallyComposeAsync(...) - [x]
resultNow()/exceptionNow() - [x] backport
Future#state()- [x] and add a new method
cffuState()to works onJava 8
- [x] and add a new method
- [x]
completeAsync(...) - [x]
minimalCompletionStage() - [x]
copy() - [x]
newIncompleteFuture()
- [x] timeout control methods
CffuFactory.java- [x] delay execution methods
defaultExecutor(...) - [x]
completedStage(...)/failedStage(...) - [x]
failedFuture(...)
- [x] delay execution methods
🍩 Kotlin support
- [x] extension methods of java implemented methods
🙌 Mics
- [x] make lib 0-dependence(optional
Kotlinruntime is ok) implementtupleinstead ofcommon-lang3dependency
☔️ Testing
- [x] API compatibility test with
CompletableFuture - 📌 benchmark building chain performance by
CffuvsCompletableFuture - 📌 benchmark execution chain performance by
CffuvsCompletableFuture
👷 Chore
- CI build/Github Action
- [x] support build by
Java 19and test by low version java(e.g.Java 8) (3a0c8e387ee78f24cc8b4e6f6c86a7b885d0e42b) because the implementation used high java version api ofCF - 📌 release maven SNAPSHOT to repo when main branch integration_test pass
- [x] support build by
cancelled/holden actions
- ✋ improve the Exception message, for example TimeoutException of
orTimeoutbecause only take effect forCffucompatibility logic but add complex codes, low ROI - ⏸️ excluding empty arguments overloaded methods(
allof/cffuAnyOf/...) from generated javadoc- it seems impossible for official javadoc!
- https://www.oracle.com/java/technologies/javase/javadoc-faq.html#exclude
- https://stackoverflow.com/questions/1120455/how-do-i-exclude-a-specific-method-constructor-from-the-results-of-the-javadoc-a
Image Gallery
(images are generated from docs file)

