Skip to content

Releases: foldright/cffu

v1.0.0-Alpha1 🦝 🎉

27 Apr 17:44
Compare
Choose a tag to compare

shifu

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 methods allOf*/anyOf*/allTupleOf*
    • and use covariance 🧬 to reduce the count of API methods 💕
  • reorder methods 🚞

📚 Documentation

  • improve wording of api docs 📚

🔌 API Doc

🍪 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 🦝

25 Apr 05:45
Compare
Choose a tag to compare

shifu

Note

💗 Happy with cffu! 🦝 and be a "shifu"~ 😆

☘️ Features

  • add combineFastFail extension methods for CompletableFuture 🍩
  • add covariance to methods of CffuFactory/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 to 1.6+ 🍩
  • update .gitignore 🫷
  • upgrade dependencies/plugins 🛠️
  • upgrade maven wrapper to 3.9.6 🪶

🔌 API Doc

🍪 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 ☘️

09 Aug 16:54
Compare
Choose a tag to compare

shifu

💗 Happy with cffu! 🦝 and be a "shifu"~ 😆

☘️ Features

  • implement combineFastFail for CompletableFutureUtils ☘️
  • implement cffuCombineFastFail methods for class Cffu and CffuFactory ☘️

🛠 Refactor

  • remove incorrect @Immutable annotation for class CffuFactory 🤥
  • 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 to v0.3.3 🚼
  • update .gitignore 🫷
  • upgrade maven wrapper to 3.9.3 🪶
  • simplify moditect-maven-plugin configuration
  • upgrade Kotlin to 1.9.0, and check Kotlin compiler api version 1.5 with Kotlin 1.8
  • upgrade dependencies/plugins 🛠️
  • fix bump_cffu_version.sh

🔌 API Doc

🍪 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` 📦💗

23 May 17:02
Compare
Choose a tag to compare

shifu

💗 Happy with cffu! 🦝 and be a "shifu"~ 😆

🍀 Features

  • support java9 jigsaw 📦
    add module-info.java files
  • [cffu-kotlin] support optional cffuFactory argument for Cffu Array/Collection extension methods 🍩
  • [cffu-kotlin] add use-site covariant for Array receiver argument 🧬
    simplify covariant CompletionStage type parameter
  • add cffu-demo module 📦

🛠 Refactor

  • merge module cffu-utils 📦 into cffu-core
    avoid java9 jigsaw error(duplicate package of two jigsaw module)

📚 Documentation

  • improve dokka 📚

🚜 Build/Chore

  • [cffu-kotlin] change Kotlin stdlib to provided scope
  • improve api doc generation configurations
  • add demos directory into dependabot.yml 🤖
  • upgrade dependencies/plugins 🛠️

🔌 API Doc

🍪 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 📦💗

18 May 05:09
Compare
Choose a tag to compare

shifu

💗 Happy with cffu! 🦝 and be a "shifu"~ 😆

🍀 Features

  • add cffu-bom module 📦

🐞 Bug Fix

  • [cffu-ttl-executor-wrapper] ExecutorWrapperProvider spi file should be in main 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 🍀📦💗

16 May 09:24
Compare
Choose a tag to compare

shifu

💗 Happy with cffu! 🦝 and be a "shifu"~ 😆

🍀 Features

  • split new cffu-utils and cffu-kotlin modules from cffu-core 🍀📦

🛠️ Refactor

  • rename interface ExecutorWrapper -> ExecutorWrapperProvider 🔠
  • advance wrapExecutor logic to newCffuFactoryBuilder() from build()
  • improve null point check in CffuFactoryBuilder.wrapExecutor()

📚 Documentation

  • add package-info.java for package cffu.spi
  • improve wording
  • fix broken links

🚜 Build/Chore

  • add dokka-maven-plugin for cffu-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` 🪐💗

03 May 06:39
Compare
Choose a tag to compare

shifu

💗 Happy with cffu! 🦝 and be a "shifu"~ 😆

🍀 Features

  • implement cffu executor wrapper SPI for TTL 🪐
  • cffu support ExecutorWrapper 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 🍀🍩

18 Apr 18:19
Compare
Choose a tag to compare

shifu

💗 Happy with cffu! 🦝 and be a "shifu"~ 😆

🍀 Features

  • add backport CompletableFuture methods 🍀 to CompletableFutureUtils
  • add kotlin extension methods to CompletableFuture 🍩 for backport CompletableFuture methods

⚒️ Refactor

  • improve enum switch in CffuState.toCffuState 🎛️
  • add private Delayer constructor 🕵️

☔️ Test

  • add exceptionally completeAsync test case for CfCompleterBySupplier

📚 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` 🚅 🍀

16 Apr 19:29
Compare
Choose a tag to compare

shifu

💗 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 instance NO_CF_PROVIDED_EXCEPTION 🧨
  • null check input cfs 👻
  • add @Contract(pure = true) for anyOfSuccess* methods
  • replace null check logic by requireCfsAndEleNonNull in combine 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` 🚅 🍀

11 Apr 18:24
Compare
Choose a tag to compare

shifu

💗 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 in ForkJoinPool

⚒️ 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>