๐ฆ Java CompletableFuture Fu(CF-Fu, pronounced "Shifu"), a tiny sidekick library to make CompletableFuture usage more convenient, more efficient and safer in your application. ๐๐๐ฆบ
[ ] benchmark building chain performance by Cffu vs CompletableFuture
[ ] benchmark execution chain performance by Cffu vs CompletableFuture
๐ท Chore
CI build/Github Action
[x] support build by Java 19 and test by low version java(e.g. Java 8) (3a0c8e387ee78f24cc8b4e6f6c86a7b885d0e42b)
because the implementation used high java version api of CF
[ ] release maven SNAPSHOT to repo when main branch integration_test pass
โ improve the Exception message, for example TimeoutException of orTimeout
because only take effect for Cffu compatibility logic but add complex codes, low ROI
โธ๏ธ excluding empty arguments overloaded methods(allof/cffuAnyOf/...) from generated javadoc
๐ Documentation
๐ฆฎ
CompletableFuture
Guidesee
README.md
๐ช
CompletableFuture
Usage Showcasesee
CompletableFutureUsageShowcaseTest.kt
๐จ๐ณ Translations
CompletableFuture
CompletionStage
๐ฆ Library
โจ Support the missing convenient new methods
CffuFactory.cffuAllOf(...)
(7acfa4d36b7b58805013e2fb35fb168b4b411dc5) with results version ofCompletableFuture.allof
CffuFactory.cffuAnyOf(...)
(d9df93fdcb354575dd844f2487e949bd139ed084) type safe version ofCompletableFuture.anyOf
MethodCffu.cffuCombine(...)
same asCffuFactory.cffuAllOf(...)
, providing this method is convenient for method chaining.Cffu.cffuJoin
support timeoutjoin
โณ (323e14ad27e77f09b40ac7b9180aafe9250e15c8)๐ Customizable CF
*Async
methods๐ฎ backport
CF
methods from high java versions toJava 8
Cffu.java
orTimeout(...)
/completeOnTimeout(...)
exceptionallyAsync()
exceptionallyCompose(...)
/exceptionallyComposeAsync(...)
resultNow()
/exceptionNow()
Future#state()
cffuState()
to works onJava 8
completeAsync(...)
minimalCompletionStage()
copy()
newIncompleteFuture()
CffuFactory.java
defaultExecutor(...)
completedStage(...)
/failedStage(...)
failedFuture(...)
๐ฉ
Kotlin
support๐ Mics
Kotlin
runtime is ok) implementtuple
instead ofcommon-lang3
dependencyโ๏ธ Testing
CompletableFuture
CompletableFutureApiCompatibilityTest.java
andCffuApiCompatibilityTest.java
Cffu
vsCompletableFuture
Cffu
vsCompletableFuture
๐ท Chore
Java 19
and test by low version java(e.g.Java 8
) (3a0c8e387ee78f24cc8b4e6f6c86a7b885d0e42b) because the implementation used high java version api ofCF