Releases: foldright/cffu
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
LLCFmethods 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 packageehexports 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 inehpackage 🦢- 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(
ehpackage): rename and refactor internal methodunreferenced🦢 - use
Arrays.setAllof 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 Docs
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
resetDefaultExecutormethod to achieve
- remove
- improve log message of swallowed exceptions 🦢
- move class
CommonUtils/ExceptionLoggerclass to packageinternal🔧 ⚠️ change cffu logging system property name tocffu.exception.log.formatfromcffu.uncaught.exception.log.format
📚 Documentation
- improve wording of doc and javadoc 📚💕
🚜 Build/Chore
- add
check_api_docs.shto CI 📚 - improve
bump_cffu_version.sh🧹
🔌 API Docs
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 loggingsystem property name tocffu.uncaught.exception.log.formatfromcffu.uncaught.exception.report- and rename
ExceptionReportertoExceptionLogger
- and rename
- do NOT reuse incomplete CF instance in methods
bothFailFast0/eitherSuccess0likefill0🤖 - add
addSuppressedforreportUncaughtException💣 - extract
peek0methods toLLCFfromCFU🔧 - move
completeCf0method toLLCFclass 🔧
📚 Documentation
- improve javadoc of
catching*methods
🧪 Tests
- improve test stability
🚜 Build/Chore
- upgrade dependencies/plugins 📦
- move
macOSjob to fast CI
🔌 API Docs
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
⚠️ adjustexecutorparameter position, follow the consistent rules: 🪑- as first parameter(except
cfThisparameter) for varargs methodsmSupplyAllSuccessAsyncmSupplyMostSuccessAsyncmostSuccessResultsOfthenMApplyAllSuccessAsyncthenMApplyMostSuccessAsync
- as last parameter for non-varargs methods
cffuOrTimeoutcffuCompleteOnTimeout
- as first parameter(except
- change default value of
cffu.uncaught.exception.reporttofull; 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 Docs
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-futuremodule fromcffu-core📦 - add
@ApiStatus.OverrideOnlyfor SPIExecutorWrapperProvider
🚜 Build/Chore
- upgrade dependencies/plugins 🛠️
🔌 API Docs
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
requiresdirectives tomodule-info.java📦
🛠 Refactor/Improvements
- refactor(
DelayExecutionHelpers.java): review the codes by reference toCompletableFuture, and cleanup 🧹
🧪 Tests
- test(
Cffu): addCheckMinStageRuntimeTypeTestsforCffuFactory/Cffu👁️🗨️ - test(CI): test usage
ThreadPerTaskExecutoras 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 thescreenExecutortranslation logic, and add Implementation Note 🧵
📚 Documentation
- add
LambdaCompilationErrorSolutionOfMultipleActionsMethodsDemo👨🏫 - revise api docs 📚 💕
- reword and simplify the api docs of
M*/thenM*methods, link to their*Ofmethods - 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#whenAllSucceedallOf->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 forasyncoperations byscreenExecutorfortimeout*methods, consistent withCF🧵
🧪 Tests
- add
ListenableFutureUsageStudyCaseTest👨🏫
📚 Documentation
revise api docs:
- reword api docs of methods 💕
all*Ofmethodsany*Ofmethodstimeout*methods
- fix wrong exception description of
AnySuccessmethods - unify term usage
- use
complete normallyinstead ofcomplete successfully/is successful/do not success, etc.
- use
- remove uninformative/duplicate words
- duplicate
@returnto 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.ktM*extension methodsallSuccess*extension methodsdefaultExecutorextension method
CffuExtensions.ktM*extension methodsallSuccess*extension methods
🛠 Refactor/Improvements
⚠️ rename methods: use termfail fastinstead offast fail⚛️ (by @linzee1)⚠️ renameTuple-Multi-Actions(tupleM*)methods 🌟- make their naming more consistant with
all*Ofmethods
- make their naming more consistant with
- fix(
CFU): convert executor forasyncoperations byscreenExecutor(), consistent withCF🧵 - refactor(
CFU):allResultsFastFailOf/allResultsOfboth call internal methodallResultsOf0, simpler and more consistent 🌟 - refactor: update generic parameters of methods 🧬
join/resultNowmethods 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.ktfromTestUtils.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.shtoCI - 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 expressioninstead ofif statementwhen more readable and concise 👓 - improve instance method
defaultExecutor- rename argument to
cfThis ⚠️ change exception toUnsupportedOperationExceptionfromIllegalArgumentException- add null check for argument
- revise its javadoc
- rename argument to
🧪 Tests
apply*methods should useFunctionargument- 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>