For application facing APIs, we can provide CompletionStage alternatives. For internal usages, we could retain it or phase it out completely.
Comment From: sdeleuze
+1 for phasing it out, that would improve clarity for users to not have too much alternatives, and with CompletionStage and Mono I think we are covered.
Comment From: poutsma
This is now complete:
* Deprecation of ListenableFuture and related types (ListenableFutureCallback, SettableListenableFuture, etc.)
* Deprecation of AsyncListenableTaskExecutor in favor of default methods in AsyncTaskExecutor (submitCompletable).
* AsyncHandlerMethodReturnValueHandler now has toCompletableFuture instead of toListenableFuture.
* WebSocketClient now has execute methods, which do the same as doHandshake, but return CompletableFutures (cf. the reactive WebSocketClient).
All other changes:
* add an overloaded method that takes a CompletableFuture parameter instead of ListenableFuture, and/or
* add a method with a 'Async' suffix that returns a CompletableFuture instead of a ListenableFuture (connectAsync, sendAsync).