Skip to content

Commit 3837832

Browse files
committed
Preparing release
1 parent 91e7969 commit 3837832

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

.classpath

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<attribute name="maven.pomderived" value="true"/>
1212
</attributes>
1313
</classpathentry>
14-
<classpathentry kind="src" output="target/classes" path="src/main/java">
14+
<classpathentry excluding="module-info.java" kind="src" output="target/classes" path="src/main/java">
1515
<attributes>
1616
<attribute name="optional" value="true"/>
1717
<attribute name="maven.pomderived" value="true"/>

README.md

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,29 @@
1-
[![Maven Central](https://img.shields.io/maven-central/v/net.tascalate.concurrent/net.tascalate.concurrent.lib.svg)](https://search.maven.org/artifact/net.tascalate.concurrent/net.tascalate.concurrent.lib/0.7.1/jar) [![GitHub release](https://img.shields.io/github/release/vsilaev/tascalate-concurrent.svg)](https://github.com/vsilaev/tascalate-concurrent/releases/tag/0.7.1) [![license](https://img.shields.io/github/license/vsilaev/tascalate-concurrent.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)
1+
[![Maven Central](https://img.shields.io/maven-central/v/net.tascalate.concurrent/net.tascalate.concurrent.lib.svg)](https://search.maven.org/artifact/net.tascalate.concurrent/net.tascalate.concurrent.lib/0.8.0/jar) [![GitHub release](https://img.shields.io/github/release/vsilaev/tascalate-concurrent.svg)](https://github.com/vsilaev/tascalate-concurrent/releases/tag/0.8.0) [![license](https://img.shields.io/github/license/vsilaev/tascalate-concurrent.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)
22
# tascalate-concurrent
33
The library provides an implementation of the [CompletionStage](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html) interface and related classes these are designed to support long-running blocking tasks (typically, I/O bound). This functionality augments the sole Java 8 built-in implementation, [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html), that is primarily supports computational tasks. Also, the library helps with numerous asynchronous programing challenges like handling timeouts, retry/poll functionality, orchestrating results of multiple concurrent computations and similar.
44

55
Since the version [0.7.0](https://github.com/vsilaev/tascalate-concurrent/releases/tag/0.7.0) the library is shipped as a multi-release JAR and may be used both with Java 8 as a classpath library or with Java 9+ as a module.
66

7+
IMPORTANT!
8+
9+
In the version [0.8.0](https://github.com/vsilaev/tascalate-concurrent/releases/tag/0.8.0) the artifact was renamed:
10+
New name:
11+
```xml
12+
<dependency>
13+
<groupId>net.tascalate</groupId>
14+
<artifactId>net.tascalate.concurrent</artifactId>
15+
<version>0.8.0</version>
16+
</dependency>
17+
```
18+
Old Name
19+
```xml
20+
<dependency>
21+
<groupId>net.tascalate.concurrent</groupId>
22+
<artifactId>net.tascalate.concurrent.lib</artifactId>
23+
<version>0.7.1</version>
24+
</dependency>
25+
26+
727
# Why a CompletableFuture is not enough?
828
There are several shortcomings associated with [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html) implementation that complicate its usage for real-life asynchronous programming, especially when you have to work with I/O-bound interruptible tasks:
929
1. `CompletableFuture.cancel()` [method](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html#cancel-boolean-) does not interrupt underlying thread; it merely puts future to exceptionally completed state. So even if you use any blocking calls inside functions passed to `thenApplyAsync` / `thenAcceptAsync` / etc - these functions will run till the end and never will be interrupted. Please see [CompletableFuture can't be interrupted](http://www.nurkiewicz.com/2015/03/completablefuture-cant-be-interrupted.html) by Tomasz Nurkiewicz.
@@ -17,9 +37,9 @@ There are numerous free open-source libraries that address some of the aforement
1737
To use a library you have to add a single Maven dependency
1838
```xml
1939
<dependency>
20-
<groupId>net.tascalate.concurrent</groupId>
21-
<artifactId>net.tascalate.concurrent.lib</artifactId>
22-
<version>0.7.1</version>
40+
<groupId>net.tascalate</groupId>
41+
<artifactId>net.tascalate.concurrent</artifactId>
42+
<version>0.8.0</version>
2343
</dependency>
2444
```
2545
# What is inside?

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>net.tascalate</groupId>
88
<artifactId>net.tascalate.concurrent</artifactId>
9-
<version>1.0.0-SNAPSHOT</version>
9+
<version>0.8.0</version>
1010
<packaging>jar</packaging>
1111

1212
<name>Tascalate Concurrent</name>

0 commit comments

Comments
 (0)