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