Can use Streams from Groovy is running on JDK8.
A few trivial amendments.
Replace explicit executors, submit and Futures with use of CompleteableFutures.
Use CompleteableFuture to get rid of the explicit management of futures.