zeroturnaround / zt-exec

ZeroTurnaround Process Executor

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support CompletableFuture<T>

d-gs opened this issue · comments

I would like to use CompletableFuture<ProcessResult> compose functionality instead of a pure Future to be able to chain process as in a pipeline waiting one for the next. Looking a into your code (not soo deeply) I found that this might be simple by modifying the following method to use CompletableFuture#supplyAsync(Supplier, Executor) instead of ExecutorService#submit(Callable<T>):

protected <T> Future<T> invokeSubmit(ExecutorService executor, Callable<T> task) {

Changing the signature of the methods and variables for CompletableFuture should not have any impact in clients of the API (but maybe on custom implementations). Another putative side-effect is that the shutdown of the ExecutorService might fail if chaining in an asynchronous way the produced CompletableFuture.

Could it be possible to implement such a solution? Thanks!

Would you be willing to send a pull request?
(Sorry for the long delay, I'm taking over maintenance of this project so communication should be faster from now on)