@Test public void testUsingAll() throws Exception { final List<Promise<Boolean>> promises = new ArrayList<>(3); final CountDownLatch latch = new CountDownLatch(1); final AtomicBoolean success = new AtomicBoolean(); final Todo todo = new Todo("write", "Write tutorial", timer.time()); final Promise<Boolean> promise = client.add(todo); promises.add(promise); promises.add(client.add(new Todo("callMom", "Call Mom", timer.time()))); promises.add(client.add(new Todo("callSis", "Call Sister", timer.time()))); Promises.all(promises).then(done -> { success.set(true); latch.countDown(); }).catchError(e -> { success.set(false); latch.countDown(); }); promises.forEach(Promise::invoke); latch.await(); assertTrue(success.get()); }
@PUT("/todo/") public void add(final Callback<Boolean> callback, final Todo todo) { todoMap.put(todo.getId(), todo); auditor.audit("add", "added new todo"); callback.resolve(true); }
TodoManagerImpl { @PUT("/todo/") public void add(final Callback<Boolean> callback, final Todo todo) { todoMap.put(todo.getId(), todo); auditor.audit("add", "added new todo"); callback.resolve(true); } }
TodoManagerImpl { @PUT("/todo/") public void add(final Callback<Boolean> callback, final Todo todo) { todoMap.put(todo.getId(), todo); auditor.audit("add", "added new todo"); callback.resolve(true); } TodoManagerImpl(final Auditor auditor); }
TodoManagerImpl { @PUT("/todo/") public void add(final Callback<Boolean> callback, final Todo todo) { todoMap.put(todo.getId(), todo); auditor.audit("add", "added new todo"); callback.resolve(true); } TodoManagerImpl(final Auditor auditor); @GET("/todo/count") int size(); @PUT("/todo/") void add(final Callback<Boolean> callback, final Todo todo); @DELETE("/todo/") void remove(final Callback<Boolean> callback,
                       @RequestParam("id") final String id); @GET("/todo/") void list(final Callback<List<Todo>> callback); @QueueCallback({QueueCallbackType.LIMIT, QueueCallbackType.EMPTY, QueueCallbackType.IDLE}) void process(); @QueueCallback({QueueCallbackType.INIT}) void init(); @QueueCallback({QueueCallbackType.SHUTDOWN}) void shutdown(); }
TodoManagerImpl { @PUT("/todo/") public void add(final Callback<Boolean> callback, final Todo todo) { todoMap.put(todo.getId(), todo); auditor.audit("add", "added new todo"); callback.resolve(true); } TodoManagerImpl(final Auditor auditor); @GET("/todo/count") int size(); @PUT("/todo/") void add(final Callback<Boolean> callback, final Todo todo); @DELETE("/todo/") void remove(final Callback<Boolean> callback,
                       @RequestParam("id") final String id); @GET("/todo/") void list(final Callback<List<Todo>> callback); @QueueCallback({QueueCallbackType.LIMIT, QueueCallbackType.EMPTY, QueueCallbackType.IDLE}) void process(); @QueueCallback({QueueCallbackType.INIT}) void init(); @QueueCallback({QueueCallbackType.SHUTDOWN}) void shutdown();  }