private static Task<Integer> add(final int x, final int toAdd) { return callable("add " + toAdd, new Callable<Integer>() { @Override public Integer call() throws Exception { return x + toAdd; } }); }
private static Task<Integer> add(final int x, final int toAdd) { return callable("add " + toAdd, new Callable<Integer>() { @Override public Integer call() { return x + toAdd; } }); }
private Task<String> buildResult() { return callable("buildResult", new Callable<String>() { @Override public String call() { return _result.toString(); } }); }
private Task<int[]> mergePlan(final Range fstRange, final Promise<int[]> fstPromise, final Range sndRange, final Promise<int[]> sndPromise) { return callable("Merge " + fstRange + " " + sndRange, new Callable<int[]>() { @Override public int[] call() throws Exception { final int[] fst = fstPromise.get(); final int[] snd = sndPromise.get(); final int[] results = new int[fst.length + snd.length]; for (int i = 0, l = 0, r = 0; i < results.length; i++) { if (l == fst.length) results[i] = snd[r++]; else if (r == snd.length) results[i] = fst[l++]; else results[i] = fst[l] < snd[r] ? fst[l++] : snd[r++]; } return results; } }); } }
@Override protected void doRunExample(final Engine engine) throws Exception { final MockService<String> httpClient = getService(); final Task<String> fetch = fetch404Url(httpClient, "http://www.google.com"); final Task<Integer> length = callable("length", new Callable<Integer>() { @Override public Integer call() { return fetch.get().length(); } }); final Task<Integer> fetchAndLength = seq(fetch, length); engine.run(fetchAndLength); fetchAndLength.await(); System.out.println("Error while fetching url: " + fetchAndLength.getError()); ExampleUtil.printTracingResults(fetchAndLength); } }
@Override protected void doRunExample(final Engine engine) throws Exception { final MockService<String> httpClient = getService(); final Task<String> fetch = fetch404Url(httpClient, "http://www.google.com"); final Task<Integer> length = callable("length", new Callable<Integer>() { @Override public Integer call() { return fetch.getOrDefault("").length(); } }); final Task<Integer> fetchAndLength = seq(fetch, length); engine.run(fetchAndLength); fetchAndLength.await(); System.out.println("Response length: " + fetchAndLength.get()); ExampleUtil.printTracingResults(fetchAndLength); } }
@SuppressWarnings("deprecation") @Test public void testThrowableCallableWithError() throws InterruptedException { final Throwable throwable = new Throwable(); final ThrowableCallable<Integer> callable = new ThrowableCallable<Integer>() { @Override public Integer call() throws Throwable { throw throwable; } }; final Task<Integer> task = Tasks.callable("error", callable); getEngine().run(task); task.await(100, TimeUnit.MILLISECONDS); assertTrue(task.isDone()); assertTrue(task.isFailed()); assertEquals("Throwable should not be wrapped", throwable, task.getError()); assertEquals("error", task.getName()); } }
@SuppressWarnings("deprecation") @Test public void testThrowableCallableNoError() throws InterruptedException { final Integer magic = 0x5f3759df; final ThrowableCallable<Integer> callable = new ThrowableCallable<Integer>() { @Override public Integer call() throws Throwable { return magic; } }; final Task<Integer> task = Tasks.callable("magic", callable); getEngine().run(task); task.await(100, TimeUnit.MILLISECONDS); assertTrue(task.isDone()); assertFalse(task.isFailed()); assertEquals(magic, task.get()); assertEquals("magic", task.getName()); }