I'm looking for a wall to implement a Collector
of CompletableFuture
.
I mean, my current code is:
private CompletableFuture<List<BundleEntryResponseComponent>> makeAllOfCompletableFuture(List<CompletableFuture<BundleEntryResponseComponent>> completableFutures) {
CompletableFuture<Void> allFutures = CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[completableFutures.size()]));
CompletableFuture<List<BundleEntryResponseComponent>> allCompletableFuture = allFutures.thenApply(future -> {
return completableFutures.stream()
.map(completableFuture -> completableFuture.join())
.collect(Collectors.toList());
}
);
CompletableFuture<List<BundleEntryResponseComponent>> completableFuture = allCompletableFuture.toCompletableFuture();
return completableFuture;
}
As you can see, I'm joining all CompletableFuture
of completableFutures
parameter.
I'd like to handle them as a stream of CompletableFuture
and join
them into a custom Collector
.
Something like this:
Stream<CompletableFuture<BundleEntryResponseComponent>> futures ...
CompletableFuture<List<BundleEntryResponseComponent>> allOfFuture = futures
...
.collect(???¿¿¿);
Any ideas?