Releases: foldright/cffu
v1.0.3 🦝 ⛓️
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
CFU#unwrapCfException
method supports recursively unwrapping nestedCompletionException
/ExecutionException
💣- checks exception causal chain loop ⛓️ (by @linzee1)
🛠 Refactor/Improvements
- refactor(
LFU
): useLLCF#peek0
method instead ofCFU#peek
📚 Documentation
- small improve
README
wording
🚜 Build/Chore
- improve
bump_cffu_version.sh
🧹 - bump
com.tngtech.archunit:archunit-junit5
(#296)
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.3/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.3</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.3</version>
<scope>runtime</scope>
</dependency>
v1.0.2 🦝 🦺
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
- optimize memory usage in
mostSuccessOf*
methods 📝- does not retain input cfs
- does not retain unneeded exception instances
- improve
CFU#getSuccessNow
to guarantee noCancellationException/CompletionException
are thrown 🦺 - use
LLCF#peek*
method instead ofwhenComplete/exceptionally
, more reliable codes 🦺 - add missing check(
ex != e
) foraddSuppressed
invocation inLLCF#peek*
methods, avoidIllegalArgumentException(SELF_SUPPRESSION_MESSAGE)
💣 - rename parameter names 🔠
🚜 Build/Chore
- add
check-forbidden-classes.sh
🧹
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.2/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.2</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.2</version>
<scope>runtime</scope>
</dependency>
v1.0.1 🦝 📝
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
- add more
@Contract
QA annotations forLLCF
methods 📝 - use final local var instead of reassigning var in
CffuFactoryBuilder#makeExecutor
method 🥧
📚 Documentation
- update
README
📚- add doc for
catching*
methods - improve immigration guide
- add doc for
🧪 Tests
- update test case for failure
mSupply
- add more test cases for
timeout*
operation ⏰
🚜 Build/Chore
- automate the version update when release 🤖
- update pom configurations for
project.version
validation - update
bump_cffu_version.sh
- update pom configurations for
- upgrade dependencies/plugins 📦
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.1/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.1</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.1</version>
<scope>runtime</scope>
</dependency>
v1.0.0 🦝 🚀✨
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
First GA Release v1.0.0
🚀✨🎉
Same as v1.0.0-Alpha33
but bump version.
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0</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</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha33 🦝 🏗️
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
- make more
LLCF
methods public 🏗️- add new method
toNonMinCfCopyArray0
- add new method
- support attachments parameter for handle methods in
SwallowedExceptionHandleUtils
🦢 - change swallowed exception logging level to
WARN
🦢
🐞 Bug Fixes
- fix(
cffu-core
): add missing packageeh
exports directives tomodule-info.java
📦
🛠 Refactor/Improvements
⚠️ renamereset*
API methods towith*
🔠 ✨ (suggestion by @linzee1)- more conventional method names for unmodifiable/immutable objects, e.g.
LocalDate#withDayOfMonth
- more conventional method names for unmodifiable/immutable objects, e.g.
⚠️ rename class, methods and fields ineh
package 🦢- optimize memory usage in
allResultsOf*
methods 📝- does not retain cf results that will never be used
- reduce redundant writes to results array 🚅 (by @linzee1)
- refactor(
eh
package): rename and refactor internal methodunreferenced
🦢 - use
Arrays.setAll
of stdlib instead offor loop
📚 Documentation
- improve wording of doc and javadoc 📚💕
🚜 Build/Chore
- chore: fix duplicate dependency warning of maven pom 🤖
- bump org.jetbrains:annotations from 26.0.1 to 26.0.2 (#293)
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha33/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha33</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-Alpha33</version>
<scope>runtime</scope>
</dependency>
v1.0.0-Alpha32 🦝 🦢
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
- report the swallowed exceptions by
M*
methods #263 🦢
🛠 Refactor/Improvements
⚠️ remove rarely used API ofCffu
, simplify API ⏰- remove
Cffu#timeout*
overloaded methods with parameterexecutorWhenTimeout
- if needed, use
resetDefaultExecutor
method to achieve
- remove
- improve log message of swallowed exceptions 🦢
- move class
CommonUtils
/ExceptionLogger
class to packageinternal
🔧 ⚠️ change cffu logging system property name tocffu.exception.log.format
fromcffu.uncaught.exception.log.format
📚 Documentation
- improve wording of doc and javadoc 📚💕
🚜 Build/Chore
- add
check_api_docs.sh
to CI 📚 - improve
bump_cffu_version.sh
🧹
🔌 API Doc
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.0.0-Alpha32/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha32</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-Alpha32</version>
<scope>runtime</scope>
</dependency>
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"~ 😆
🐞 Bug Fixes
- fix the wrong exception type check logic of
catching*
methods 🫴 #291 (by @huhaosumail)
🛠 Refactor/Improvements
- 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>