Skip to content

Releases: foldright/cffu

v2.0.0-Alpha3

27 Aug 18:00
Compare
Choose a tag to compare
v2.0.0-Alpha3 Pre-release
Pre-release

shifu

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

🛠 Refactor/Improvements

  • add missing "bounded wildcard" of generic parameters 🧬
  • fix wrong generic type declaration of NonExSwallowed* methods 🧬
  • add missing @Nullable for BasCffu.getNow 📝
  • rename file DelayExecutionHelpers.java -> ExecutionHelpers.java 🔠

🧪 Tests

  • test: move ExceptionReportionSafetyTest.kt to aspect package

📚 Documentation

  • docs: improve wording 📚

💅 Style

  • style: merge one-line @Nullable before type declaration 💅

🚜 Build/Chore

  • add "Can use bounded wildcard" inspection into qodana CI 👁️‍🗨️
  • add IntelliJ IDEA project inspections profile 👁️‍🗨️

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu2/2.0.0-Alpha3/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu2</artifactId>
    <version>2.0.0-Alpha3</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu2-ttl-executor-wrapper</artifactId>
  <version>2.0.0-Alpha3</version>
  <scope>runtime</scope>
</dependency>

v1.1.13

27 Aug 17:19
Compare
Choose a tag to compare

shifu

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

🛠 Refactor/Improvements

  • add missing "bounded wildcard" of generic parameters 🧬
  • fix wrong generic type declaration of NonExSwallowed* methods 🧬
  • add missing @Nullable for Cffu.getNow 📝
  • rename file DelayExecutionHelpers.java -> ExecutionHelpers.java 🔠

🧪 Tests

  • test: move ExceptionReportionSafetyTest.kt to aspect package

📚 Documentation

  • docs: improve wording 📚

💅 Style

  • style: merge one-line @Nullable before type declaration 💅

🚜 Build/Chore

  • add "Can use bounded wildcard" inspection into qodana CI 👁️‍🗨️
  • add IntelliJ IDEA project inspections profile 👁️‍🗨️
  • upgrade dependencies/plugins 📦

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.13/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu</artifactId>
    <version>1.1.13</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu-ttl-executor-wrapper</artifactId>
  <version>1.1.13</version>
  <scope>runtime</scope>
</dependency>

v2.0.0-Alpha2

22 Aug 19:25
Compare
Choose a tag to compare
v2.0.0-Alpha2 Pre-release
Pre-release

shifu

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

☘️ Features

  • feat: add method CffuFactory.mCffuFromSyncCall 📩
  • feat: move NonExSwallowed* methods to CFU from LLCF 💣

🛠 Refactor/Improvements

  • perf: improve method LLCF.f_toCfCopy0, save one unneeded copy operation for min stage instance 🚀

🧪 Tests

  • add test cases of CheckExecutorOfCompletableFutureUtilsMethodsTests/CheckExecutorOfCffuMethodsTests 🧵💗
  • add test case to check that the result list of allResultsOf is normal modifiable list 🧪

📚 Documentation

  • add study demo InstanceCreationOfCompletableFutureConversationMethods
  • improve wording 📚

🚜 Build/Chore

  • upgrade dependencies/plugins 📦
  • simplify CI/build since removed modules cffu-kotlin and cffu-listenable-future 🤖

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu2/2.0.0-Alpha2/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu2</artifactId>
    <version>2.0.0-Alpha2</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu2-ttl-executor-wrapper</artifactId>
  <version>2.0.0-Alpha2</version>
  <scope>runtime</scope>
</dependency>

v1.1.12

19 Aug 18:04
Compare
Choose a tag to compare

shifu

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

🛠 Refactor/Improvements

  • improve method LLCF.f_toCfCopy0, save one unneeded copy operation for min stage instance 🚀

🧪 Tests

  • add test case to check that the result list of allResultsOf is normal modifiable list 🧪

📚 Documentation

  • add study demo InstanceCreationOfCompletableFutureConversationMethods
  • update docs since released cffu2 version 📚

🚜 Build/Chore

  • upgrade dependencies/plugins 📦

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.12/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu</artifactId>
    <version>1.1.12</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu-ttl-executor-wrapper</artifactId>
  <version>1.1.12</version>
  <scope>runtime</scope>
</dependency>

v2.0.0-Alpha1

12 Aug 10:28
Compare
Choose a tag to compare
v2.0.0-Alpha1 Pre-release
Pre-release

shifu

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

