Releases: foldright/cffu
v1.1.14
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
- cleanup
@SuppressWarnings("unchecked")🧬✨
🚜 Build/Chore
- chore(CI): configure qodana GitHub Action to fail the build if any warnings are found 👁️🗨️
- update
maven_deploy.sh
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.14/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.1.14</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.1.14</version>
<scope>runtime</scope>
</dependency>v2.0.0-Alpha3
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
- add missing "bounded wildcard" of generic parameters 🧬✨
- fix wrong generic type declaration of
NonExSwallowed*methods 🧬🐞 - add missing
@Nullablefor methodBaseCffu.getNow📝 - rename file
DelayExecutionHelpers.java->ExecutionHelpers.java🔠
🧪 Tests
- test: move
ExceptionReportionSafetyTest.kttoaspectpackage
📚 Documentation
- docs: improve wording 📚
💅 Style
- style: move one-line
@Nullablebefore type declaration 💅
🚜 Build/Chore
- add "Can use bounded wildcard" inspection into qodana CI 👁️🗨️
- add
IntelliJ IDEAproject inspections profile 👁️🗨️
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu2/2.0.0-Alpha3/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu2</artifactId>
<version>2.0.0-Alpha3</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu2-ttl-executor-wrapper</artifactId>
<version>2.0.0-Alpha3</version>
<scope>runtime</scope>
</dependency>v1.1.13
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
- add missing "bounded wildcard" of generic parameters 🧬
- fix wrong generic type declaration of
NonExSwallowed*methods 🧬 - add missing
@NullableforCffu.getNow📝 - rename file
DelayExecutionHelpers.java->ExecutionHelpers.java🔠
🧪 Tests
- test: move
ExceptionReportionSafetyTest.kttoaspectpackage
📚 Documentation
- docs: improve wording 📚
💅 Style
- style: move one-line
@Nullablebefore type declaration 💅
🚜 Build/Chore
- add "Can use bounded wildcard" inspection into qodana CI 👁️🗨️
- add
IntelliJ IDEAproject inspections profile 👁️🗨️ - upgrade dependencies/plugins 📦
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.13/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.1.13</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.1.13</version>
<scope>runtime</scope>
</dependency>v2.0.0-Alpha2
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
☘️ Features
- feat: add method
CffuFactory.mCffuFromSyncCall📩 - feat: move
NonExSwallowed*methods toCFUfromLLCF💣
🛠 Refactor/Improvements
- perf: improve method
LLCF.f_toCfCopy0, save one unneededcopyoperation for min stage instance 🚀
🧪 Tests
- add test cases of
CheckExecutorOfCompletableFutureUtilsMethodsTests/CheckExecutorOfCffuMethodsTests🧵💗 - add test case to check that the result list of
allResultsOfis normal modifiable list 🧪
📚 Documentation
- add study demo
InstanceCreationOfCompletableFutureConversationMethods - improve wording 📚
🚜 Build/Chore
- upgrade dependencies/plugins 📦
- simplify CI/build since removed modules
cffu-kotlinandcffu-listenable-future🤖
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu2/2.0.0-Alpha2/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu2</artifactId>
<version>2.0.0-Alpha2</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu2-ttl-executor-wrapper</artifactId>
<version>2.0.0-Alpha2</version>
<scope>runtime</scope>
</dependency>
v1.1.12
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
- improve method
LLCF.f_toCfCopy0, save one unneededcopyoperation for min stage instance 🚀
🧪 Tests
- add test case to check that the result list of
allResultsOfis normal modifiable list 🧪
📚 Documentation
- add study demo
InstanceCreationOfCompletableFutureConversationMethods - update docs since released cffu2 version 📚
🚜 Build/Chore
- upgrade dependencies/plugins 📦
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.12/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.1.12</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.1.12</version>
<scope>runtime</scope>
</dependency>v2.0.0-Alpha1
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
☘️ Features
- feat: add
CfIterableUtils🚿 (#341) by @linzee1 - feat(
Cffu/CffuFactory): addIterablevariant methods 🚿 - feat: add
CfParallelUtils🎏 - feat(
MCffu/CffuFactory): addpar*methods 🎏 - feat: move The tuple variant methods to
CfTupleUtilsfromCfUtils🧤 - feat(
Cffu/CffuFactory): move The tuple variant methods toTupleOpsinner class 🧤 - feat(
Cffu/MCffu): add conversation methods betweenCffuandMCffu🔁 - feat(
CffuFactory): add methods related withMCffu
related to cffu v1:
⚠️ removeCffuFactory#cffuListToArraymethod because providedIterableOps🚿🧹⚠️ removeCFU#completableFutureListToArraymethod because providedCfIterableUtils🧹⚠️ removeCFU#toCompletableFutureArray/CffuFactory#toCffuArraymethods, simplify API 🌱🧹
🛠 Refactor/Improvements
- move
toArrayutil methods toCommonUtils - refactor: move
executorparameter to last, consistent withCompletableFuture🪑 - refactor(
CfIterableUtils): simplifytoArrayinternal method
🧪 Tests
- test(
Cffu/CffuFactory): add test forIterablevariant methods 🚿 - test: add test cases in
CfIterableUtilsTest🚿 - test: add
CfParallelUtilsTest🎏 - test(
MCffu/CffuFactory): add test cases forpar*methods 🎏
🚜 Build/Chore
- chore(deps): bump actions/checkout from 4 to 5 (#364)
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu2/2.0.0-Alpha1/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu2</artifactId>
<version>2.0.0-Alpha1</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu2-ttl-executor-wrapper</artifactId>
<version>2.0.0-Alpha1</version>
<scope>runtime</scope>
</dependency>v1.1.11
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
☘️ Features
- feat: add method
CffuFactory.fromSyncCall📩
🛠 Refactor/Improvements
- refactor(
LLCF#relayAsync0): improve type argument 🧬 - refactor: add
@CheckReturnValueforfromSyncCallmethods 📩
🧪 Tests
- test(
LLCF): add test cases forNonExSwallowedmethods 💣 - test(
CFU): addtest_timeout_data_race, coverFutureCanceller.acceptandCfTimeout.run
🚜 Build/Chore
- chore(deps): bump org.assertj:assertj-bom from 3.27.3 to 3.27.4 (#363)
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.11/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.1.11</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.1.11</version>
<scope>runtime</scope>
</dependency>v1.1.10
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
☘️ Features
- add method
CompletableFutureUtils.fromSyncCall: Returns a new CompletableFuture that encapsulates the execution of synchronous logic 📩- By wrapping synchronous code in a CompletableFuture, exceptions can be handled consistently within the CompletableFuture pipeline, eliminating the need to manage separate exceptional paths both inside and outside the flow.
🛠 Refactor/Improvements
- invert if condition and rename local var of method
LLCF.relayAsync0🔨
📚 Documentation
- improve javadoc of
LLCF.relayAsync0📚
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.10/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.1.10</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.1.10</version>
<scope>runtime</scope>
</dependency>v1.1.9
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
☘️ Features
add method LLCF.relayAsync0, support the fourth way "relay async" to arrange a new stage's computations 🏎️
In
CompletionStage/CompletableFuture, execution of a new stage's computations may be arranged in any of three ways:
- default execution,
- default asynchronous execution (using methods with suffix async that employ the stage's default asynchronous execution facility),
- or custom asynchronous execution (via a supplied Executor).
- reference from the javadoc of
CompletionStage
🧪 Tests
add demo of "Execution order of sync actions added to a future" 🧪
📚 Documentation
- improve javadoc of
peek*methods
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.9/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.1.9</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.1.9</version>
<scope>runtime</scope>
</dependency>v1.1.8
💗 Happy with
cffu! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
- improve user experience of
CFU#unwrapCfExceptionmethod 🏪 :- if a loop is detected in the causal chain, returns the input exception as the best option instead of throwing
IllegalArgumentException- More info see Chapter 10 "Define Errors Out of Existence" of "A Philosophy of Software Design" by John Ousterhout 🚀
- if there is no cause exceptions except for CF exceptions, returns the input exception as the best option instead of inner exception
- if a loop is detected in the causal chain, returns the input exception as the best option instead of throwing
- refactor(
CFU): useClass#isInstancemethod instead ofisAssignableFrom, more straightforward codes 🔤
🔌 API Docs
cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.8/
🍪 Maven dependencies
cffu core lib, including cffu enhancement for Java CompletableFuture:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.1.8</version>
</dependency>cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.1.8</version>
<scope>runtime</scope>
</dependency>