Skip to content

Releases: foldright/cffu

v1.0.0-Alpha31 🦝 🫴

23 Dec 17:49
Compare
Choose a tag to compare

shifu

Note

🦝 Cffu has arrived at v1.0 Alpha series~ 🎉

  • Development tries 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 the wrong exception type check logic of catching* methods 🫴 #291 (by @huhaosumail)
  • defensive copy input array arguments of thenM* methods 🧵
    • they are used asynchronously NOT thread-safe, and could be mutated by caller
  • ⚠️ change cffu logging system property name to cffu.uncaught.exception.log.format from cffu.uncaught.exception.report
    • and rename ExceptionReporter to ExceptionLogger
  • do NOT reuse incomplete CF instance in methods bothFailFast0/eitherSuccess0 like fill0 🤖
  • add addSuppressed for reportUncaughtException 💣
  • extract peek0 methods to LLCF from CFU 🔧
  • move completeCf0 method to LLCF class 🔧

📚 Documentation

  • improve javadoc of catching* methods

🧪 Tests

  • improve test stability

🚜 Build/Chore

  • upgrade dependencies/plugins 📦
  • move macOS job to fast CI

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.0-Alpha30 🦝 🪑

30 Nov 18:47
Compare
Choose a tag to compare

shifu

Note

🦝 Cffu has arrived at v1.0 Alpha series~ 🎉

  • Development tries 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

  • ⚠️ adjust executor parameter position, follow the consistent rules: 🪑
    • as first parameter(except cfThis parameter) for varargs methods
      • mSupplyAllSuccessAsync
      • mSupplyMostSuccessAsync
      • mostSuccessResultsOf
      • thenMApplyAllSuccessAsync
      • thenMApplyMostSuccessAsync
    • as last parameter for non-varargs methods
      • cffuOrTimeout
      • cffuCompleteOnTimeout
  • change default value of cffu.uncaught.exception.report to full; fail LOUDLY 📢
  • refactor(CffuTtlExecutorWrapperProvider): skip wrapping executor if it is marked with TtlEnhanced

📚 Documentation

  • add cffuTimeout* guide in README

🧪 Tests

  • add CheckExecutorTests 🧵
  • move the aspect test to individual package 📦

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.0-Alpha29 🦝 🏗️

16 Nov 17:53
Compare
Choose a tag to compare

shifu

Note

🦝 Cffu has arrived at v1.0 Alpha series~ 🎉

  • Development tries 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

  • extract LLCF(Low Level CompletableFuture Utils) from CFU 🏗️
  • split cffu-listenable-future module from cffu-core 📦
  • add @ApiStatus.OverrideOnly for SPI ExecutorWrapperProvider

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.0-Alpha28 🦝 👁️‍🗨️

02 Nov 19:18
Compare
Choose a tag to compare

shifu

Note

🦝 Cffu has arrived at v1.0 Alpha series~ 🎉

  • Development tries 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"~ 😆

🐞 Bug Fixes

  • add missing requires directives to module-info.java 📦

🛠 Refactor/Improvements

  • refactor(DelayExecutionHelpers.java): review the codes by reference to CompletableFuture, and cleanup  🧹

🧪 Tests

  • test(Cffu): add CheckMinStageRuntimeTypeTests for CffuFactory/Cffu 👁️‍🗨️
  • test(CI): test usage ThreadPerTaskExecutor as screen executor of CompletableFuture

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.0-Alpha27 🦝 📚

26 Oct 16:48
Compare
Choose a tag to compare

shifu

Note

🦝 Cffu has arrived at v1.0 Alpha series~ 🎉

  • Development tries 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

  • refactor(CFU): simplify the screenExecutor translation logic, and add Implementation Note 🧵

📚 Documentation

  • add LambdaCompilationErrorSolutionOfMultipleActionsMethodsDemo 👨‍🏫
  • revise api docs 📚 💕
    • reword and simplify the api docs of M*/thenM* methods, link to their *Of methods
    • add the solution to compilation error caused by lambda arguments 🚨
    • reword the api doc of methods mostSuccessResultsOf
    • add the equivalent Guava method links 💕
      • allFailFastOf -> Futures#whenAllSucceed
      • allOf -> Futures#whenAllComplete

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.0-Alpha26 🦝 💕

19 Oct 18:01
Compare
Choose a tag to compare

shifu

Note

🦝 Cffu has arrived at v1.0 Alpha series~ 🎉

  • Development tries 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(CFU): convert executor for async operations by screenExecutor for timeout* methods, consistent with CF 🧵

🧪 Tests

  • add ListenableFutureUsageStudyCaseTest 👨‍🏫

📚 Documentation

revise api docs:

  • reword api docs of methods 💕
    • all*Of methods
    • any*Of methods
    • timeout* methods
  • fix wrong exception description of AnySuccess methods
  • unify term usage
    • use complete normally instead of complete successfully/is successful/do not success, etc.
  • remove uninformative/duplicate words
    • duplicate @return to javadoc body, etc
  • fix wording, multiply -> multiple 🔠

