List of usage examples for com.google.common.util.concurrent Futures addCallback
public static <V> void addCallback(ListenableFuture<V> future, FutureCallback<? super V> callback)
From source file:org.apache.bookkeeper.clients.utils.RpcUtils.java
public static <T, ReqT, RespT, ServiceT> void processRpc(ServiceT service, CompletableFuture<T> result, CreateRequestFunc<ReqT> createRequestFunc, ProcessRequestFunc<ReqT, RespT, ServiceT> processRequestFunc, ProcessResponseFunc<RespT, T> processResponseFunc) { ReqT request = createRequestFunc.apply(); ListenableFuture<RespT> resultFuture = processRequestFunc.process(service, request); Futures.addCallback(resultFuture, new FutureCallback<RespT>() { @Override// w w w .ja v a 2s .com public void onSuccess(RespT resp) { processResponseFunc.process(resp, result); } @Override public void onFailure(Throwable throwable) { GrpcUtils.processRpcException(throwable, result); } }); }
From source file:com.datastax.driver.core.ChainedResultSetFuture.java
void setSource(ResultSetFuture source) { if (this.isCancelled()) source.cancel(false);/* w ww . jav a2s .c o m*/ this.source = source; Futures.addCallback(source, new FutureCallback<ResultSet>() { @Override public void onSuccess(ResultSet result) { ChainedResultSetFuture.this.set(result); } @Override public void onFailure(Throwable t) { ChainedResultSetFuture.this.setException(t); } }); }
From source file:org.apache.bookkeeper.common.util.ListenableFutures.java
/** * Convert a {@link ListenableFuture} to a {@link CompletableFuture} and do a transformation. * * @param listenableFuture listenable future * @param mapFn a map function that transform results * @return the completable future after transformation. */// w ww . j av a2s. co m public static <T, R> CompletableFuture<R> fromListenableFuture(ListenableFuture<T> listenableFuture, Function<? super T, ? extends R> mapFn) { CompletableFuture<R> completableFuture = createFuture(); Futures.addCallback(listenableFuture, new FutureCallback<T>() { @Override public void onSuccess(T result) { try { R uResult = mapFn.apply(result); completableFuture.complete(uResult); } catch (Exception e) { completableFuture.completeExceptionally(e); } } @Override public void onFailure(Throwable t) { completableFuture.completeExceptionally(t); } }); return completableFuture; }
From source file:com.microsoft.office.integration.test.MiscellaneousAsyncTestCase.java
public void testFetch() { counter = new CountDownLatch(1); Futures.addCallback(Me.getDraftsAsync(), new FutureCallback<IFolder>() { public void onFailure(Throwable t) { reportError(t);// w w w.j a va2 s.com counter.countDown(); } public void onSuccess(IFolder drafts) { try { final IMessages messages = drafts.getMessagesAsync().get(); // actual server request for messages will be executed in this line by calling size; response will be cached final int size = messages.size(); final IMessage message = Messages.newMessage(); message.setSubject("fetch test"); Me.flush(); // verify that local cache has no changes after flush (size will return old value) assertEquals(size, messages.size()); final CountDownLatch cdl = new CountDownLatch(1); Futures.addCallback(messages.fetchAsync(), new FutureCallback<Void>() { public void onFailure(Throwable t) { reportError(t); cdl.countDown(); } public void onSuccess(Void result) { try { assertEquals(size + 1, messages.size()); Me.getMessages().delete(message.getId()); Me.flush(); } catch (Throwable t) { reportError(t); } cdl.countDown(); } }); cdl.await(); } catch (Throwable t) { reportError(t); } counter.countDown(); } }); try { if (!counter.await(60000, TimeUnit.MILLISECONDS)) { fail("testSize() timed out"); } } catch (InterruptedException e) { fail("testSize() has been interrupted"); } }
From source file:com.msopentech.o365.outlookServices.OutlookServicesMethodsImpl.java
/** * Adds default callback that send future's result back to plugin * * @param future Future to add callback to * @param context Plugin context used to send future result back to plugin * @param resolver Dependency resolver, that used to serialize future results *//*from w w w. jav a 2s .c o m*/ static <T> void addCordovaCallback(final ListenableFuture<T> future, final CallbackContext context, final DependencyResolver resolver) { Futures.addCallback(future, new FutureCallback<T>() { @Override public void onSuccess(T t) { if (t != null) { String result = resolver.getJsonSerializer().serialize(t); context.sendPluginResult(new PluginResult(PluginResult.Status.OK, result)); } else { context.sendPluginResult(new PluginResult(PluginResult.Status.OK)); } } @Override public void onFailure(Throwable throwable) { context.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, throwable.getMessage())); } }); }
From source file:org.opendaylight.netvirt.vpnmanager.TransactionUtil.java
public static <T extends DataObject> void asyncWrite(DataBroker dataBroker, LogicalDatastoreType datastoreType, InstanceIdentifier<T> path, T data, FutureCallback<Void> callback) { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); tx.put(datastoreType, path, data, true); Futures.addCallback(tx.submit(), callback); }
From source file:com.microsoft.sharepointservices.http.JavaHttpConnection.java
@Override public ListenableFuture<Response> execute(final Request request) { request.addHeader(USER_AGENT_HEADER, Platform.getUserAgent()); final SettableFuture<Response> future = SettableFuture.create(); final NetworkRunnable target = new NetworkRunnable(request, future); final NetworkThread networkThread = new NetworkThread(target) { @Override/*from www. j a v a 2 s . com*/ void releaseAndStop() { try { target.closeStreamAndConnection(); } catch (Throwable error) { } } }; Futures.addCallback(future, new FutureCallback<Response>() { @Override public void onFailure(Throwable arg0) { networkThread.releaseAndStop(); } @Override public void onSuccess(Response response) { } }); networkThread.start(); return future; }
From source file:com.microsoft.office.integration.test.NavigationPropertiesAsyncTestCase.java
public void testCreateEntityAndAccessNavigationPropertyFailure() { // succeeded if got IllegalStateException counter = new CountDownLatch(1); Futures.addCallback(Messages.newMessage().getAttachmentsAsync(), new FutureCallback<IAttachments>() { public void onFailure(Throwable t) { if (!(t instanceof IllegalStateException)) { reportError(t);//from w ww . j av a2 s . c om } counter.countDown(); } public void onSuccess(IAttachments result) { reportError(new Exception("createEntityAndAccessNavigationPropertyFailureTest failed")); counter.countDown(); } }); try { if (!counter.await(60000, TimeUnit.MILLISECONDS)) { fail("testSize() timed out"); } } catch (InterruptedException e) { fail("testSize() has been interrupted"); } }
From source file:com.orangerhymelabs.helenus.cassandra.table.ViewService.java
public void create(View view, FutureCallback<View> callback) { Futures.addCallback(create(view), callback); }
From source file:org.excalibur.core.util.concurrent.Futures2.java
public static <V> ListenableFuture<V> addCallbacks(ListenableFuture<V> future, FutureCallback<V>[] callbacks) { if (future != null && callbacks != null) { for (FutureCallback<V> callback : callbacks) { if (callback != null) { Futures.addCallback(future, callback); }/*from w w w . ja v a2 s .c o m*/ } } return future; }