Releases: foldright/cffu
v1.0.0-Alpha31 🦝 🫴
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development tries 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
⚠️ fix the wrong exception type check logic ofcatching*
methods 🫴 #291 (by @huhaosumail)- defensive copy input array arguments of
thenM*
methods 🧵- they are used asynchronously NOT thread-safe, and could be mutated by caller
⚠️ changecffu logging
system property name tocffu.uncaught.exception.log.format
fromcffu.uncaught.exception.report
- and rename
ExceptionReporter
toExceptionLogger
- and rename
- do NOT reuse incomplete CF instance in methods
bothFailFast0/eitherSuccess0
likefill0
🤖 - add
addSuppressed
forreportUncaughtException
💣 - extract
peek0
methods toLLCF
fromCFU
🔧 - move
completeCf0
method toLLCF
class 🔧
📚 Documentation
- improve javadoc of
catching*
methods
🧪 Tests
- improve test stability
🚜 Build/Chore
- upgrade dependencies/plugins 📦
- move
macOS
job to fast CI
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha31/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha31</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha31</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha30 🦝 🪑
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development tries 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
⚠️ adjustexecutor
parameter position, follow the consistent rules: 🪑- as first parameter(except
cfThis
parameter) for varargs methodsmSupplyAllSuccessAsync
mSupplyMostSuccessAsync
mostSuccessResultsOf
thenMApplyAllSuccessAsync
thenMApplyMostSuccessAsync
- as last parameter for non-varargs methods
cffuOrTimeout
cffuCompleteOnTimeout
- as first parameter(except
- change default value of
cffu.uncaught.exception.report
tofull
; fail LOUDLY 📢 - refactor(
CffuTtlExecutorWrapperProvider
): skip wrapping executor if it is marked withTtlEnhanced
📚 Documentation
- add
cffuTimeout*
guide inREADME
🧪 Tests
- add
CheckExecutorTests
🧵 - move the aspect test to individual package 📦
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha30/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha30</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha30</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha29 🦝 🏗️
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development tries 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
- extract
LLCF
(Low Level CompletableFuture Utils) fromCFU
🏗️ - split
cffu-listenable-future
module fromcffu-core
📦 - add
@ApiStatus.OverrideOnly
for SPIExecutorWrapperProvider
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha29/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha29</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha29</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha28 🦝 👁️🗨️
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development tries 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"~ 😆
🐞 Bug Fixes
- add missing
requires
directives tomodule-info.java
📦
🛠 Refactor/Improvements
- refactor(
DelayExecutionHelpers.java
): review the codes by reference toCompletableFuture
, and cleanup 🧹
🧪 Tests
- test(
Cffu
): addCheckMinStageRuntimeTypeTests
forCffuFactory
/Cffu
👁️🗨️ - test(CI): test usage
ThreadPerTaskExecutor
as screen executor ofCompletableFuture
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha28/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha28</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha28</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha27 🦝 📚
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development tries 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
- refactor(
CFU
): simplify thescreenExecutor
translation logic, and add Implementation Note 🧵
📚 Documentation
- add
LambdaCompilationErrorSolutionOfMultipleActionsMethodsDemo
👨🏫 - revise api docs 📚 💕
- reword and simplify the api docs of
M*
/thenM*
methods, link to their*Of
methods - add the solution to compilation error caused by lambda arguments 🚨
- reword the api doc of methods
mostSuccessResultsOf
- add the equivalent Guava method links 💕
allFailFastOf
->Futures#whenAllSucceed
allOf
->Futures#whenAllComplete
- reword and simplify the api docs of
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha27/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha27</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha27</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha26 🦝 💕
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development tries 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
- fix(
CFU
): convert executor forasync
operations byscreenExecutor
fortimeout*
methods, consistent withCF
🧵
🧪 Tests
- add
ListenableFutureUsageStudyCaseTest
👨🏫
📚 Documentation
revise api docs:
- reword api docs of methods 💕
all*Of
methodsany*Of
methodstimeout*
methods
- fix wrong exception description of
AnySuccess
methods - unify term usage
- use
complete normally
instead ofcomplete successfully
/is successful
/do not success
, etc.
- use
- remove uninformative/duplicate words
- duplicate
@return
to javadoc body, etc
- duplicate
- fix wording,
multiply
->multiple
🔠
🚜 Build/Chore
- chore(deps): bump org.jetbrains:annotations from 26.0.0 to 26.0.1 (#262)
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha26/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha26</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha26</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha25 🦝 ⚛️
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development tries 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
- [
cffu-kotlin
] add new kotlin extension methods 🍩CompletableFutureExtensions.kt
M*
extension methodsallSuccess*
extension methodsdefaultExecutor
extension method
CffuExtensions.kt
M*
extension methodsallSuccess*
extension methods
🛠 Refactor/Improvements
⚠️ rename methods: use termfail fast
instead offast fail
⚛️ (by @linzee1)⚠️ renameTuple-Multi-Actions(tupleM*)
methods 🌟- make their naming more consistant with
all*Of
methods
- make their naming more consistant with
- fix(
CFU
): convert executor forasync
operations byscreenExecutor()
, consistent withCF
🧵 - refactor(
CFU
):allResultsFastFailOf
/allResultsOf
both call internal methodallResultsOf0
, simpler and more consistent 🌟 - refactor: update generic parameters of methods 🧬
join/resultNow
methods ofCFU
- add covariance to express the only use as input
join/resultNow/orTimeout*
methods ofCompletableFutureExtensions.kt
- make
orTimeout*
generic parameters consistent withCFU
- make
- refactor(
CFU
): extract internal array util methods into fileInternalCommonUtils
🔧 - refactor(
CFU
): use static initializer instead of one-shot internal method - refactor(
CffuExtensionsTest.kt
): extract internal helper methodsresolveFac
, and add test cases 🔧
🧪 Tests
- test(
CFU
): improve test cases for write methods ofCFU
🧪 - test(
CFU
): addCheckMinStageRuntimeTypeTests
🧪- split
MinStageTestUtils.kt
fromTestUtils.kt
- split
📚 Documentation
- add
MultiplyActionsDemo
👨🏫 - revise/improve javadoc of
peek*
methods 📚 - keep api docs of
timeout*
kotlin extension methods consistent withCFU
📚 - revise README 📚
🚜 Build/Chore
- add
update_md_toc.sh
toCI
- upgraded non-LTS CI JDK to 23 from 22 🤖
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha25/cffu Kotlin API doc
: https://foldright.io/api-docs/cffu-kotlin/1.0.0-Alpha25/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha25</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha25</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha24 🦝 👓
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development tries 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
- use
conditional expression
instead ofif statement
when more readable and concise 👓 - improve instance method
defaultExecutor
- rename argument to
cfThis
⚠️ change exception toUnsupportedOperationException
fromIllegalArgumentException
- add null check for argument
- revise its javadoc
- rename argument to
🧪 Tests
apply*
methods should useFunction
argument- simplify test codes by
kotlin delegation
📚 Documentation
- revise javadoc of
tuple*
/allSuccess*
/mostSuccess*
methods: 📚- simplify
tuple*
methods, just refer to their non-tuple methods - add "indistinguishable" note for
allSuccess*
/mostSuccess*
methods
- simplify
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha24/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha24</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha24</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha23 🦝 🧵
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 missing instance method
CFU#defaultExecutor
🧵 (by @linzee1)⚠️ and remove the wrong non-instance methodCFU#defaultExecutor
- improve instance method
CFU#defaultExecutor
, support runtime typeCffu
🐞 Bug Fixes
CFU
instance methods of typeCompletableFuture
/CompletionStage
usesdefaultExecutor
instance method instead of wrong non-instance method🧵 (by @linzee1)
🛠 Refactor/Improvements
- perf: check min stage by class instead of class name, more efficient 🚀
📚 Documentation
- improve javadoc of methods
orTimeout
andcompleteOnTimeout
⏰📚 (by @linzee1) - add
IncompleteCfMemoryLeakDemo
👨🏫 - improve
CfDelayDysfunctionDemo
, warmup pools 👨🏫
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha23/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha23</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha23</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha22 🦝 🤖
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
- perf: do NOT reuse
incomplete
CF instance in methodCompletableFutureUtils#fill0
, less instance dependencies more GC friendly 🤖 (by @linzee1) - improve QA annotations for methods
allOf
🍬 - rename internal methods to conform to conventions:
allSuccessTupleOf0
->f_allSuccessTupleOf0
mostSuccessTupleOf0
->f_mostSuccessTupleOf0
f_toNonMinCf0
->toNonMinCf0
f_toNonMinCfArray0
->toNonMinCfArray0
- add poison object of type
CffuFactory
, and use it inCffuExtensions.kt
☠️
📚 Documentation
- add
CfDelayDysfunctionDemo.java
👨🏫
🧪 Tests
- adjust wait time for more stable testing 🐘
- update thread count/pool size, more stable
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
- use
overview
property ofmaven javadoc plugin
instead of configuration
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha22/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha22</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha22</version>
<scope>runtime</scope>
</dependency>