Skip to content

Releases: foldright/cffu

v1.0.3 🦝 ⛓️

15 Feb 05:40
Compare
Choose a tag to compare

shifu

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

☘️ Features

  • CFU#unwrapCfException method supports recursively unwrapping nested CompletionException/ExecutionException 💣
    • checks exception causal chain loop ⛓️ (by @linzee1)

🛠 Refactor/Improvements

  • refactor(LFU): use LLCF#peek0 method instead of CFU#peek

📚 Documentation

  • small improve README wording

🚜 Build/Chore

  • improve bump_cffu_version.sh 🧹
  • bump com.tngtech.archunit:archunit-junit5 (#296)

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.2 🦝 🦺

09 Feb 16:02
Compare
Choose a tag to compare

shifu

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

🛠 Refactor/Improvements

  • optimize memory usage in mostSuccessOf* methods 📝
    • does not retain input cfs
    • does not retain unneeded exception instances
  • improve CFU#getSuccessNow to guarantee no CancellationException/CompletionException are thrown 🦺
  • use LLCF#peek* method instead of whenComplete/exceptionally, more reliable codes 🦺
  • add missing check(ex != e) for addSuppressed invocation in LLCF#peek* methods, avoid IllegalArgumentException(SELF_SUPPRESSION_MESSAGE) 💣
  • rename parameter names 🔠

🚜 Build/Chore

  • add check-forbidden-classes.sh 🧹

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.1 🦝 📝

31 Jan 16:49
Compare
Choose a tag to compare

shifu

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

🛠 Refactor/Improvements

  • add more @Contract QA annotations for LLCF methods 📝
  • use final local var instead of reassigning var in CffuFactoryBuilder#makeExecutor method 🥧

📚 Documentation

  • update README 📚
    • add doc for catching* methods
    • improve immigration guide

🧪 Tests

  • update test case for failure mSupply
  • add more test cases for timeout* operation ⏰

🚜 Build/Chore

  • automate the version update when release 🤖
    • update pom configurations for project.version validation
    • update bump_cffu_version.sh
  • upgrade dependencies/plugins 📦

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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

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

v1.0.0 🦝 🚀✨

25 Jan 18:27
Compare
Choose a tag to compare

shifu

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

First GA Release v1.0.0 🚀✨🎉

Same as v1.0.0-Alpha33 but bump version.

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

v1.0.0-Alpha33 🦝 🏗️

25 Jan 14:56
Compare
Choose a tag to compare
Pre-release

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

  • make more LLCF methods public 🏗️
    • add new method toNonMinCfCopyArray0
  • support attachments parameter for handle methods in SwallowedExceptionHandleUtils 🦢
  • change swallowed exception logging level to WARN 🦢

🐞 Bug Fixes

  • fix(cffu-core): add missing package eh exports directives to module-info.java 📦

🛠 Refactor/Improvements

  • ⚠️ rename reset* API methods to with* 🔠 ✨ (suggestion by @linzee1)
    • more conventional method names for unmodifiable/immutable objects, e.g. LocalDate#withDayOfMonth
  • ⚠️ rename class, methods and fields in eh package 🦢
  • optimize memory usage in allResultsOf* methods 📝
    • does not retain cf results that will never be used
    • reduce redundant writes to results array 🚅 (by @linzee1)
  • refactor(eh package): rename and refactor internal method unreferenced 🦢
  • use Arrays.setAll of stdlib instead of for loop

📚 Documentation

  • improve wording of doc and javadoc 📚💕

🚜 Build/Chore

  • chore: fix duplicate dependency warning of maven pom 🤖
  • bump org.jetbrains:annotations from 26.0.1 to 26.0.2 (#293)

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

v1.0.0-Alpha32 🦝 🦢

01 Jan 16:52
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

  • report the swallowed exceptions by M* methods #263 🦢

🛠 Refactor/Improvements

  • ⚠️ remove rarely used API of Cffu, simplify API ⏰
    • remove Cffu#timeout* overloaded methods with parameter executorWhenTimeout
    • if needed, use resetDefaultExecutor method to achieve
  • improve log message of swallowed exceptions 🦢
  • move class CommonUtils/ExceptionLogger class to package internal 🔧
  • ⚠️ change cffu logging system property name to cffu.exception.log.format from cffu.uncaught.exception.log.format

📚 Documentation

  • improve wording of doc and javadoc 📚💕

🚜 Build/Chore

  • add check_api_docs.sh to CI 📚
  • improve bump_cffu_version.sh 🧹

🔌 API Doc

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

🍪 Maven dependencies

cffu core lib, including cffu enhancement for Java CompletableFuture:

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

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"~ 😆

🐞 Bug Fixes

  • fix the wrong exception type check logic of catching* methods 🫴 #291 (by @huhaosumail)

🛠 Refactor/Improvements

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