Skip to content

v1.0.0-Alpha9 🦝 🦺

Compare
Choose a tag to compare
@oldratlee oldratlee released this 10 Jun 17:14
· 203 commits to main since this release

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 💣 👀

🐞 Bug Fixes

  • 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

🧪 Tests

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