Releases: foldright/cffu
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>
v1.0.0-Alpha1 🦝 🎉
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes will be marked with
⚠️ in subsequent alpha releases.
Welcome to try out Cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- implement
bothFastFail*
/eitherSuccess*
methods 👟 - implement
peek*
methods 🫣
🛠 Refactor/Improvements
- rename methods:
combine*
/cffuCombine*
->allTupleOf*
🚃 - change parameter type to
CompletionStage
for methodsallOf*/anyOf*/allTupleOf*
- and use covariance 🧬 to reduce the count of API methods 💕
- reorder methods 🚞
📚 Documentation
- improve wording of api docs 📚
🔌 API Doc
cffu Java API doc
: https://foldright.io/cffu/apidocs/v1.0.0-Alpha1/index.htmlcffu Kotlin API doc
: https://foldright.io/cffu/dokka/v1.0.0-Alpha1/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-Alpha1</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha1</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha1</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-Alpha1</version>
<scope>runtime</scope>
</dependency>
v0.9.9 🦝
Note
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- add
combineFastFail
extension methods forCompletableFuture
🍩 - add
covariance
to methods ofCffuFactory
/CompletableFutureUtils
/CompletableFutureExtensions
🧬 - rename methods of
CompletableFutureUtils
/CffuFactory
/Cffu
/CompletableFutureExtensions
🍬allOfWithResult*
methods ->allResultsOf*
methods- remove
anyOfWithType*
methods,covariant
anyof*
methods is enough 🎉 - remove prefix
cffu
CompletableFutureUtils#cffuState
->state
,cffuJoin
->join
Cffu#cffuState#cffuJoin
->join
CffuFactory#cffuAllOf*
->allResultsOf*
- ...
🛠 Refactor/Improvements
- use normal array list instead of immutable(
Collections#emptyList
) or fixed-size(Arrays#asList
) list ⛑️ - simplify the type parameter of
CffuFactory.dummy()
⌨️ - fix wrong element index in exception msg ℹ️
📚 Documentation
- improve user guide/javadoc 📚
- upgrade java link of javadoc to java 21
🚜 Build/Chore
- check
pom version
format ✅ - check bytecode version of dependencies ✅
- add bytecode version verification plugin
- update CI jdk: use java 21, add java 22 ☕️
- use jdk 21 as default build jdk ☕️
- upgrade
kotlin
support to1.6+
🍩 - update
.gitignore
🫷 - upgrade dependencies/plugins 🛠️
- upgrade maven wrapper to
3.9.6
🪶
🔌 API Doc
cffu Java API doc
: https://foldright.io/cffu/apidocs/0.9.9/index.htmlcffu Kotlin API doc
: https://foldright.io/cffu/dokka/0.9.9/index.html
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.9</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>0.9.9</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>0.9.9</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>0.9.9</version>
<scope>runtime</scope>
</dependency>