package fr.natan.akkastreamfileprocessingapi.futurecompleteness; import scala.Option; import scala.collection.IndexedSeq; import scala.concurrent.Future; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; public class CompletableFutureBuilder { public static CompletableFuture buildcompletableFuture1(Future> futureT) { CompletableFuture completableFuture = new CompletableFuture<>(); Executors.newSingleThreadExecutor().submit(() -> { while(!futureT.isCompleted()){ TimeUnit.MILLISECONDS.sleep(300); } T task = futureT.value().get().get().get(); completableFuture.complete(task); return null; }); return completableFuture; } public static CompletableFuture> buildcompletableFuture2(Future> futureListT) { CompletableFuture> completableFuture = new CompletableFuture<>(); Executors.newSingleThreadExecutor().submit(() -> { while (!futureListT.isCompleted()) { TimeUnit.MILLISECONDS.sleep(300); } IndexedSeq task = futureListT.value().get().get(); completableFuture.complete(task); return null; }); return completableFuture; } }