in sdk-java/src/main/java/com/spotify/confidence/GrpcUtil.java [13:37]
static <T> CompletableFuture<T> toCompletableFuture(final ListenableFuture<T> listenableFuture) {
final CompletableFuture<T> completableFuture =
new CompletableFuture<>() {
@Override
public boolean cancel(boolean mayInterruptIfRunning) {
listenableFuture.cancel(mayInterruptIfRunning);
return super.cancel(mayInterruptIfRunning);
}
};
Futures.addCallback(
listenableFuture,
new FutureCallback<T>() {
@Override
public void onSuccess(T result) {
completableFuture.complete(result);
}
@Override
public void onFailure(Throwable t) {
completableFuture.completeExceptionally(t);
}
},
MoreExecutors.directExecutor());
return completableFuture;
}