Example usage for org.springframework.util.concurrent ListenableFutureCallback ListenableFutureCallback

List of usage examples for org.springframework.util.concurrent ListenableFutureCallback ListenableFutureCallback

Introduction

In this page you can find the example usage for org.springframework.util.concurrent ListenableFutureCallback ListenableFutureCallback.

Prototype

ListenableFutureCallback

Source Link

Usage

From source file:org.springframework.integration.stomp.AbstractStompSessionManager.java

@Override
public void destroy() {
    if (this.stompSessionListenableFuture != null) {
        if (this.reconnectFuture != null) {
            this.reconnectFuture.cancel(false);
            this.reconnectFuture = null;
        }/*  w w  w . ja  v a2s  .com*/
        this.stompSessionListenableFuture.addCallback(new ListenableFutureCallback<StompSession>() {

            @Override
            public void onFailure(Throwable ex) {
                AbstractStompSessionManager.this.connected = false;
            }

            @Override
            public void onSuccess(StompSession session) {
                session.disconnect();
                AbstractStompSessionManager.this.connected = false;
            }

        });
        this.stompSessionListenableFuture = null;
    }
}

From source file:org.springframework.kafka.listener.KafkaMessageListenerContainer.java

@Override
protected void doStop(final Runnable callback) {
    if (isRunning()) {
        this.listenerConsumerFuture.addCallback(new ListenableFutureCallback<Object>() {
            @Override//from www.jav a 2  s  . c  om
            public void onFailure(Throwable e) {
                KafkaMessageListenerContainer.this.logger.error("Error while stopping the container: ", e);
                if (callback != null) {
                    callback.run();
                }
            }

            @Override
            public void onSuccess(Object result) {
                if (KafkaMessageListenerContainer.this.logger.isDebugEnabled()) {
                    KafkaMessageListenerContainer.this.logger
                            .debug(KafkaMessageListenerContainer.this + " stopped normally");
                }
                if (callback != null) {
                    callback.run();
                }
            }
        });
        setRunning(false);
        this.listenerConsumer.consumer.wakeup();
    }
}

From source file:org.springframework.web.socket.sockjs.client.AbstractSockJsIntegrationTests.java

@Test
public void infoRequestFailure() throws Exception {
    TestClientHandler handler = new TestClientHandler();
    this.testFilter.sendErrorMap.put("/info", 500);
    CountDownLatch latch = new CountDownLatch(1);
    initSockJsClient(createWebSocketTransport());
    this.sockJsClient.doHandshake(handler, this.baseUrl + "/echo")
            .addCallback(new ListenableFutureCallback<WebSocketSession>() {
                @Override/*  www .  j av a2  s .c o m*/
                public void onSuccess(WebSocketSession result) {
                }

                @Override
                public void onFailure(Throwable ex) {
                    latch.countDown();
                }
            });
    assertTrue(latch.await(5000, TimeUnit.MILLISECONDS));
}

From source file:org.springframework.web.socket.sockjs.client.WebSocketTransport.java

@Override
public ListenableFuture<WebSocketSession> connect(TransportRequest request, WebSocketHandler handler) {
    final SettableListenableFuture<WebSocketSession> future = new SettableListenableFuture<>();
    WebSocketClientSockJsSession session = new WebSocketClientSockJsSession(request, handler, future);
    handler = new ClientSockJsWebSocketHandler(session);
    request.addTimeoutTask(session.getTimeoutTask());

    URI url = request.getTransportUrl();
    WebSocketHttpHeaders headers = new WebSocketHttpHeaders(request.getHandshakeHeaders());
    if (logger.isDebugEnabled()) {
        logger.debug("Starting WebSocket session on " + url);
    }//  w  w w.  j a  v  a2  s. c o m
    this.webSocketClient.doHandshake(handler, headers, url)
            .addCallback(new ListenableFutureCallback<WebSocketSession>() {
                @Override
                public void onSuccess(@Nullable WebSocketSession webSocketSession) {
                    // WebSocket session ready, SockJS Session not yet
                }

                @Override
                public void onFailure(Throwable ex) {
                    future.setException(ex);
                }
            });
    return future;
}

From source file:org.springframework.yarn.container.DefaultContainerHandlersResultsProcessor.java

@Override
public void process(List<Object> results) {
    for (Object result : results) {
        wrappedResults.add(new Result(result));
        if (result instanceof ListenableFuture<?>) {
            activeListenables.incrementAndGet();
        }/* www .j a v  a  2s. c o m*/
    }

    for (final Result wrappedResult : wrappedResults) {
        if (wrappedResult.result instanceof ListenableFuture<?>) {
            ((ListenableFuture<?>) wrappedResult.result).addCallback(new ListenableFutureCallback<Object>() {

                @Override
                public void onSuccess(Object result) {
                    if (log.isDebugEnabled()) {
                        log.info("onSuccess for " + wrappedResult + " with result=[" + result + "]");
                    }
                    wrappedResult.setResult(result);
                    activeListenables.decrementAndGet();
                    mayNotifyListener();
                }

                @Override
                public void onFailure(Throwable t) {
                    if (log.isDebugEnabled()) {
                        log.info("onFailure for " + wrappedResult + " with throwable=[" + t + "]");
                    }
                    runtimeException = new YarnSystemException("error", t);
                    activeListenables.decrementAndGet();
                    mayNotifyListener();
                }

            });

        }
    }

}