Skip to content

Releases: foldright/cffu

v1.0.0-Alpha19 🦝 ⏰

17 Aug 15:35
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

  • fix(CompletableFutureUtils): merge the JDK bugfix "CompletableFuture.orTimeout leaks if the future completes exceptionally" ⏰🐞 (by @linzee1)
  • optimize(CompletableFutureUtils): remove unnecessary copy for SINGLE cf input, if there is a subsequent thenApply operation which returns a new CF
  • refactor(ListenableFutureUtils): simplify cancel of CompletableFutureAdapter, just return of cancel result of CompletableFutureAdapter

🧪 Tests

  • add test case of thread interruption check to ListenableFutureUtils#toCompletableFuture 🧵 (by @linzee1)
  • rename var with short name in test codes, short code line is more readable in tedious test codes

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️
    • upgrade Kotlin to K2 🍩 💞

🔌 API Doc

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha18 🦝 📚

10 Aug 18:02
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

  • reorder methods of CffuFactoryBuilder
    • revise README and javadoc

🧪 Tests

  • test: rewrite TupleTest to Java, increase test coverage
  • clean test codes 🧹💕

📚 Documentation

  • add README_EN.md(WIP) 📚 🌟 (by @linzee1)
  • revise README

🚜 Build/Chore

  • update extra-enforcer-rules maven plugin config, and improve profile config
  • upgrade dependencies/plugins 🛠️

🔌 API Doc

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha17 🦝 🏛️

03 Aug 16:45
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

  • delegate resetDefaultExecutor() to CffuFactoryBuilder, and avoiding re-wrapping 👷
  • add missing requireNonNull(exceptionType) of catching* methods 🫴

🧪 Tests

  • add ArchUnit to enforce "Accessing CffuFactory constructor is only allowed by class CffuFactoryBuilder" 🏛️

📚 Documentation

  • revise README

🔌 API Doc

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha16 🦝 🚦

27 Jul 16:47
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 @linzee1 👏 💕

☘️ Features

  • ⚠️ add interruption parameter and revise javadoc to method ListenableFutureUtils#toCompletableFuture 🚦(by @linzee1)
    • and fix ListenableFutureUtils#toCompletableFuture cancellation propagation
  • add resetDefaultExecutor method to CffuFactory/Cffu 🏭

🛠 Refactor/Improvements

  • ⚠️ remove convenient util methods cffuArrayUnwrap for uncommon/dangerous Cffu#cffuUnwrap method 🧹
  • reorder Cffu.cffuUnwrap and revise its javadoc
  • add QA annotations(@Contract/@Nuallable) to method CompletableFutureUtils.unwrapCfException
  • uniform local var name

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️

🔌 API Doc

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha15 🦝 💫

20 Jul 18:02
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 @linzee1 👏 💕

☘️ Features

🛠 Refactor/Improvements

  • refactor/improve ExceptionReporter 💣 (#188)
    • add CI test cases
    • add "Errors should never pass silently" info link in javadoc
    • adjust the file line number of logging
    • add test in CI(w/o slf4j/log4j2, full/short/none)
  • fix: peek methods should not report the exception that handled in the peek action 🐞

🧪 Tests

  • add test case for CffuFactory.toCffu() method

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️

🔌 API Doc

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

cffu Kotlin support lib:

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

cffu bom:

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

v1.0.0-Alpha14 🦝 💡

13 Jul 18:18
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 allSuccess* methods (#197 by @huhaosumail)
    • introduce a new run strategy AllSuccess 🆕🚀
  • implement anySuccess/any(Complete) M* methods(#191 by @huhaosumail)

🛠 Refactor/Improvements

  • simplify successOrBeIncomplete/failedOrBeIncomplete logic 💡
  • remove the tortuous inner class AsyncPoolHolder of CompletableFutureUtils 😌
    • lazy loading is unnecessary for new small object
  • add more @Contract annotations 📝
  • reorder thenMAccept* methods 🚃

📚 Documentation

  • update ConcurrencyStrategyDemo, add MostSuccess strategy demo 📚
  • improve README

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️

🔌 API Doc

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

cffu Kotlin support lib:

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

cffu bom:

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

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 *of 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 dependencies

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 dependencies

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>