List of usage examples for org.springframework.util.concurrent ListenableFuture addCallback
void addCallback(ListenableFutureCallback<? super T> callback);
From source file:com.curso.ejemplotareaplanificada.Principal.java
/** * @param args the command line arguments *///from w w w. j a v a2 s . co m public static void main(String[] args) { //solo estamos usando anotaciones //en esta clase no hay nada de los metodos planificados porque esos ya los llama spring solito //esta clase es para pegarnos con los servicios asincronos ApplicationContext ctx = new AnnotationConfigApplicationContext(Configuracion.class); System.out.println("Contexto cargado"); ServicioAsincrono sa = ctx.getBean(ServicioAsincrono.class); System.out.println("Hilo principal " + Thread.currentThread()); //Este metodo devuelve void asi que el hilo arranca un nuevo hilo pero continua sin esperar ni ahora ni a un futuro sa.metodoUno(); //Este metodo devuelve un futuro, y cuando llamemos a get espera 5 segundos a ver si termina el nuevo hilo //Si sobre pasa esos 5 segundos lanza una excepcion Future<Double> numero = sa.factorial(100); try { System.out.println("El factorial es desde un Future:" + numero.get(5L, TimeUnit.SECONDS)); } catch (InterruptedException | ExecutionException | TimeoutException ex) { Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex); } //Este metodo devuelve un escuchable ListenableFuture<Double> valor = sa.factorialLf(100); //Al metodo escuchable le aadimos una clase anonima de tipo llamable con dos metodos, uno que se ejecutara cuando acabe con exito //y otro si no acaba correctamente valor.addCallback(new ListenableFutureCallback<Double>() { @Override public void onSuccess(Double result) { System.out.println("El resultado es desde un ListenableFuture: " + result); } @Override public void onFailure(Throwable ex) { LOG.log(Level.SEVERE, "Ha ocurrido un error:", ex); } }); }
From source file:net.javacrumbs.futureconverter.springjava.FutureConverter.java
private static <T> CompletableFuture<T> buildCompletableFutureFromListenableFuture( final ListenableFuture<T> listenableFuture) { CompletableFuture<T> completable = new CompletableListenableFuture<T>(listenableFuture); listenableFuture.addCallback(new ListenableFutureCallback<T>() { @Override/* ww w .j a va2 s . c o m*/ public void onSuccess(T result) { completable.complete(result); } @Override public void onFailure(Throwable t) { completable.completeExceptionally(t); } }); return completable; }
From source file:net.javacrumbs.futureconverter.springrx.ListenableFutureObservable.java
private static <T> OnSubscribe<T> onSubscribe(final ListenableFuture<T> listenableFuture) { return new Observable.OnSubscribe<T>() { @Override// w w w. j a va2 s . c om public void call(final Subscriber<? super T> subscriber) { listenableFuture.addCallback(new ListenableFutureCallback<T>() { @Override public void onSuccess(T t) { if (!subscriber.isUnsubscribed()) { subscriber.onNext(t); subscriber.onCompleted(); } } @Override public void onFailure(Throwable throwable) { if (!subscriber.isUnsubscribed()) { subscriber.onError(throwable); } } }); } }; }
From source file:net.javacrumbs.futureconverter.common.test.spring.SpringConvertedFutureTestHelper.java
@Override public void addCallbackTo(ListenableFuture<String> convertedFuture) { convertedFuture.addCallback(callback); convertedFuture.addCallback(new ListenableFutureCallback<String>() { @Override/*from w w w . j a va 2 s . c o m*/ public void onSuccess(String result) { callbackCalled(); } @Override public void onFailure(Throwable t) { callbackCalled(); } }); }
From source file:com.opopov.cloud.image.utils.Utils.java
public static <T> CompletableFuture<T> fromListenableFuture(ListenableFuture<T> listenable) { CompletableFuture<T> completable = new CompletableFuture<T>() { @Override/*from w w w.jav a 2s .c o m*/ public boolean isCancelled() { return listenable.isCancelled(); } @Override public boolean cancel(boolean mayInterruptIfRunning) { //delegate cancel to the wrapped listenable boolean cancelledStatus = listenable.cancel(mayInterruptIfRunning); super.cancel(mayInterruptIfRunning); return cancelledStatus; } }; //now delegate the callbacks ListenableFutureCallback<T> callback = new ListenableFutureCallback<T>() { @Override public void onFailure(Throwable ex) { //delegate exception completable.completeExceptionally(ex); } @Override public void onSuccess(T result) { //delegate success completable.complete(result); } }; listenable.addCallback(callback); return completable; }
From source file:net.javacrumbs.futureconverter.common.test.spring.SpringConvertedFutureTestHelper.java
@Override public void waitForCalculationToFinish(ListenableFuture<String> convertedFuture) throws InterruptedException { final CountDownLatch latch = new CountDownLatch(1); convertedFuture.addCallback(new ListenableFutureCallback<String>() { @Override/* w w w. j a v a 2 s . c o m*/ public void onSuccess(String result) { latch.countDown(); } @Override public void onFailure(Throwable t) { latch.countDown(); } }); latch.await(1, TimeUnit.SECONDS); }
From source file:net.javacrumbs.completionstage.examples.SpringListenableFutureTest.java
@Test public void testTransformationFromSpring() { ListenableFuture<String> springListenableFuture = createSpringListenableFuture(); CompletableCompletionStage<Object> completionStage = factory.createCompletionStage(); springListenableFuture.addCallback(new ListenableFutureCallback<String>() { @Override/*from ww w .j a va2 s . co m*/ public void onSuccess(String result) { completionStage.complete(result); } @Override public void onFailure(Throwable t) { completionStage.completeExceptionally(t); } }); completionStage.thenAccept(System.out::println); }
From source file:org.springframework.boot.actuate.metrics.ambari.restclient.AsyncAmbariMetricsCollectorRestClient.java
@SuppressWarnings("rawtypes") public void putMetrics(TimelineMetrics metrics, ListenableFutureCallback<ResponseEntity<Map>> callback) { HttpHeaders headers = new HttpHeaders(); headers.setAccept(Arrays.asList(this.mediaType)); headers.setContentType(this.mediaType); ListenableFuture<ResponseEntity<Map>> asyncResponse = restTemplate.postForEntity( AMBARI_METRICS_COLLECTOR_URL, new HttpEntity<TimelineMetrics>(metrics, headers), Map.class, ambariMetricsCollectorHost, ambariMetricsCollectorPort); asyncResponse.addCallback(callback); }
From source file:com.linecorp.platform.channel.sample.ApiHttpClient.java
public <T> com.google.common.util.concurrent.ListenableFuture<T> getApiData(final String url, Class<T> clazz) { ListenableFuture<ResponseEntity<String>> listenableFuture = asyncRestTemplate.getForEntity(url, String.class); ApiResponseHandler<T> responseHandler = new ApiResponseHandler<>(url, clazz); listenableFuture.addCallback(responseHandler); return responseHandler; }
From source file:com.linecorp.platform.channel.sample.ApiHttpClient.java
public <T> com.google.common.util.concurrent.ListenableFuture<T> postApiData(final String url, String content, Class<T> clazz) {//ww w . java 2s . c o m HttpEntity<String> httpEntity = new HttpEntity<>(content, httpHeaders); ListenableFuture<ResponseEntity<String>> listenableFuture = asyncRestTemplate.postForEntity(url, httpEntity, String.class); ApiResponseHandler<T> responseHandler = new ApiResponseHandler<>(url, clazz); listenableFuture.addCallback(responseHandler); return responseHandler; }