Skip to content

Releases: foldright/cffu

v1.0.0-Alpha13 🦝 🎁

06 Jul 17:01
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"~ 😆


Welcome new cffu team member @huhaosumail 👏 💕

Thanks for your excellent works! 🚀

☘️ Features

  • provide the logging config to report uncaught exception, delegate logging to SLF4J 🌳 (#188 by new cffu team member @huhaosumail)
  • implement unwrapCfException method 🎁 (#187 by new cffu team member @huhaosumail)

🛠 Refactor/Improvements

  • ⚠️ rename *OfFastFail methods to *FastFailOf, consistent with other methods 🌟
  • rename first parameter to cfThis from cf for the instance methods in CompletableFutureUtils
  • improve NPE message for methods with this/other parameters
  • keep the runtime type(including minimal-stage) of cfThis for instance methods(thenBoth*/thenEither*) in CompletableFutureUtils 🧬
  • Cffu.newIncompleteFuture() should return non-minimal-stage, ensure type safety of Cffu 🦺 🧬

📚 Documentation

  • improve README, add more introduction of cffu 📚

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️
  • upgrade maven wrapper to 3.9.8 🪶

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

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha12 🦝 🌟

29 Jun 17:33
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"~ 😆


Welcome new cffu team member @huhaosumail 👏 💕

Thanks for your excellent works! 🚀

☘️ Features

  • implement the M* methods(by new cffu team member @huhaosumail) ✨ 👯
    • tupleMApplyMostSuccessAsync/tupleMSupplyMostSuccessAsync/thenTupleMApplyMostSuccessAsync in CompletableFutureUtils
    • Multi-Actions(M*)/Tuple-Multi-Actions(tupleM*) in CffuFactory
    • Then-Multi-Actions(thenM*)/thenTupleMApplyMostSuccessAsync in Cffu

🛠 Refactor/Improvements

  • ⚠️ renaming methods, treat mostSuccess/anySuccess as one concept/phrase 🌟
  • refactor/cleanup methods: 🔧 🧹
    • rename parameter to cfThis from cf for the instance methods in CompletableFutureUtils
    • ⚠️ change the cfThis type to CompletableFuture from CompletionStage for thenM*/thenBoth*/thenEither* methods in CompletableFutureUtils
    • remove the fast-fail/any-success method reference javadoc; too tedious, should javadoc at the package or classes
  • fix thenTupleMApply* methods: 🐞 (by @huhaosumail)
    • miss the use of value of Function
    • wrong fast fail argument for fast-fail-methods
  • rename internal help methods toCf*, reflect the safety semantics correctly; improve javadoc of related methods 🦺
  • change internal helper methods allTupleOf0/toCfArray0 signature, place the varargs/array parameter last 🪑
  • rename internal wrapActions method to wrapRunnables, consistent with other wrap* methods

🚜 Build/Chore

  • add IntelliJ IDEA project dict 📖
  • 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-Alpha12</version>
</dependency>

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha11 🦝 👯

22 Jun 17: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"~ 😆


Welcome new cffu team member @huhaosumail 👏 💕

Thanks for your excellent works! 🚀

☘️ Features

  • implement the tuple-multi-actions methods(by new cffu team member @huhaosumail) ✨ 👯
    • tupleMSupplyFastFailAsync/tupleMSupplyAsync in CompletableFutureUtils
    • thenTupleMApplyFastFailAsync/thenTupleMApplyAsync in CompletableFutureUtils
    • tupleMSupplyFastFailAsync/tupleMSupplyAsync in CffuFactory
    • thenTupleMApplyFastFailAsync/thenTupleMApplyAsync in Cffu

🛠 Refactor/Improvements

  • ⚠️ move default value parameter(valueIfNotSuccess) forward
  • reorder methods 🚞 and add sections in files by region comment 💅

🚜 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-Alpha11</version>
</dependency>

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha10 🦝 🚀

15 Jun 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 are marked with ⚠️.

Welcome to try out cffu. 💕

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

☘️ Features

  • implement the multi-actions methods in CompletableFutureUtils ✨ 🚀
    • mSupplyAsync/mSupplyFastFailAsync/mSupplyMostSuccessAsync
    • mRunAsync/mRunFastFailAsync
    • thenMApplyAsync/thenMApplyFastFailAsync/thenMApplyMostSuccessAsync
    • thenMAcceptAsync/thenMAcceptFastFailAsync
    • thenMRunAsync/thenMRunFastFailAsync
  • use cf.handle method(instead of whenComplete) and return null, in order to prevent reporting the handled argument exception 💥
    and improve test cases of safe timeout* methods

🛠 Refactor/Improvements

  • use cffuCompleteOnTimeout instead of cffuOrTimeout in mostOf* methods for single input cf ⚡️
    cffuCompleteOnTimeout won't create TimeoutException
  • declare QA annotations on package instead of classes 📝
  • complement QA annotations in DelayExecutionHelpers.java 🦺

📚 Documentation

  • improve javadoc of allOf*/mostOf* methods 📚

🚜 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-Alpha10</version>
</dependency>

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha9 🦝 🦺

10 Jun 17:14
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

  • safe timeout* methods keep the direct TimeoutException instead of CompletionException wrapper 🦺 ✨
  • report exception info of hop handle, errors should never pass silently 💣 👀

🐞 BugFix

  • ensure type safety of Cffu; if return type of API is Cffu, the result MUST not be a minimal stage 🦺 🧬
  • methods unsafeOrTimeout/unsafeCompleteOnTimeout of Cffu should return this 🐞

🛠 Refactor/Improvements

  • fix/simplify internal help method hopExecutorIfAtCfDelayerThread 👁️ 🧬
    • ⚠️ fix wrong visibility modifier, public -> private
    • simplify generic type declare, CompletionStage -> CompletableFuture
  • perf: use cffuCompleteOnTimeout instead of cffuOrTimeout in mostOf* methods for multiply input cfs ⚡️
  • delegate Cffu.peek() methods to CompletableFutureUtils.peek() which has report function 🫣
    • and improve related @CheckReturnValue 📝

📚 Documentation

  • improve docs in README and javadoc 📚
    • mostOf* method, default executor

🧪 Test

  • test/refactor: use JUnit assertThrows method instead of try-fail-catch old test pattern 🧪

🚜 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-Alpha9</version>
</dependency>

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha8 🦝 ⏳

03 Jun 18:33
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

  • report exception info of peek action, errors should never pass silently 💣 👀

🐞 BugFix

  • fix the safe behavior of timeout* methods ⏳ ✨

🛠 Refactor/Improvements

  • ⚠️ change the type declaration in CompletableFutureExtensions.kt to be consistent with CompletableFutureUtils 🧬
  • add missing the minimal stage check 👀
  • complement the null check logic 👻
  • change parameter type to CompletableFuture of internal helper method isMinStageCf 🧬

🧪 Test

  • add test cases for the safe behavior of new safe timeout* methods ⏳ 💥
  • add CancellationException throw test case for CompletableFutureUtils.join() method
  • enable Kotest project level config with project listener

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️
  • upgrade maven wrapper to 3.9.7 🪶

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

cffu Kotlin support lib:

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

cffu bom:

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

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 🚀 ✨

🐞 BugFix

  • fix UnsupportedOperationException for the single minimal stage input 💣

🛠 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: 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>