List of usage examples for org.springframework.util.concurrent ListenableFuture addCallback
void addCallback(SuccessCallback<? super T> successCallback, FailureCallback failureCallback);
From source file:ch.rasc.wampspring.demo.client.CallClient.java
public static void main(String[] args) throws InterruptedException { WebSocketClient webSocketClient = new StandardWebSocketClient(); JsonFactory jsonFactory = new MappingJsonFactory(new ObjectMapper()); CountDownLatch latch = new CountDownLatch(1_000_000); TestTextWebSocketHandler handler = new TestTextWebSocketHandler(jsonFactory, latch); Long[] start = new Long[1]; ListenableFuture<WebSocketSession> future = webSocketClient.doHandshake(handler, "ws://localhost:8080/wamp"); future.addCallback(wss -> { start[0] = System.currentTimeMillis(); for (int i = 0; i < 1_000_000; i++) { CallMessage callMessage = new CallMessage(UUID.randomUUID().toString(), "testService.sum", i, i + 1);// ww w . j av a2 s . c o m try { wss.sendMessage(new TextMessage(callMessage.toJson(jsonFactory))); } catch (Exception e) { System.out.println("ERROR SENDING CALLMESSAGE" + e); latch.countDown(); } } }, t -> { System.out.println("DO HANDSHAKE ERROR: " + t); System.exit(1); }); if (!latch.await(3, TimeUnit.MINUTES)) { System.out.println("SOMETHING WENT WRONG"); } System.out.println((System.currentTimeMillis() - start[0]) / 1000 + " seconds"); System.out.println("SUCCESS: " + handler.getSuccess()); System.out.println("ERROR : " + handler.getError()); }
From source file:ch.rasc.wampspring.demo.client.CallClientSockJs.java
public static void main(String[] args) throws InterruptedException { List<Transport> transports = new ArrayList<>(2); transports.add(new WebSocketTransport(new StandardWebSocketClient())); transports.add(new RestTemplateXhrTransport()); WebSocketClient webSocketClient = new SockJsClient(transports); JsonFactory jsonFactory = new MappingJsonFactory(new ObjectMapper()); CountDownLatch latch = new CountDownLatch(10_000); TestTextWebSocketHandler handler = new TestTextWebSocketHandler(jsonFactory, latch); Long[] start = new Long[1]; ListenableFuture<WebSocketSession> future = webSocketClient.doHandshake(handler, "ws://localhost:8080/wampOverSockJS"); future.addCallback(wss -> { start[0] = System.currentTimeMillis(); for (int i = 0; i < 10_000; i++) { CallMessage callMessage = new CallMessage(UUID.randomUUID().toString(), "testService.sum", i, i + 1);/*from w ww .j a v a2 s.c o m*/ try { wss.sendMessage(new TextMessage(callMessage.toJson(jsonFactory))); } catch (Exception e) { System.out.println("ERROR SENDING CALLMESSAGE" + e); latch.countDown(); } } }, t -> { System.out.println("DO HANDSHAKE ERROR: " + t); System.exit(1); }); if (!latch.await(3, TimeUnit.MINUTES)) { System.out.println("SOMETHING WENT WRONG"); } System.out.println((System.currentTimeMillis() - start[0]) / 1000 + " seconds"); System.out.println("SUCCESS: " + handler.getSuccess()); System.out.println("ERROR : " + handler.getError()); }
From source file:ch.rasc.wampspring.demo.client.Publisher.java
public static void main(String[] args) throws InterruptedException { WebSocketClient webSocketClient = new StandardWebSocketClient(); final JsonFactory jsonFactory = new MappingJsonFactory(new ObjectMapper()); final CountDownLatch welcomeLatch = new CountDownLatch(1); final CountDownLatch latch = new CountDownLatch(1_000_000); TextWebSocketHandler handler = new TextWebSocketHandler() { @Override/*from w w w.ja v a2 s.c o m*/ protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { WampMessage wampMessage = WampMessage.fromJson(jsonFactory, message.getPayload()); if (wampMessage instanceof WelcomeMessage) { latch.countDown(); } } }; Long[] start = new Long[1]; ListenableFuture<WebSocketSession> future = webSocketClient.doHandshake(handler, "ws://localhost:8080/wamp"); future.addCallback(wss -> { // Waiting for WELCOME message try { welcomeLatch.await(5, TimeUnit.SECONDS); start[0] = System.currentTimeMillis(); for (int i = 0; i < 1_000_000; i++) { PublishMessage publishMessage = new PublishMessage("/test/myqueue", i); try { wss.sendMessage(new TextMessage(publishMessage.toJson(jsonFactory))); } catch (Exception e) { System.out.println("ERROR SENDING PUBLISH_MESSAGE" + e); } latch.countDown(); } } catch (Exception e1) { System.out.println("SENDING PUBLISH MESSAGES: " + e1); } }, t -> { System.out.println("DO HANDSHAKE ERROR: " + t); System.exit(1); }); if (!latch.await(3, TimeUnit.MINUTES)) { System.out.println("SOMETHING WENT WRONG"); } System.out.println((System.currentTimeMillis() - start[0]) / 1000 + " seconds"); }
From source file:kymr.github.io.future.FutureSpringApplication.java
@Bean ApplicationRunner run() {//w ww. j av a 2s .c om /* return args -> { log.info("run()"); Future<String> f = myService.hello(); log.info("exit : {}", f.isDone()); log.info("result : {}", f.get()); }; */ return args -> { log.info("run()"); ListenableFuture<String> f = myService.hello2(); f.addCallback(s -> System.out.println(s), e -> System.out.println(e)); log.info("exit"); }; }
From source file:org.mimacom.sample.integration.patterns.user.service.integration.AsyncSearchServiceIntegration.java
public void indexUser(User user, Consumer<Void> successConsumer, Consumer<Throwable> failureConsumer) { LOG.info("going to send request to index user '{}' '{}'", user.getFirstName(), user.getLastName()); HttpEntity<User> requestEntity = new HttpEntity<>(user); ListenableFuture<ResponseEntity<String>> listenableFuture = this.asyncRestTemplate .postForEntity(this.searchServiceUrl + "/index", requestEntity, String.class); listenableFuture.addCallback(result -> { LOG.info("user '{}' '{}' was indexed and response status code was '{}'", user.getFirstName(), user.getLastName(), result.getStatusCode()); successConsumer.accept(null);/*from w ww .j a va2 s. c o m*/ }, failureConsumer::accept); }
From source file:org.mimacom.sample.integration.patterns.user.service.integration.BulkHeadedSearchServiceIntegration.java
public void indexUser(User user, Consumer<Void> successConsumer, Consumer<Throwable> failureConsumer) { LOG.info("going to send request to index user '{}' '{}'", user.getFirstName(), user.getLastName()); HttpEntity<User> requestEntity = new HttpEntity<>(user); ListenableFuture<ResponseEntity<String>> listenableFuture = this.asyncIndexRestTemplate .postForEntity(this.searchServiceUrl + "/index", requestEntity, String.class); listenableFuture.addCallback(result -> { LOG.info("user '{}' '{}' was indexed and response status code was '{}'", user.getFirstName(), user.getLastName(), result.getStatusCode()); successConsumer.accept(null);/*w w w . jav a 2 s . c om*/ }, failureConsumer::accept); }
From source file:org.mimacom.sample.integration.patterns.user.service.integration.AsyncSearchServiceIntegration.java
public void searchUserByFirstName(String firstName, Consumer<List<User>> successConsumer, Consumer<Throwable> failureConsumer) { ListenableFuture<ResponseEntity<User[]>> listenableFuture = this.asyncRestTemplate.getForEntity( this.searchServiceUrl + "/search-by-firstname?firstName={firstName}", User[].class, firstName); listenableFuture.addCallback(result -> successConsumer.accept(asList(result.getBody())), failureConsumer::accept);/*from w w w . j av a2 s .c o m*/ }
From source file:org.mimacom.sample.integration.patterns.user.service.integration.AsyncSearchServiceIntegration.java
public void indexUserSlow(User user, int waitTime, Consumer<Void> successConsumer, Consumer<Throwable> failureConsumer) { LOG.info("[SLOW!] going to send request to index user '{}' '{}'", user.getFirstName(), user.getLastName()); HttpEntity<User> requestEntity = new HttpEntity<>(user); ListenableFuture<ResponseEntity<String>> listenableFuture = this.asyncRestTemplate.postForEntity( this.searchServiceUrl + "/index?waitTime={waitTime}", requestEntity, String.class, waitTime); listenableFuture.addCallback(result -> { LOG.info("[SLOW!] user '{}' '{}' was indexed and response status code was '{}'", user.getFirstName(), user.getLastName(), result.getStatusCode()); successConsumer.accept(null);/*from w w w .j a va 2 s .co m*/ }, failureConsumer::accept); }
From source file:org.mimacom.sample.integration.patterns.user.service.integration.BulkHeadedSearchServiceIntegration.java
public void searchUserByFirstName(String firstName, Consumer<List<User>> successConsumer, Consumer<Throwable> failureConsumer) { ListenableFuture<ResponseEntity<User[]>> listenableFuture = this.asyncSearchRestTemplate.getForEntity( this.searchServiceUrl + "/search-by-firstname?firstName={firstName}", User[].class, firstName); listenableFuture.addCallback(result -> successConsumer.accept(asList(result.getBody())), failureConsumer::accept);//from w ww .ja v a 2 s .com }
From source file:org.mimacom.sample.integration.patterns.user.service.integration.BulkHeadedSearchServiceIntegration.java
public void indexUserSlow(User user, int waitTime, Consumer<Void> successConsumer, Consumer<Throwable> failureConsumer) { LOG.info("[SLOW!] going to send request to index user '{}' '{}'", user.getFirstName(), user.getLastName()); HttpEntity<User> requestEntity = new HttpEntity<>(user); ListenableFuture<ResponseEntity<String>> listenableFuture = this.asyncIndexRestTemplate.postForEntity( this.searchServiceUrl + "/index?waitTime={waitTime}", requestEntity, String.class, waitTime); listenableFuture.addCallback(result -> { LOG.info("[SLOW!] user '{}' '{}' was indexed and response status code was '{}'", user.getFirstName(), user.getLastName(), result.getStatusCode()); successConsumer.accept(null);/*from www .j av a 2 s. c o m*/ }, failureConsumer::accept); }