Skip to content

Releases: foldright/cffu

v1.0.0-Alpha7 🦝 ✨

25 May 19:28
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 are marked with ⚠️.

Welcome to try out cffu. 💕

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

☘️ Features

  • implement new safe methods cffuOrTimeout/cffuCompleteOnTimeout ⏳ ✨
  • implement new mostTupleOfSuccess methods 🚀 ✨
  • implement new completeExceptionallyAsync methods 💣 ☘️
  • the mostOf* methods use the new safe orTimeout method with parameter executorWhenTimeout 🚀 ✨

🛠 Refactor/Improvements

  • ⚠️ change getSuccessNow method parameter type to CompletableFuture from CompletionStage
  • ⚠️ change resultNow/exceptionNow/state methods to more generic parameter type(Future) in CompletableFutureUtils 🧬
  • ⚠️ remove tuple* methods in Cffu/CompletableFutureExtensions.kt 🧹
  • fix UnsupportedOperationException for the single minimal stage input 💣
  • fix: add missing minimal stage check for Cffu#getSuccessNow() method 👀
  • the factory methods of CffuFactory use new0() instead of dummy(), less instance creation and delegation ⚡️
  • add internal helper method hopAsyncIf
  • add internal helper methods toNonMinCfCopy/isMinStageCf
  • rename internal factory method names of CffuFactory to create* from new* 🔠

🧪 Test

  • add minimal stage check test cases for allOf*/mostOf*/anyOf*/allTupleOf*/mostTupleOf* methods 👀

🔌 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-Alpha7</version>
</dependency>

cffu Kotlin support lib:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-kotlin</artifactId>
    <version>1.0.0-Alpha7</version>
</dependency>

cffu bom:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-bom</artifactId>
    <version>1.0.0-Alpha7</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-Alpha7</version>
  <scope>runtime</scope>
</dependency>

v1.0.0-Alpha6 🦝 🚀

18 May 19:05
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 are marked with ⚠️.

Welcome to try out cffu. 💕

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

☘️ Features

  • implement new mostResultsOfSuccess methods 🚀
  • implement new getSuccessNow methods ☘️

🛠 Refactor/Improvements

  • perf: add private helper method toCf, reuse CF instances as many as possible ⚡️

🚜 Build/Chore

  • move TypeParameterDeclarationTest to module cffu-kotlin, so can test the compilation under java 8 🧬
  • add junit-jupiter dependency in order to run JUnit 5 test cases in IntelliJ IDEA 🧪

🔌 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-Alpha6</version>
</dependency>

cffu Kotlin support lib:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-kotlin</artifactId>
    <version>1.0.0-Alpha6</version>
</dependency>

cffu bom:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-bom</artifactId>
    <version>1.0.0-Alpha6</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-Alpha6</version>
  <scope>runtime</scope>
</dependency>

v1.0.0-Alpha5 🦝 🧬

12 May 19:12
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 are marked with ⚠️.

Welcome to try out Cffu. 💕

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

🛠 Refactor/Improvements

  • ⚠️ change parameter type to more generic type(CompletionStage) of methods in CffuExtensions.kt 🧬 🍩
  • ⚠️ change exceptionallyAsync/exceptionallyCompose* methods with more generic parameter type(CompletionStage) in CompletableFutureUtils 🧬
  • move screenExecutor() check forward when user provides the executor 👀 🐞
  • use thenRunAsync instead of thenAcceptAsync if suitable, simplify codes
  • improve type parameter declare of CffuTupleExtensions.kt 🧬

📚 Documentation

  • improve wording and fix parameter type of api docs 📚

🚜 Build/Chore

  • add kotest.properties to disable Kotest autoscan 🍩
  • 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>1.0.0-Alpha5</version>
</dependency>

cffu Kotlin support lib:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-kotlin</artifactId>
    <version>1.0.0-Alpha5</version>
</dependency>

cffu bom:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-bom</artifactId>
    <version>1.0.0-Alpha5</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-Alpha5</version>
  <scope>runtime</scope>
</dependency>

v1.0.0-Alpha4 🦝 🎭

05 May 19:03
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 are marked with ⚠️.

Welcome to try out Cffu. 💕

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

🛠 Refactor/Improvements

  • ⚠️ move toCompletableFuture extension methods to CompletableFutureExtensions.kt from CffuExtensions.kt 🍩
  • add covariance/out modifier to allTupleOf* extension methods 🧬 🍩
  • extract private helper method allTupleOf0, reduce repeat codes 🔧 ✨
  • extract local var for f_cast invocation, explicit the force type cast 🎭
  • rename parameter names of extension methods in CompletableFutureExtensions.kt 🍩

🔌 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-Alpha4</version>
</dependency>

cffu Kotlin support lib:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-kotlin</artifactId>
    <version>1.0.0-Alpha4</version>
</dependency>

cffu bom:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-bom</artifactId>
    <version>1.0.0-Alpha4</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-Alpha4</version>
  <scope>runtime</scope>
</dependency>

v1.0.0-Alpha3 🦝 🏭

04 May 16:53
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 are marked with ⚠️.

Welcome to try out Cffu. 💕

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

🛠 Refactor/Improvements

  • ⚠️ move/rename CffuFactoryBuilder#newCffuFactoryBuilder(Executor) method to CffuFactory#builder(Executor) 🏭
  • improve generic type declaration 🧬

🚜 Build/Chore

  • 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>1.0.0-Alpha3</version>
</dependency>

cffu Kotlin support lib:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-kotlin</artifactId>
    <version>1.0.0-Alpha3</version>
</dependency>

cffu bom:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-bom</artifactId>
    <version>1.0.0-Alpha3</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-Alpha3</version>
  <scope>runtime</scope>
</dependency>

v1.0.0-Alpha2 🦝 🧬

28 Apr 19:09
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 are marked with ⚠️.

Welcome to try out Cffu. 💕

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

☘️ Features

  • add new CompletableFutureUtils.allOf() method ⛓
    • with more generic parameter type(CompletionStage) comparing to CompletableFuture.allOf() method 🧬

🛠 Refactor/Improvements

  • ⚠️ rename asCffu() methods to toCffu() 🦝
    • so the naming style is consistant with CompletionStage#toCompletableFuture()
  • ⚠️ move static util methods toCompletableFutureArray()/completableFutureListToArray() to class CompletableFutureUtils from CffuFactory
  • extract private method CompletableFutureUtils#createResultSetterCfs() 🔧 ✨
  • use private method CompletableFutureUtils#requireCfsAndEleNonNull() to capture varargs instead of hand rewriting the varargs 🔧 ✨
  • static import Function.identity function 💅

🔌 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-Alpha2</version>
</dependency>

cffu Kotlin support lib:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-kotlin</artifactId>
    <version>1.0.0-Alpha2</version>
</dependency>

cffu bom:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu-bom</artifactId>
    <version>1.0.0-Alpha2</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-Alpha2</version>
  <scope>runtime</scope>
</dependency>

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

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