☘️ Features

  • feat: add CfIterableUtils 🚿 (#341) by @linzee1
  • feat(Cffu/CffuFactory): add Iterable variant methods 🚿
  • feat: add CfParallelUtils 🎏
  • feat(MCffu/CffuFactory): add par* methods 🎏
  • feat: move The tuple variant methods to CfTupleUtils from CfUtils 🧤
  • feat(Cffu/CffuFactory): move The tuple variant methods to TupleOps inner class 🧤
  • feat(Cffu/MCffu): add conversation methods between Cffu and MCffu 🔁
  • feat(CffuFactory): add methods related with MCffu

related to cffu v1:

  • ⚠️ remove CFU#toCompletableFutureArray/CffuFactory#toCffuArray methods, simplify API 🌱🧹
  • ⚠️ remove CffuFactory#cffuListToArray method because provided IterableOps 🚿🧹
  • ⚠️ remove method CompletableFutureUtils#completableFutureListToArray because provided CfIterableUtils 🧹

🛠 Refactor/Improvements

  • move toArray util methods to CommonUtils
  • refactor: move executor parameter to last, consistent with CompletableFuture 🪑
  • refactor(CfIterableUtils): simplify toArray internal method

🧪 Tests

  • test(Cffu/CffuFactory): add test for Iterable variant methods 🚿
  • test: add test cases in CfIterableUtilsTest 🚿
  • test: add CfParallelUtilsTest 🎏
  • test(MCffu/CffuFactory): add test cases for par* methods 🎏

🚜 Build/Chore

  • chore(deps): bump actions/checkout from 4 to 5 (#364)

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu2/2.0.0-Alpha1/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu2</artifactId>
    <version>2.0.0-Alpha1</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu2-ttl-executor-wrapper</artifactId>
  <version>2.0.0-Alpha1</version>
  <scope>runtime</scope>
</dependency>

v1.1.11

08 Aug 11:09
Compare
Choose a tag to compare

shifu

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

☘️ Features

  • feat: add method CffuFactory.fromSyncCall 📩

🛠 Refactor/Improvements

  • refactor(LLCF#relayAsync0): improve type argument 🧬
  • refactor: add @CheckReturnValue for fromSyncCall methods 📩

🧪 Tests

  • test(LLCF): add test cases for NonExSwallowed methods 💣
  • test(CFU): add test_timeout_data_race, cover FutureCanceller.accept and CfTimeout.run

🚜 Build/Chore

  • chore(deps): bump org.assertj:assertj-bom from 3.27.3 to 3.27.4 (#363)

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.11/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu</artifactId>
    <version>1.1.11</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu-ttl-executor-wrapper</artifactId>
  <version>1.1.11</version>
  <scope>runtime</scope>
</dependency>

v1.1.10

04 Aug 16:55
Compare
Choose a tag to compare

shifu

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

☘️ Features

  • add method CompletableFutureUtils.fromSyncCall: Returns a new CompletableFuture that encapsulates the execution of synchronous logic 📩
    • By wrapping synchronous code in a CompletableFuture, exceptions can be handled consistently within the CompletableFuture pipeline, eliminating the need to manage separate exceptional paths both inside and outside the flow.

🛠 Refactor/Improvements

  • invert if condition and rename local var of method LLCF.relayAsync0 🔨

📚 Documentation

  • improve javadoc of LLCF.relayAsync0 📚

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.10/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu</artifactId>
    <version>1.1.10</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu-ttl-executor-wrapper</artifactId>
  <version>1.1.10</version>
  <scope>runtime</scope>
</dependency>

v1.1.9

02 Aug 18:36
Compare
Choose a tag to compare

shifu

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

☘️ Features

add method LLCF.relayAsync0, support the fourth way "relay async" to arrange a new stage's computations 🏎️

In CompletionStage / CompletableFuture, execution of a new stage's computations may be arranged in any of three ways:

  • default execution,
  • default asynchronous execution (using methods with suffix async that employ the stage's default asynchronous execution facility),
  • or custom asynchronous execution (via a supplied Executor).

- reference from the javadoc of CompletionStage

🧪 Tests

add demo of "Execution order of sync actions added to a future" 🧪

📚 Documentation

  • improve javadoc of peek* methods

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.9/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu</artifactId>
    <version>1.1.9</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu-ttl-executor-wrapper</artifactId>
  <version>1.1.9</version>
  <scope>runtime</scope>
</dependency>

v1.1.8

29 Jul 17:28
Compare
Choose a tag to compare

shifu

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

🛠 Refactor/Improvements

  • improve user experience of CFU#unwrapCfException method 🏪 :
    • if a loop is detected in the causal chain, returns the input exception as the best option instead of throwing IllegalArgumentException
      • More info see Chapter 10 "Define Errors Out of Existence" of "A Philosophy of Software Design" by John Ousterhout 🚀
    • if there is no cause exceptions except for CF exceptions, returns the input exception as the best option instead of inner exception
  • refactor(CFU): use Class#isInstance method instead of isAssignableFrom, more straightforward codes 🔤

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.8/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu</artifactId>
    <version>1.1.8</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu-ttl-executor-wrapper</artifactId>
  <version>1.1.8</version>
  <scope>runtime</scope>
</dependency>

v1.1.7

28 Jul 10:54
Compare
Choose a tag to compare

shifu

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

🛠 Refactor/Improvements

  • refactor(CFU): use Class#isInstance method instead of isAssignableFrom, more straightforward codes 🔤
  • refactor(CFU): reorder method CFU#newIncompleteFuture 🚞

📚 Documentation

  • improve javadoc

🔌 API Docs

cffu Java API doc: https://foldright.io/api-docs/cffu/1.1.7/

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>cffu</artifactId>
    <version>1.1.7</version>
</dependency>

cffu executor wrapper SPI implementation for 📌 TransmittableThreadLocal(TTL):

<dependency>
  <groupId>io.foldright</groupId>
  <artifactId>cffu-ttl-executor-wrapper</artifactId>
  <version>1.1.7</version>
  <scope>runtime</scope>
</dependency>