package org.jooby.executor; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.ForkJoinPool; import org.jooby.exec.Exec; import org.jooby.test.ServerFeature; import org.junit.Test; import com.typesafe.config.ConfigFactory; import com.typesafe.config.ConfigValueFactory; public class ExecFeature extends ServerFeature { { use(ConfigFactory.empty().withValue("executors", ConfigValueFactory.fromAnyRef("forkjoin = 2"))); use(new Exec()); get("/forkjoin", promise((req, deferred) -> { req.require(Executor.class); req.require(ExecutorService.class); ForkJoinPool executor = req.require(ForkJoinPool.class); executor.execute(() -> { deferred.resolve(Thread.currentThread().getName()); }); })); } @Test public void forkJoinPool() throws Exception { request().get("/forkjoin").expect("forkjoin-1"); } }