/** * Immediately start specified task (e.g. block returning something and throwing some exception on failure) in a * separate thread. Use {@link DeferredResult} to get the results. Meant to start operations that have to be done in * parallel. * * @param task to perform * * @return connected and deferred result of the operation already started. */ static public DeferredResult inParallel(final Task task) { final DeferredResult deferredResult = new DeferredResult(); threadPool.execute(() -> { try { deferredResult.sendSuccess(task.perform()); } catch (Exception e) { deferredResult.sendFailure(e); } }); return deferredResult; }
@Test public void success() throws Exception { DeferredResult dr = new DeferredResult(); dr.success( (text-> assertEquals("hello", text))); dr.sendSuccess("hello"); }