🚜 Build/Chore

  • chore(deps): bump org.jetbrains:annotations from 26.0.0 to 26.0.1 (#262)

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.0-Alpha25 🦝 ⚛️

13 Oct 19:09
Compare
Choose a tag to compare

shifu

Note

🦝 Cffu has arrived at v1.0 Alpha series~ 🎉

  • Development tries 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

  • [cffu-kotlin] add new kotlin extension methods 🍩
    • CompletableFutureExtensions.kt
      • M* extension methods
      • allSuccess* extension methods
      • defaultExecutor extension method
    • CffuExtensions.kt
      • M* extension methods
      • allSuccess* extension methods

🛠 Refactor/Improvements

  • ⚠️ rename methods: use term fail fast instead of fast fail ⚛️ (by @linzee1)
  • ⚠️ rename Tuple-Multi-Actions(tupleM*) methods 🌟
    • make their naming more consistant with all*Of methods
  • fix(CFU): convert executor for async operations by screenExecutor(), consistent with CF 🧵
  • refactor(CFU): allResultsFastFailOf/allResultsOf both call internal method allResultsOf0, simpler and more consistent 🌟
  • refactor: update generic parameters of methods 🧬
    • join/resultNow methods of CFU
      • add covariance to express the only use as input
    • join/resultNow/orTimeout* methods of CompletableFutureExtensions.kt
      • make orTimeout* generic parameters consistent with CFU
  • refactor(CFU): extract internal array util methods into file InternalCommonUtils 🔧
  • refactor(CFU): use static initializer instead of one-shot internal method
  • refactor(CffuExtensionsTest.kt): extract internal helper methods resolveFac, and add test cases 🔧

🧪 Tests

  • test(CFU): improve test cases for write methods of CFU 🧪
  • test(CFU): add CheckMinStageRuntimeTypeTests 🧪
    • split MinStageTestUtils.kt from TestUtils.kt

📚 Documentation

  • add MultiplyActionsDemo 👨‍🏫
  • revise/improve javadoc of peek* methods 📚
  • keep api docs of timeout* kotlin extension methods consistent with CFU 📚
  • revise README 📚

🚜 Build/Chore

  • add update_md_toc.sh to CI
  • upgraded non-LTS CI JDK to 23 from 22 🤖
  • 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-Alpha25</version>
</dependency>

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

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

v1.0.0-Alpha24 🦝 👓

21 Sep 17:40
Compare
Choose a tag to compare

shifu

Note

🦝 Cffu has arrived at v1.0 Alpha series~ 🎉

  • Development tries 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

  • use conditional expression instead of if statement when more readable and concise 👓
  • improve instance method defaultExecutor
    • rename argument to cfThis
    • ⚠️ change exception to UnsupportedOperationException from IllegalArgumentException
    • add null check for argument
    • revise its javadoc

🧪 Tests

  • apply* methods should use Function argument
  • simplify test codes by kotlin delegation

📚 Documentation

  • revise javadoc of tuple*/allSuccess*/mostSuccess* methods: 📚
    • simplify tuple* methods, just refer to their non-tuple methods
    • add "indistinguishable" note for allSuccess*/mostSuccess* methods

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

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

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

v1.0.0-Alpha23 🦝 🧵

17 Sep 19:06
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 missing instance method CFU#defaultExecutor 🧵 (by @linzee1)
    • ⚠️ and remove the wrong non-instance method CFU#defaultExecutor
  • improve instance method CFU#defaultExecutor, support runtime type Cffu

🐞 Bug Fixes

  • CFU instance methods of type CompletableFuture/CompletionStage uses defaultExecutor instance method instead of wrong non-instance method🧵 (by @linzee1)

🛠 Refactor/Improvements

  • perf: check min stage by class instead of class name, more efficient 🚀

📚 Documentation

  • improve javadoc of methods orTimeout and completeOnTimeout ⏰📚 (by @linzee1)
  • add IncompleteCfMemoryLeakDemo 👨‍🏫
  • improve CfDelayDysfunctionDemo, warmup pools 👨‍🏫

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

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

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

v1.0.0-Alpha22 🦝 🤖

07 Sep 16:40
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

  • perf: do NOT reuse incomplete CF instance in method CompletableFutureUtils#fill0, less instance dependencies more GC friendly 🤖 (by @linzee1)
  • improve QA annotations for methods allOf 🍬
  • rename internal methods to conform to conventions:
    • allSuccessTupleOf0 -> f_allSuccessTupleOf0
    • mostSuccessTupleOf0 -> f_mostSuccessTupleOf0
    • f_toNonMinCf0 -> toNonMinCf0
    • f_toNonMinCfArray0 -> toNonMinCfArray0
  • add poison object of type CffuFactory, and use it in CffuExtensions.kt ☠️

📚 Documentation

  • add CfDelayDysfunctionDemo.java 👨‍🏫

🧪 Tests

  • adjust wait time for more stable testing 🐘
  • update thread count/pool size, more stable

🚜 Build/Chore

  • upgrade dependencies/plugins 🛠️
  • use overview property of maven javadoc plugin instead of configuration

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

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

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