88<a href =" https://openjdk.java.net/ " ><img src =" https://img.shields.io/badge/Java-8+-339933?logo=openjdk&logoColor=white " alt =" Java support " ></a >
99<a href =" https://www.apache.org/licenses/LICENSE-2.0.html " ><img src =" https://img.shields.io/github/license/foldright/cffu?color=4D7A97&logo=apache " alt =" License " ></a >
1010<a href =" https://foldright.io/api-docs/cffu2/ " ><img src =" https://img.shields.io/github/release/foldright/cffu?label=javadoc&color=339933&logo=read-the-docs&logoColor=white&filter=v2.* " alt =" Javadocs " ></a >
11- <a href =" https://central.sonatype.com/artifact/io.foldright/cffu2/2.0.1 /versions " ><img src =" https://img.shields.io/maven-central/v/io.foldright/cffu2?logo=apache-maven&logoColor=white " alt =" Maven Central " ></a >
11+ <a href =" https://central.sonatype.com/artifact/io.foldright/cffu2/2.0.2 /versions " ><img src =" https://img.shields.io/maven-central/v/io.foldright/cffu2?logo=apache-maven&logoColor=white " alt =" Maven Central " ></a >
1212<a href =" https://github.com/foldright/cffu/releases " ><img src =" https://img.shields.io/github/release/foldright/cffu.svg?filter=v2.* " alt =" GitHub Releases " ></a >
1313<a href =" https://github.com/foldright/cffu/stargazers " ><img src =" https://img.shields.io/github/stars/foldright/cffu?style=flat " alt =" GitHub Stars " ></a >
1414<a href =" https://github.com/foldright/cffu/fork " ><img src =" https://img.shields.io/github/forks/foldright/cffu?style=flat " alt =" GitHub Forks " ></a >
@@ -232,7 +232,7 @@ Migrating to the `Cffu` class involves 2 simple changes:
232232
2332332\) If you cannot modify code that uses ` CompletableFuture ` (such as ` CF ` returned from external libraries)
234234
235- Use the [ ` CffuFactory.toCffu(CompletionStage) ` method] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/CffuFactory.html#toCffu(java.util.concurrent.CompletionStage) )
235+ Use the [ ` CffuFactory.toCffu(CompletionStage) ` method] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/CffuFactory.html#toCffu(java.util.concurrent.CompletionStage) )
236236to convert ` CompletableFuture ` or ` CompletionStage ` to ` Cffu ` type.
237237
238238### 1.3 dependencies (including ` CompletableFutureUtils ` utility class)
@@ -243,18 +243,18 @@ to convert `CompletableFuture` or `CompletionStage` to `Cffu` type.
243243 <dependency >
244244 <groupId >io.foldright</groupId >
245245 <artifactId >cffu2</artifactId >
246- <version >2.0.1 </version >
246+ <version >2.0.2 </version >
247247 </dependency >
248248 ```
249249- For ` Gradle ` projects:
250250
251251 Gradle Kotlin DSL
252252 ``` groovy
253- implementation("io.foldright:cffu2:2.0.1 ")
253+ implementation("io.foldright:cffu2:2.0.2 ")
254254 ```
255255 Gradle Groovy DSL
256256 ``` groovy
257- implementation 'io.foldright:cffu2:2.0.1 '
257+ implementation 'io.foldright:cffu2:2.0.2 '
258258 ```
259259
260260## 2. ` cffu ` feature introduction
@@ -689,7 +689,7 @@ You should only handle specific exceptions that the current business clearly und
689689and can recover from, letting outer layers handle other exceptions;
690690avoid masking bugs or incorrectly handling exceptions that you cannot recover from.
691691
692- ` cffu ` provides corresponding [ ` catching* ` methods] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/CompletableFutureUtils.html#catching(F,java.lang.Class,java.util.function.Function) )
692+ ` cffu ` provides corresponding [ ` catching* ` methods] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/CompletableFutureUtils.html#catching(F,java.lang.Class,java.util.function.Function) )
693693that support specifying exception types to handle; compared to the ` CF#exceptionally ` method,
694694it adds an exception type parameter, with similar usage, so no code example is provided.
695695
@@ -721,18 +721,18 @@ Because timeout and delayed execution are basic functionalities, once they fail,
721721
722722The ` cffu ` library provides timeout-safe new implementation methods:
723723
724- - [ ` Cffu#orTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/BaseCffu.html#orTimeout(long,java.util.concurrent.TimeUnit) )
725- / [ ` Cffu#completeOnTimeoutTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/BaseCffu.html#completeOnTimeout(java.lang.Object,long,java.util.concurrent.TimeUnit) )
726- - [ ` CFU#cffuOrTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/CompletableFutureUtils.html#cffuOrTimeout(F,long,java.util.concurrent.TimeUnit) )
727- / [ ` CFU#cffuCompleteOnTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/CompletableFutureUtils.html#cffuCompleteOnTimeout(F,T,long,java.util.concurrent.TimeUnit) )
724+ - [ ` Cffu#orTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/BaseCffu.html#orTimeout(long,java.util.concurrent.TimeUnit) )
725+ / [ ` Cffu#completeOnTimeoutTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/BaseCffu.html#completeOnTimeout(java.lang.Object,long,java.util.concurrent.TimeUnit) )
726+ - [ ` CFU#cffuOrTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/CompletableFutureUtils.html#cffuOrTimeout(F,long,java.util.concurrent.TimeUnit) )
727+ / [ ` CFU#cffuCompleteOnTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/CompletableFutureUtils.html#cffuCompleteOnTimeout(F,T,long,java.util.concurrent.TimeUnit) )
728728
729729Ensuring business logic won't execute in ` CF ` 's single-threaded ` ScheduledThreadPoolExecutor ` .
730730
731731For more information, see:
732732
733733- Problem demonstration [ ` DelayDysfunctionDemo.java ` ] ( https://github.com/foldright/cffu/blob/2.x-dev/cffu-core/src/test/java/io/foldright/demo/CfDelayDysfunctionDemo.java )
734- - ` cffu backport ` method JavaDoc: [ ` CFU#orTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/CompletableFutureUtils.html#orTimeout(F,long,java.util.concurrent.TimeUnit) )
735- / [ ` CFU#completeOnTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/CompletableFutureUtils.html#completeOnTimeout(F,T,long,java.util.concurrent.TimeUnit) )
734+ - ` cffu backport ` method JavaDoc: [ ` CFU#orTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/CompletableFutureUtils.html#orTimeout(F,long,java.util.concurrent.TimeUnit) )
735+ / [ ` CFU#completeOnTimeout() ` ] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/CompletableFutureUtils.html#completeOnTimeout(F,T,long,java.util.concurrent.TimeUnit) )
736736- Article [ Improper Use of ` CompletableFuture ` Timeout Functionality Causes Production Incidents] ( https://juejin.cn/post/7411686792342274089 )
737737
738738### 2.11 support for timeout-enabled ` join ` method
@@ -900,7 +900,7 @@ Compared to the above method groups (multiple `Action`s/multiple data), these me
900900> In critical business logic, when using these methods, pay attention to
901901> implementing good exception reporting logic (aka. don't swallow exceptions):
902902> - For implementation reference, see ` cffu ` implementation code, such as ` CompletableFutureUtils.mSupplyFailFastAsync() `
903- > - The ` cffu ` library provides support utility class [ ` SwallowedExceptionHandleUtils ` ] ( https://foldright.io/api-docs/cffu2/2.0.1 /io/foldright/cffu2/eh/SwallowedExceptionHandleUtils.html )
903+ > - The ` cffu ` library provides support utility class [ ` SwallowedExceptionHandleUtils ` ] ( https://foldright.io/api-docs/cffu2/2.0.2 /io/foldright/cffu2/eh/SwallowedExceptionHandleUtils.html )
904904 for implementing orchestration exception reporting
905905
906906# 🔌 API Docs
@@ -910,7 +910,7 @@ Compared to the above method groups (multiple `Action`s/multiple data), these me
910910# 🍪 Dependencies
911911
912912> You can check the latest available version list at
913- > [ central.sonatype.com] ( https://central.sonatype.com/artifact/io.foldright/cffu2/2.0.1 /versions ) .
913+ > [ central.sonatype.com] ( https://central.sonatype.com/artifact/io.foldright/cffu2/2.0.2 /versions ) .
914914
915915- ` cffu ` library (including enhanced ` CompletableFutureUtils ` for
916916 [ ` Java CompletableFuture ` ] ( https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html ) ):
@@ -920,18 +920,18 @@ Compared to the above method groups (multiple `Action`s/multiple data), these me
920920 <dependency >
921921 <groupId >io.foldright</groupId >
922922 <artifactId >cffu2</artifactId >
923- <version >2.0.1 </version >
923+ <version >2.0.2 </version >
924924 </dependency >
925925 ```
926926 - For `Gradle` projects:
927927
928928 Gradle Kotlin DSL
929929 ```groovy
930- implementation("io.foldright:cffu2:2.0.1 ")
930+ implementation("io.foldright:cffu2:2.0.2 ")
931931 ```
932932 Gradle Groovy DSL
933933 ```groovy
934- implementation 'io.foldright:cffu2:2.0.1 '
934+ implementation 'io.foldright:cffu2:2.0.2 '
935935 ```
936936- [📌 `TransmittableThreadLocal(TTL)`](https://github.com/alibaba/transmittable-thread-local) [`cffu executor wrapper SPI` implementation](cffu-ttl-executor-wrapper):
937937 - For `Maven` projects:
@@ -940,19 +940,19 @@ Compared to the above method groups (multiple `Action`s/multiple data), these me
940940 <dependency >
941941 <groupId >io.foldright</groupId >
942942 <artifactId >cffu2-ttl-executor-wrapper</artifactId >
943- <version >2.0.1 </version >
943+ <version >2.0.2 </version >
944944 <scope >runtime</scope >
945945 </dependency >
946946 ```
947947 - For `Gradle` projects:
948948
949949 Gradle Kotlin DSL
950950 ```groovy
951- runtimeOnly("io.foldright:cffu2-ttl-executor-wrapper:2.0.1 ")
951+ runtimeOnly("io.foldright:cffu2-ttl-executor-wrapper:2.0.2 ")
952952 ```
953953 Gradle Groovy DSL
954954 ```groovy
955- runtimeOnly 'io.foldright:cffu2-ttl-executor-wrapper:2.0.1 '
955+ runtimeOnly 'io.foldright:cffu2-ttl-executor-wrapper:2.0.2 '
956956 ```
957957- `cffu bom`:
958958 - For `Maven` projects:
@@ -961,7 +961,7 @@ Compared to the above method groups (multiple `Action`s/multiple data), these me
961961 <dependency >
962962 <groupId >io.foldright</groupId >
963963 <artifactId >cffu2-bom</artifactId >
964- <version >2.0.1 </version >
964+ <version >2.0.2 </version >
965965 <type >pom</type >
966966 <scope >import</scope >
967967 </dependency >
@@ -970,11 +970,11 @@ Compared to the above method groups (multiple `Action`s/multiple data), these me
970970
971971 Gradle Kotlin DSL
972972 ```groovy
973- implementation(platform("io.foldright:cffu2-bom:2.0.1 "))
973+ implementation(platform("io.foldright:cffu2-bom:2.0.2 "))
974974 ```
975975 Gradle Groovy DSL
976976 ```groovy
977- implementation platform('io.foldright:cffu2-bom:2.0.1 ')
977+ implementation platform('io.foldright:cffu2-bom:2.0.2 ')
978978 ```
979979
980980# 📚 More Resources
0 commit comments