List of usage examples for com.google.common.util.concurrent FutureCallback FutureCallback
FutureCallback
From source file:com.spotify.apollo.concurrent.Util.java
public static <T> CompletionStage<T> asStage(ListenableFuture<T> future) { CompletableFuture<T> completableFuture = new CompletableFuture<>(); Futures.addCallback(future, new FutureCallback<T>() { @Override//w w w .j av a 2s .c o m public void onSuccess(T result) { completableFuture.complete(result); } @Override public void onFailure(Throwable t) { completableFuture.completeExceptionally(t); } }); return completableFuture; }
From source file:info.archinnov.achilles.internals.futures.FutureUtils.java
public static <T> CompletableFuture<T> toCompletableFuture(ListenableFuture<T> listenableFuture, ExecutorService executor) { CompletableFuture<T> completable = new CompletableListenableFuture<>(listenableFuture); Futures.addCallback(listenableFuture, new FutureCallback<T>() { @Override/*from ww w . j ava2 s . c o m*/ public void onSuccess(T result) { completable.complete(result); } @Override public void onFailure(Throwable t) { completable.completeExceptionally(t); } }, executor); return completable; }
From source file:com.vmware.photon.controller.common.zookeeper.ServiceNodeUtils.java
public static void joinService(final ServiceNode serviceNode, final long retryIntervalMsec, final ServiceNodeEventHandler serviceNodeEventHandler) { Futures.addCallback(serviceNode.join(), new FutureCallback<ServiceNode.Lease>() { @Override/*from ww w .j a va 2 s. co m*/ public void onSuccess(ServiceNode.Lease result) { if (serviceNodeEventHandler != null) { serviceNodeEventHandler.onJoin(); } handleLeaseExpiration(result, serviceNode, retryIntervalMsec, serviceNodeEventHandler); } @Override public void onFailure(Throwable t) { // This could happen when connection to ZK goes away while we were trying to join the service. // The proper way to proceed seems to be to just try to join again, rather than exit the process. logger.error("Could not acquire service lease", t); logger.debug("Sleeping for {} before retrying", retryIntervalMsec); try { Thread.sleep(retryIntervalMsec); } catch (InterruptedException e) { logger.error("Failed to sleep between registration retries", e); } joinService(serviceNode, retryIntervalMsec, serviceNodeEventHandler); } }); }
From source file:io.bitsquare.trade.protocol.trade.taker.tasks.PayTakeOfferFee.java
public static void run(ResultHandler resultHandler, ExceptionHandler exceptionHandler, WalletService walletService, String tradeId) { log.trace("Run task"); try {//from ww w . ja v a2 s.c o m walletService.payTakeOfferFee(tradeId, new FutureCallback<Transaction>() { @Override public void onSuccess(Transaction transaction) { log.debug( "Take offer fee paid successfully. Transaction ID = " + transaction.getHashAsString()); resultHandler.onResult(transaction.getHashAsString()); } @Override public void onFailure(@NotNull Throwable t) { log.error("Take offer fee paid faultHandler.onFault with exception: " + t); exceptionHandler.handleException( new Exception("Take offer fee paid faultHandler.onFault with exception: " + t)); } }); } catch (InsufficientMoneyException e) { log.error("Take offer fee paid faultHandler.onFault due InsufficientMoneyException " + e); exceptionHandler.handleException(new Exception( "Take offer fee paid faultHandler.onFault due to InsufficientMoneyException " + e)); } }
From source file:com.spotify.heroic.metric.datastax.Async.java
/** * Helper method to convert a {@link ListenableFuture} to an {@link AsyncFuture}. *//*from ww w . j av a 2 s.co m*/ public static <T> AsyncFuture<T> bind(AsyncFramework async, ListenableFuture<T> source) { final ResolvableFuture<T> target = async.future(); Futures.addCallback(source, new FutureCallback<T>() { @Override public void onSuccess(T result) { target.resolve(result); } @Override public void onFailure(Throwable t) { target.fail(t); } }); target.onCancelled(() -> { source.cancel(false); }); return target; }
From source file:de.xaniox.heavyspleef.core.persistence.MoreFutures.java
/** * Add a callback to a {@link ListenableFuture} * to be run on the bukkit main thread/*from w ww . j a v a 2 s . com*/ * * @param plugin The plugin registering the callback * @param future The {@link ListenableFuture} to add this callback * @param callback The callback to be called */ public static <T> void addBukkitSyncCallback(final Plugin plugin, ListenableFuture<T> future, final FutureCallback<T> callback) { Futures.addCallback(future, new FutureCallback<T>() { @Override public void onFailure(final Throwable cause) { Bukkit.getScheduler().runTask(plugin, new Runnable() { @Override public void run() { callback.onFailure(cause); } }); } @Override public void onSuccess(final T result) { Bukkit.getScheduler().runTask(plugin, new Runnable() { @Override public void run() { callback.onSuccess(result); } }); } }); }
From source file:com.microsoft.office365.http.SharepointCookieCredentials.java
public static ListenableFuture<CookieCredentials> requestCredentials(String sharepointSiteUrl, Activity activity) {/*from ww w . j a va2 s .c o m*/ final SettableFuture<CookieCredentials> future = SettableFuture.create(); ListenableFuture<String> login = showLoginForCookies(activity, sharepointSiteUrl); Futures.addCallback(login, new FutureCallback<String>() { @Override public void onFailure(Throwable t) { future.setException(t); } @Override public void onSuccess(String cookies) { future.set(new CookieCredentials(cookies)); } }); return future; }
From source file:net.javacrumbs.futureconverter.guavarx.ListenableFutureObservable.java
private static <T> OnSubscribe<T> onSubscribe(final ListenableFuture<T> listenableFuture) { return new Observable.OnSubscribe<T>() { @Override//from w w w . j a v a2 s .c om public void call(final Subscriber<? super T> subscriber) { Futures.addCallback(listenableFuture, new FutureCallback<T>() { @Override public void onSuccess(T result) { if (!subscriber.isUnsubscribed()) { subscriber.onNext(result); subscriber.onCompleted(); } } @Override public void onFailure(Throwable t) { if (!subscriber.isUnsubscribed()) { subscriber.onError(t); } } }); } }; }
From source file:org.thingsboard.server.kafka.AsyncCallbackTemplate.java
public static <T> void withCallback(ListenableFuture<T> future, Consumer<T> onSuccess, Consumer<Throwable> onFailure, Executor executor) { FutureCallback<T> callback = new FutureCallback<T>() { @Override//from ww w . j a va 2s.c o m public void onSuccess(T result) { try { onSuccess.accept(result); } catch (Throwable th) { onFailure(th); } } @Override public void onFailure(Throwable t) { onFailure.accept(t); } }; if (executor != null) { Futures.addCallback(future, callback, executor); } else { Futures.addCallback(future, callback); } }
From source file:com.noorq.casser.support.Scala.java
public static <T, A> Future<Fun.Tuple2<T, A>> asFuture(ListenableFuture<T> future, A a) { final scala.concurrent.Promise<Fun.Tuple2<T, A>> promise = new DefaultPromise<Fun.Tuple2<T, A>>(); Futures.addCallback(future, new FutureCallback<T>() { @Override/* ww w .j a v a2 s .c o m*/ public void onSuccess(T result) { promise.success(new Fun.Tuple2<T, A>(result, a)); } @Override public void onFailure(Throwable t) { promise.failure(t); } }); return promise.future(); }