I was using/exploring Qpid Broker-J 9.1.0 while exploring the source code of *Qpid Broker-J 9.1.0 tag*. I found that google guava's concurrency API is used. After exploring it bit more i realized that we can easily use java's *CompletableFuture and ForkJoinThreadPool* instead of *ListenableFuture, AbstractFuture, ListeningExecutorService, SettableFuture, MoreExecutors,...* also guava's ByteStreams can be replaced with java's built-in methods in few places.
Due to the work-stealing capability of *ForkJoinThreadPool* i think it can give performance boost to qpid-broker-j. The only possible down-side I can think of is that *CompletableFuture *is concrete implementation rather than abstract class or interface*. *Maybe someone can suggest an improvement on this idea which takes care of possible down-side i mentioned earlier. possibly one less dependency for the project in the long run as well.