Releases: foldright/cffu
v1.0.0-Alpha1 🦝 🎉
Note
🦝 Cffu
has arrived at v1.0 Alpha
series~ 🎉
- Development will try to keep the compatibility for main API. 🐾
- The incompatible changes will be marked with
⚠️ in subsequent alpha releases.
Welcome to try out Cffu
. 💕
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- implement
bothFastFail*
/eitherSuccess*
methods 👟 - implement
peek*
methods 🫣
🛠 Refactor/Improvements
- rename methods:
combine*
/cffuCombine*
->allTupleOf*
🚃 - change parameter type to
CompletionStage
for methodsallOf*/anyOf*/allTupleOf*
- and use covariance 🧬 to reduce the count of API methods 💕
- reorder methods 🚞
📚 Documentation
- improve wording of api docs 📚
🔌 API Doc
cffu Java API doc
: https://foldright.io/cffu/apidocs/v1.0.0-Alpha1/index.htmlcffu Kotlin API doc
: https://foldright.io/cffu/dokka/v1.0.0-Alpha1/index.html
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>1.0.0-Alpha1</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>1.0.0-Alpha1</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>1.0.0-Alpha1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>1.0.0-Alpha1</version>
<scope>runtime</scope>
</dependency>
v0.9.9 🦝
Note
💗 Happy with cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- add
combineFastFail
extension methods forCompletableFuture
🍩 - add
covariance
to methods ofCffuFactory
/CompletableFutureUtils
/CompletableFutureExtensions
🧬 - rename methods of
CompletableFutureUtils
/CffuFactory
/Cffu
/CompletableFutureExtensions
🍬allOfWithResult*
methods ->allResultsOf*
methods- remove
anyOfWithType*
methods,covariant
anyof*
methods is enough 🎉 - remove prefix
cffu
CompletableFutureUtils#cffuState
->state
,cffuJoin
->join
Cffu#cffuState#cffuJoin
->join
CffuFactory#cffuAllOf*
->allResultsOf*
- ...
🛠 Refactor/Improvements
- use normal array list instead of immutable(
Collections#emptyList
) or fixed-size(Arrays#asList
) list ⛑️ - simplify the type parameter of
CffuFactory.dummy()
⌨️ - fix wrong element index in exception msg ℹ️
📚 Documentation
- improve user guide/javadoc 📚
- upgrade java link of javadoc to java 21
🚜 Build/Chore
- check
pom version
format ✅ - check bytecode version of dependencies ✅
- add bytecode version verification plugin
- update CI jdk: use java 21, add java 22 ☕️
- use jdk 21 as default build jdk ☕️
- upgrade
kotlin
support to1.6+
🍩 - update
.gitignore
🫷 - upgrade dependencies/plugins 🛠️
- upgrade maven wrapper to
3.9.6
🪶
🔌 API Doc
cffu Java API doc
: https://foldright.io/cffu/apidocs/0.9.9/index.htmlcffu Kotlin API doc
: https://foldright.io/cffu/dokka/0.9.9/index.html
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.9</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>0.9.9</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>0.9.9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>0.9.9</version>
<scope>runtime</scope>
</dependency>
v0.9.8 🦝 : add user guide and demos 📚✨ implement combineFastFail ☘️
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
☘️ Features
- implement
combineFastFail
forCompletableFutureUtils
☘️ - implement
cffuCombineFastFail
methods for classCffu
andCffuFactory
☘️
🛠 Refactor
- remove incorrect
@Immutable
annotation for classCffuFactory
🤥 - rename test package of
cffu-kotlin
to test usage effectively - test/refactor: import static methods, more clear codes
📚 Documentation
- add user guide and demos 📚 ✨
- update cffu logo 💅
🚜 Build/Chore
- add
JDK 20
into demos CI - improve build scripts, and upgrade
bash-buddy
tov0.3.3
🚼 - update
.gitignore
🫷 - upgrade maven wrapper to
3.9.3
🪶 - simplify
moditect-maven-plugin
configuration - upgrade
Kotlin
to1.9.0
, and checkKotlin
compiler api version1.5
withKotlin 1.8
- upgrade dependencies/plugins 🛠️
- fix
bump_cffu_version.sh
🔌 API Doc
cffu Java API doc
: https://foldright.io/cffu/apidocs/0.9.8/index.htmlcffu Kotlin API doc
: https://foldright.io/cffu/dokka/0.9.8/index.html
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.8</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>0.9.8</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>0.9.8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>0.9.8</version>
<scope>runtime</scope>
</dependency>
v0.9.7 🦝 : support `java9 jigsaw` 📦💗
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🍀 Features
- support
java9 jigsaw
📦
addmodule-info.java
files - [
cffu-kotlin
] support optionalcffuFactory
argument forCffu Array/Collection
extension methods 🍩 - [
cffu-kotlin
] adduse-site covariant
forArray receiver argument
🧬
simplify covariantCompletionStage
type parameter - add
cffu-demo
module 📦
🛠 Refactor
- merge module
cffu-utils
📦 intocffu-core
avoidjava9 jigsaw
error(duplicate package of twojigsaw module
)
📚 Documentation
- improve
dokka
📚
🚜 Build/Chore
- [
cffu-kotlin
] changeKotlin
stdlib toprovided
scope - improve api doc generation configurations
- add
demos
directory intodependabot.yml
🤖 - upgrade dependencies/plugins 🛠️
🔌 API Doc
cffu Java API doc
: https://foldright.io/cffu/apidocs/0.9.7/index.htmlcffu Kotlin API doc
: https://foldright.io/cffu/dokka/0.9.7/index.html
🍪 Maven dependency
cffu
core lib, including cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.7</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>0.9.7</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>0.9.7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation
for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>0.9.7</version>
<scope>runtime</scope>
</dependency>
v0.9.6 🦝 : add `cffu-bom` module 📦💗
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🍀 Features
- add
cffu-bom
module 📦
🐞 Bug Fix
- [
cffu-ttl-executor-wrapper
]ExecutorWrapperProvider spi file
should be inmain source set
directory
📚 Documentation
- improve javadoc of module
cffu-ttl-executor-wrapper
- create aggregating javadocs
🚜 Build/Chore
- bump git-commit-id-maven-plugin from 5.0.0 to 6.0.0 (#31)
🔌 Java API Doc
https://foldright.io/cffu/apidocs/0.9.6/index.html
🍪 Maven dependency
cffu
core lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.6</version>
</dependency>
cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-utils</artifactId>
<version>0.9.6</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>0.9.6</version>
</dependency>
cffu bom
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-bom</artifactId>
<version>0.9.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<version>0.9.6</version>
<scope>runtime</scope>
</dependency>
v0.9.5 🦝 : new `cffu-utils` and `cffu-kotlin` modules 🍀📦💗
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🍀 Features
- split new
cffu-utils
andcffu-kotlin
modules fromcffu-core
🍀📦
🛠️ Refactor
- rename interface
ExecutorWrapper
->ExecutorWrapperProvider
🔠 - advance
wrapExecutor
logic tonewCffuFactoryBuilder()
frombuild()
⏪ - improve null point check in
CffuFactoryBuilder.wrapExecutor()
📚 Documentation
- add
package-info.java
for packagecffu.spi
- improve wording
- fix broken links
🚜 Build/Chore
- add
dokka-maven-plugin
forcffu-kotlin
module - enable test jar if not maven skip test
- add
deploy.sh
🔌 Java API Doc
https://foldright.io/cffu/apidocs/0.9.5/index.html
🍪 Maven dependency
cffu
core lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.5</version>
</dependency>
cffu
enhancement for Java CompletableFuture
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-utils</artifactId>
<version>0.9.5</version>
</dependency>
cffu
Kotlin
support lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-kotlin</artifactId>
<version>0.9.5</version>
</dependency>
cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<scope>runtime</scope>
<version>0.9.5</version>
</dependency>
v0.9.4 🦝 : implement `cffu-ttl-executor-wrapper` 🪐💗
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🍀 Features
- implement
cffu executor wrapper
SPI forTTL
🪐 cffu
supportExecutorWrapper SPI
🔌
🛠️ Refactor
- extract private check helper methods of
Cffu
📚 Documentation
- add missing
minimal stage
caution - improve wording, underneath -> underlying
🚜 Build/Chore
- change to multiple module maven project 🌈
- bump junit-bom from 5.9.2 to 5.9.3 (#25)
- bump kotlin.version from 1.8.20 to 1.8.21 (#26)
- bump jacoco-maven-plugin from 0.8.9 to 0.8.10 (#27)
🔌 Java API Doc
https://foldright.io/cffu/apidocs/0.9.4/index.html
🍪 Maven dependency
cffu
core lib:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.4</version>
</dependency>
cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL)
:
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu-ttl-executor-wrapper</artifactId>
<scope>runtime</scope>
<version>0.9.4</version>
</dependency>
v0.9.3 🦝 : add backport CF methods to CompletableFutureUtils and Kotlin extension methods 🍀🍩
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🍀 Features
- add backport
CompletableFuture
methods 🍀 toCompletableFutureUtils
- add
kotlin
extension methods toCompletableFuture
🍩 for backportCompletableFuture
methods
⚒️ Refactor
- improve
enum switch
inCffuState.toCffuState
🎛️ - add private
Delayer
constructor 🕵️
☔️ Test
- add exceptionally
completeAsync
test case forCfCompleterBySupplier
📚 Documentation
- update demo in
README
🎪 - improve api doc wording
🔌 Java API Doc
https://foldright.io/cffu/apidocs/0.9.3/index.html
🍪 Maven dependency
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.3</version>
</dependency>
v0.9.2 🦝 : feature `allOfFastFail` 🚅 🍀
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🍀 Features
- implement
allOfFastFail
🚅 🍀
The intelligent solution of this COOL feature is proposed by @zavakid 🙏 💖
and the implementation is also heavily discussed and polished by @zavakid @driventokill 🫡 💕
⚒️ Refactor
- simplify
anyOfSuccess
implementation 🙅 NO insurance the latest exception - use
NoCfsProvidedException
class instead of the singleton exception instanceNO_CF_PROVIDED_EXCEPTION
🧨 null
check inputcfs
👻- add
@Contract(pure = true)
foranyOfSuccess*
methods - replace
null
check logic byrequireCfsAndEleNonNull
incombine
methods - rename local vars
🐞 Bug Fix
- fix:
cffuAnyOfSuccess
wrong return when no given cfs 🐞
🔌 Java API Doc
https://foldright.io/cffu/apidocs/0.9.2/index.html
🍪 Maven dependency
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.2</version>
</dependency>
v0.9.1 🦝 : feature `anyOfSuccess` 🚅 🍀
💗 Happy with
cffu
! 🦝 and be a "shifu"~ 😆
🍀 Features
- implement
anyOfSuccess
🍀
The intelligent solution of this COOL feature is proposed by @zavakid 🙏 💖
and the implementation is also heavily discussed and polished by @zavakid 🫡 💕
☔️ Test
- add test cases 🐒 : task execution in
ThreadPerTaskExecutor
- add test cases 🐒 :
CfCompleterBySupplier
(cf.completeAsync()
) run inForkJoinPool
⚒️ Refactor
- add sweat
@CheckReturnValue
annotation 😋 - add missing
@Contract(pure = true)
💕 - improve exception message ℹ️
more consistent with other cases
🔌 Java API Doc
https://foldright.io/cffu/apidocs/0.9.1/index.html
🍪 Maven dependency
<dependency>
<groupId>io.foldright</groupId>
<artifactId>cffu</artifactId>
<version>0.9.1</version>
</dependency>