Converting google/guava ListenableFuture to Java 8 CompletableFuture
Java was a bit late in bringing Javascript's promise-like functionality. Future was there but wasn't as cool. So people at google made ListenableFuture . Now that java has CompletableFuture , it is common to run into problems like converting a ListenableFuture to a CompletableFuture. This can be because part of your older code uses ListenableFuture and now you have to compose your new logics utilising the newer and Java native technique. Following is one possible way to do it. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class FutureConverter { public static CompletableFuture toCompletableFuture ( ListenableFuture listenableFuture ) { final CompletableFuture completableFuture = new CompletableFuture (); Futures . addCallback ( listenableFuture , new FutureCallback () { public void onFailure ( Throwable throwable ) { completableFuture . completeException