Releases: foldright/cffu
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
@Nullable
forBasCffu.getNow
📝 - rename file
DelayExecutionHelpers.java
->ExecutionHelpers.java
🔠
🧪 Tests
- test: move
ExceptionReportionSafetyTest.kt
toaspect
package
📚 Documentation
- docs: improve wording 📚
💅 Style
- style: merge one-line
@Nullable
before type declaration 💅
🚜 Build/Chore
- add "Can use bounded wildcard" inspection into qodana CI 👁️🗨️
- add
IntelliJ IDEA
project 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
@Nullable
forCffu.getNow
📝 - rename file
DelayExecutionHelpers.java
->ExecutionHelpers.java
🔠
🧪 Tests
- test: move
ExceptionReportionSafetyTest.kt
toaspect
package
📚 Documentation
- docs: improve wording 📚
💅 Style
- style: merge one-line
@Nullable
before type declaration 💅
🚜 Build/Chore
- add "Can use bounded wildcard" inspection into qodana CI 👁️🗨️
- add
IntelliJ IDEA
project 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 toCFU
fromLLCF
💣
🛠 Refactor/Improvements
- perf: improve method
LLCF.f_toCfCopy0
, save one unneededcopy
operation for min stage instance 🚀
🧪 Tests
- add test cases of
CheckExecutorOfCompletableFutureUtilsMethodsTests
/CheckExecutorOfCffuMethodsTests
🧵💗 - add test case to check that the result list of
allResultsOf
is normal modifiable list 🧪
📚 Documentation
- add study demo
InstanceCreationOfCompletableFutureConversationMethods
- improve wording 📚
🚜 Build/Chore
- upgrade dependencies/plugins 📦
- simplify CI/build since removed modules
cffu-kotlin
andcffu-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 unneededcopy
operation for min stage instance 🚀
🧪 Tests
- add test case to check that the result list of
allResultsOf
is 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
): addIterable
variant methods 🚿 - feat: add
CfParallelUtils
🎏 - feat(
MCffu
/CffuFactory
): addpar*
methods 🎏 - feat: move The tuple variant methods to
CfTupleUtils
fromCfUtils
🧤 - feat(
Cffu
/CffuFactory
): move The tuple variant methods toTupleOps
inner class 🧤 - feat(
Cffu
/MCffu
): add conversation methods betweenCffu
andMCffu
🔁 - feat(
CffuFactory
): add methods related withMCffu
related to cffu v1
:
⚠️ removeCFU#toCompletableFutureArray
/CffuFactory#toCffuArray
methods, simplify API 🌱🧹⚠️ removeCffuFactory#cffuListToArray
method because providedIterableOps
🚿🧹⚠️ remove methodCompletableFutureUtils#completableFutureListToArray
because providedCfIterableUtils
🧹
🛠 Refactor/Improvements
- move
toArray
util methods toCommonUtils
- refactor: move
executor
parameter to last, consistent withCompletableFuture
🪑 - refactor(
CfIterableUtils
): simplifytoArray
internal method
🧪 Tests
- test(
Cffu
/CffuFactory
): add test forIterable
variant 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
@CheckReturnValue
forfromSyncCall
methods 📩
🧪 Tests
- test(
LLCF
): add test cases forNonExSwallowed
methods 💣 - test(
CFU
): addtest_timeout_data_race
, coverFutureCanceller.accept
andCfTimeout.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#unwrapCfException
method 🏪 :- 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#isInstance
method 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>
v1.1.7
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🛠 Refactor/Improvements
- refactor(
CFU
): useClass#isInstance
method instead ofisAssignableFrom
, more straightforward codes 🔤 - refactor(
CFU
): reorder methodCFU#newIncompleteFuture
🚞
📚 Documentation
- improve javadoc
🔌 API Docs
cffu Java API doc
: https://foldright.io/api-docs/cffu/1.1.7/
🍪 Maven dependencies
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.1.7</version>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.1.7</version>
<scope>runtime</scope>
</dependency>