Skip to content

Instantly share code, notes, and snippets.

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@robertbraeutigam
robertbraeutigam / CompletionOrderStream.java
Last active March 24, 2020 15:41
Converting a collection of CompletableFutures to completion order Streams.
public static <T> Stream<T> inCompletionOrder(Collection<CompletableFuture<T>> futures) {
BlockingQueue<CompletableFuture<T>> queue = new LinkedBlockingQueue<>();
for (CompletableFuture<T> future: futures) {
future.whenComplete((value,exception) -> queue.add(future));
}
return Stream.generate(noException(queue::take))
.map(CompletableFuture::join)
.limit(futures.size());
}
@robertbraeutigam
robertbraeutigam / pdep
Created May 2, 2018 20:03
Small shell-script to visualize import dependencies between Java classes.
#!/bin/sh
cat >dependencies.dot <<EOF
digraph g {
graph [
rankdir = "LR"
];
node [
fontsize = "12"
fontname = "Courier"