Releases: foldright/cffu
v1.0.0-Alpha11 🦝 👯
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
Welcome new cffu
team member @huhaosumail 👏 💕
Thanks for your excellent works! 🚀
☘️ Features
- implement the
tuple-multi-actions
methods(by newcffu
team member @huhaosumail) ✨ 👯tupleMSupplyFastFailAsync
/tupleMSupplyAsync
inCompletableFutureUtils
thenTupleMApplyFastFailAsync
/thenTupleMApplyAsync
inCompletableFutureUtils
tupleMSupplyFastFailAsync
/tupleMSupplyAsync
inCffuFactory
thenTupleMApplyFastFailAsync
/thenTupleMApplyAsync
inCffu
🛠 Refactor/Improvements
⚠️ move default value parameter(valueIfNotSuccess
) forward- reorder methods 🚞 and add sections in files by
region comment
💅
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha11/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha11/
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha11</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha11</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha11</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha11</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha10 🦝 🚀
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- implement the
multi-actions
methods inCompletableFutureUtils
✨ 🚀mSupplyAsync
/mSupplyFastFailAsync
/mSupplyMostSuccessAsync
mRunAsync
/mRunFastFailAsync
thenMApplyAsync
/thenMApplyFastFailAsync
/thenMApplyMostSuccessAsync
thenMAcceptAsync
/thenMAcceptFastFailAsync
thenMRunAsync
/thenMRunFastFailAsync
- use
cf.handle
method(instead ofwhenComplete
) and return null, in order to prevent reporting the handled argument exception 💥
and improve test cases of safetimeout*
methods
🛠 Refactor/Improvements
- use
cffuCompleteOnTimeout
instead ofcffuOrTimeout
inmostOf*
methods for single input cf ⚡️
cffuCompleteOnTimeout
won't createTimeoutException
- declare QA annotations on package instead of classes 📝
- complement QA annotations in
DelayExecutionHelpers.java
🦺
📚 Documentation
- improve javadoc of
allOf*
/mostOf*
methods 📚
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha10/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha10/
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha10</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha10</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha10</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha10</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha9 🦝 🦺
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- safe
timeout*
methods keep the directTimeoutException
instead ofCompletionException
wrapper 🦺 ✨ - report exception info of hop handle, errors should never pass silently 💣 👀
🐞 Bug Fixes
- ensure type safety of
Cffu
; if return type ofAPI
isCffu
, the result MUST not be a minimal stage 🦺 🧬 - methods
unsafeOrTimeout
/unsafeCompleteOnTimeout
ofCffu
should returnthis
🐞
🛠 Refactor/Improvements
- fix/simplify internal help method
hopExecutorIfAtCfDelayerThread
👁️ 🧬⚠️ fix wrong visibility modifier,public
->private
- simplify generic type declare,
CompletionStage
->CompletableFuture
- perf: use
cffuCompleteOnTimeout
instead ofcffuOrTimeout
inmostOf*
methods for multiply input cfs ⚡️ - delegate
Cffu.peek()
methods toCompletableFutureUtils.peek()
which has report function 🫣- and improve related
@CheckReturnValue
📝
- and improve related
📚 Documentation
- improve docs in README and javadoc 📚
mostOf*
method,default executor
🧪 Tests
- test/refactor: use
JUnit assertThrows
method instead oftry-fail-catch
old test pattern 🧪
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha9/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha9/
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha9</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha9</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha9</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha8 🦝 ⏳
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- report exception info of peek action, errors should never pass silently 💣 👀
🐞 Bug Fixes
- fix the safe behavior of
timeout*
methods ⏳ ✨
🛠 Refactor/Improvements
⚠️ change the type declaration inCompletableFutureExtensions.kt
to be consistent withCompletableFutureUtils
🧬- add missing the
minimal stage
check 👀 - complement the
null check
logic 👻 - change parameter type to
CompletableFuture
of internal helper methodisMinStageCf
🧬
🧪 Test
- add test cases for the safe behavior of new safe
timeout*
methods ⏳ 💥 - add
CancellationException
throw test case forCompletableFutureUtils.join()
method - enable
Kotest
project level config with project listener
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
- upgrade maven wrapper to
3.9.7
🪶
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha8/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha8/
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha8</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha8</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha8</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha7 🦝 ✨
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- implement new safe methods
cffuOrTimeout
/cffuCompleteOnTimeout
⏳ ✨ - implement new
mostTupleOfSuccess
methods 🚀 ✨ - implement new
completeExceptionallyAsync
methods 💣 ☘️ - the
mostOf*
methods use the new safeorTimeout
method with parameterexecutorWhenTimeout
🚀 ✨
🐞 Bug Fixes
- fix
UnsupportedOperationException
for the singleminimal stage
input 💣
🛠 Refactor/Improvements
⚠️ changegetSuccessNow
method parameter type toCompletableFuture
fromCompletionStage
⚠️ changeresultNow/exceptionNow/state
methods to more generic parameter type(Future
) inCompletableFutureUtils
🧬⚠️ removetuple*
methods inCffu
/CompletableFutureExtensions.kt
🧹- fix: add missing
minimal stage
check forCffu#getSuccessNow()
method 👀 - the factory methods of
CffuFactory
usenew0()
instead ofdummy()
, less instance creation and delegation ⚡️ - add internal helper method
hopAsyncIf
✨ - add internal helper methods
toNonMinCfCopy
/isMinStageCf
✨ - rename internal factory method names of
CffuFactory
tocreate*
fromnew*
🔠
🧪 Test
- add
minimal stage
check test cases forallOf*
/mostOf*
/anyOf*
/allTupleOf*
/mostTupleOf*
methods 👀
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha7/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha7/
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha7</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha7</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha7</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha6 🦝 🚀
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- implement new
mostResultsOfSuccess
methods 🚀 - implement new
getSuccessNow
methods ☘️
🛠 Refactor/Improvements
- perf: add private helper method
toCf
, reuse CF instances as many as possible ⚡️
🚜 Build/Chore
- move
TypeParameterDeclarationTest
to modulecffu-kotlin
, so can test the compilation underjava 8
🧬 - add
junit-jupiter
dependency in order to runJUnit 5
test cases inIntelliJ IDEA
🧪
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha6/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha6/
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha6</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha6</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha6</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha5 🦝 🧬
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out Cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
⚠️ change parameter type to more generic type(CompletionStage
) of methods inCffuExtensions.kt
🧬 🍩⚠️ changeexceptionallyAsync
/exceptionallyCompose*
methods with more generic parameter type(CompletionStage
) inCompletableFutureUtils
🧬- move
screenExecutor()
check forward when user provides theexecutor
👀 🐞 - use
thenRunAsync
instead ofthenAcceptAsync
if suitable, simplify codes - improve type parameter declare of
CffuTupleExtensions.kt
🧬
📚 Documentation
- improve wording and fix parameter type of api docs 📚
🚜 Build/Chore
- add
kotest.properties
to disableKotest autoscan
🍩 - upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha5/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha5/
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha5</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha5</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha5</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha4 🦝 🎭
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out Cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
⚠️ movetoCompletableFuture
extension methods toCompletableFutureExtensions.kt
fromCffuExtensions.kt
🍩- add covariance/
out
modifier toallTupleOf*
extension methods 🧬 🍩 - extract private helper method
allTupleOf0
, reducerepeat codes
🔧 ✨ - extract local var for
f_cast
invocation, explicit the force type cast 🎭 - rename parameter names of extension methods in
CompletableFutureExtensions.kt
🍩
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha4/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha4/
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha4</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha4</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha4</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha3 🦝 🏭
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out Cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
⚠️ move/renameCffuFactoryBuilder#newCffuFactoryBuilder(Executor)
method toCffuFactory#builder(Executor)
🏭- improve generic type declaration 🧬
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/cffu/apidocs/1.0.0-Alpha3/index.htmlcffu Kotlin API doc
: https://foldright.io/cffu/dokka/1.0.0-Alpha3/index.html
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha3</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha3</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha3</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha2 🦝 🧬
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes are marked with
⚠️ .
Welcome to try out Cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- add new
CompletableFutureUtils.allOf()
method ⛓- with more generic parameter type(
CompletionStage
) comparing toCompletableFuture.allOf()
method 🧬
- with more generic parameter type(
🛠 Refactor/Improvements
⚠️ renameasCffu()
methods totoCffu()
🦝- so the naming style is consistant with
CompletionStage#toCompletableFuture()
- so the naming style is consistant with
⚠️ move static util methodstoCompletableFutureArray()
/completableFutureListToArray()
to classCompletableFutureUtils
fromCffuFactory
- extract private method
CompletableFutureUtils#createResultSetterCfs()
🔧 ✨ - use private method
CompletableFutureUtils#requireCfsAndEleNonNull()
to capture varargs instead of hand rewriting the varargs 🔧 ✨ - static import
Function.identity
function 💅
🔌 API Doc
cffu Java API doc
: https://foldright.io/cffu/apidocs/v1.0.0-Alpha2/index.htmlcffu Kotlin API doc
: https://foldright.io/cffu/dokka/v1.0.0-Alpha2/index.html
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha2</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha2</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha2</version>
<scope>runtime</scope>
</dependency>