Example usage for org.springframework.util.concurrent ListenableFuture get

List of usage examples for org.springframework.util.concurrent ListenableFuture get

Introduction

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

Prototype

V get() throws InterruptedException, ExecutionException;

Source Link

Document

Waits if necessary for the computation to complete, and then retrieves its result.

Usage

From source file:com.example.WebController.java

@GetMapping("/pull")
public RedirectView pull(@RequestParam("subscription1") String subscriptionName) {

    Collection<AcknowledgeablePubsubMessage> messages = this.pubSubTemplate.pull(subscriptionName, 10, true);

    if (messages.isEmpty()) {
        return buildStatusView("No messages available for retrieval.");
    }/* w w w .  j  a v a2 s.  co m*/

    RedirectView returnView;
    try {
        ListenableFuture<Void> ackFuture = this.pubSubTemplate.ack(messages);
        ackFuture.get();
        returnView = buildStatusView(String.format("Pulled and acked %s message(s)", messages.size()));
    } catch (Exception ex) {
        LOGGER.warn("Acking failed.", ex);
        returnView = buildStatusView("Acking failed");
    }

    return returnView;
}

From source file:com.example.WebController.java

@GetMapping("/multipull")
public RedirectView multipull(@RequestParam("subscription1") String subscriptionName1,
        @RequestParam("subscription2") String subscriptionName2) {

    Set<AcknowledgeablePubsubMessage> mixedSubscriptionMessages = new HashSet<>();
    mixedSubscriptionMessages.addAll(this.pubSubTemplate.pull(subscriptionName1, 1000, true));
    mixedSubscriptionMessages.addAll(this.pubSubTemplate.pull(subscriptionName2, 1000, true));

    if (mixedSubscriptionMessages.isEmpty()) {
        return buildStatusView("No messages available for retrieval.");
    }//ww  w.  j  a  v a  2s  . com

    RedirectView returnView;
    try {
        ListenableFuture<Void> ackFuture = this.pubSubTemplate.ack(mixedSubscriptionMessages);
        ackFuture.get();
        returnView = buildStatusView(
                String.format("Pulled and acked %s message(s)", mixedSubscriptionMessages.size()));
    } catch (Exception ex) {
        LOGGER.warn("Acking failed.", ex);
        returnView = buildStatusView("Acking failed");
    }

    return returnView;
}

From source file:HCNIOEngine.java

@Override
public ResponseEntity<String> submit(JCurlRequestOptions requestOptions) throws Exception {
    ResponseEntity<String> stringResponseEntity = null;
    try (CloseableHttpAsyncClient hc = createCloseableHttpAsyncClient()) {
        for (int i = 0; i < requestOptions.getCount(); i++) {
            final HttpHeaders headers = new HttpHeaders();
            for (Map.Entry<String, String> e : requestOptions.getHeaderMap().entrySet()) {
                headers.put(e.getKey(), Collections.singletonList(e.getValue()));
            }//  ww w. j av  a 2s. co m

            final HttpEntity<Void> requestEntity = new HttpEntity<>(headers);

            AsyncRestTemplate template = new AsyncRestTemplate(
                    new HttpComponentsAsyncClientHttpRequestFactory(hc));
            final ListenableFuture<ResponseEntity<String>> exchange = template.exchange(requestOptions.getUrl(),
                    HttpMethod.GET, requestEntity, String.class);
            stringResponseEntity = exchange.get();
            System.out.println(stringResponseEntity.getBody());

        }
        return stringResponseEntity;
    }
}

From source file:NNIOEngine.java

@Override
public ResponseEntity<String> submit(JCurlRequestOptions requestOptions) throws Exception {
    int ioWorkerCount = Runtime.getRuntime().availableProcessors() * 2;
    NioEventLoopGroup eventLoopGroup = new NioEventLoopGroup(ioWorkerCount);

    try {/* w  ww .j  a  v a2 s . co  m*/
        final Netty4ClientHttpRequestFactory netty4ClientHttpRequestFactory = new Netty4ClientHttpRequestFactory(
                eventLoopGroup);
        netty4ClientHttpRequestFactory.setConnectTimeout(2000);
        netty4ClientHttpRequestFactory.setReadTimeout(2000);
        /*
                    SslContext sslContext = SslContextBuilder
        .forClient()
        .sslProvider(SslProvider.JDK)
        .build()
                    ;
        */
        if (requestOptions.getUrl().toLowerCase().startsWith("https://")) {
            SslContext sslContext = new DefaultClientSslContext();
            netty4ClientHttpRequestFactory.setSslContext(sslContext);
        }
        netty4ClientHttpRequestFactory.afterPropertiesSet();

        ResponseEntity<String> stringResponseEntity = null;
        for (int i = 0; i < requestOptions.getCount(); i++) {
            final HttpHeaders headers = new HttpHeaders();
            for (Map.Entry<String, String> e : requestOptions.getHeaderMap().entrySet()) {
                headers.put(e.getKey(), Collections.singletonList(e.getValue()));
            }

            final HttpEntity<Void> requestEntity = new HttpEntity<>(headers);

            AsyncRestTemplate template = new AsyncRestTemplate(netty4ClientHttpRequestFactory);
            final ListenableFuture<ResponseEntity<String>> exchange = template.exchange(requestOptions.getUrl(),
                    HttpMethod.GET, requestEntity, String.class);
            stringResponseEntity = exchange.get();
            System.out.println(stringResponseEntity.getBody());
        }
        return stringResponseEntity;
    } finally {
        eventLoopGroup.shutdownGracefully(100, 500, TimeUnit.MILLISECONDS);
    }
}

From source file:uk.ac.ebi.ep.ebeye.EbeyeRestService.java

private EbeyeSearchResult getEbeyeSearchResult(String url) throws InterruptedException, ExecutionException {
    HttpMethod method = HttpMethod.GET;/*from ww  w  .j ava 2s.  c  o m*/

    // Define response type
    Class<EbeyeSearchResult> responseType = EbeyeSearchResult.class;

    // Define headers
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);

    HttpEntity<EbeyeSearchResult> requestEntity = new HttpEntity<>(headers);

    ListenableFuture<ResponseEntity<EbeyeSearchResult>> future = asyncRestTemplate.exchange(url, method,
            requestEntity, responseType);

    try {
        ResponseEntity<EbeyeSearchResult> results = future.get();
        return results.getBody();
    } catch (HttpClientErrorException ex) {
        LOGGER.error(ex.getMessage(), ex);
    }

    return null;
}

From source file:org.apache.servicecomb.demo.springmvc.tests.SpringMvcIntegrationTestBase.java

@Test
public void ableToQueryAtRootBasePath() throws Exception {
    ResponseEntity<String> responseEntity = restTemplate.getForEntity(baseUrl + "sayHi?name=Mike",
            String.class);

    assertThat(responseEntity.getStatusCode(), is(OK));
    assertThat(responseEntity.getBody(), is("Hi Mike"));

    responseEntity = restTemplate.getForEntity(baseUrl + "sayHi?name={name}", String.class, "? ");

    assertThat(responseEntity.getStatusCode(), is(OK));
    assertThat(responseEntity.getBody(), is("Hi ? "));

    //integration test for AsyncRestTemplate
    ListenableFuture<ResponseEntity<String>> listenableFuture = asyncRestTemplate
            .getForEntity(baseUrl + "sayHi?name=Mike", String.class);
    ResponseEntity<String> futureResponse = listenableFuture.get();
    assertThat(futureResponse.getStatusCode(), is(OK));
    assertThat(futureResponse.getBody(), is("Hi Mike"));

    listenableFuture = asyncRestTemplate.getForEntity(baseUrl + "sayHi?name={name}", String.class, "? ");
    futureResponse = listenableFuture.get();
    assertThat(futureResponse.getStatusCode(), is(OK));
    assertThat(futureResponse.getBody(), is("Hi ? "));
}

From source file:org.apache.servicecomb.demo.springmvc.tests.SpringMvcIntegrationTestBase.java

@Test
public void ableToQueryAtRootPath() throws Exception {
    ResponseEntity<String> responseEntity = restTemplate.getForEntity(baseUrl, String.class);

    assertThat(responseEntity.getStatusCode(), is(OK));
    assertThat(responseEntity.getBody(), is("Welcome home"));

    ListenableFuture<ResponseEntity<String>> listenableFuture = asyncRestTemplate.getForEntity(baseUrl,
            String.class);
    ResponseEntity<String> futureResponse = listenableFuture.get();
    assertThat(futureResponse.getStatusCode(), is(OK));
    assertThat(futureResponse.getBody(), is("Welcome home"));
}

From source file:org.apache.servicecomb.demo.springmvc.tests.SpringMvcIntegrationTestBase.java

@Test
public void ableToQueryAtNonRootPath() throws Exception {
    ResponseEntity<String> responseEntity = restTemplate.getForEntity(baseUrl + "french/bonjour?name=Mike",
            String.class);

    assertThat(responseEntity.getStatusCode(), is(OK));
    assertThat(responseEntity.getBody(), is("Bonjour Mike"));

    ListenableFuture<ResponseEntity<String>> listenableFuture = asyncRestTemplate
            .getForEntity(baseUrl + "french/bonjour?name=Mike", String.class);
    ResponseEntity<String> futureResponse = listenableFuture.get();
    assertThat(futureResponse.getStatusCode(), is(OK));
    assertThat(futureResponse.getBody(), is("Bonjour Mike"));
}

From source file:org.apache.servicecomb.demo.springmvc.tests.SpringMvcIntegrationTestBase.java

@Test
public void ableToPostMap() throws Exception {
    Map<String, User> users = new HashMap<>();
    users.put("user1", userOfNames("name11", "name12"));
    users.put("user2", userOfNames("name21", "name22"));

    ParameterizedTypeReference<Map<String, User>> reference = new ParameterizedTypeReference<Map<String, User>>() {
    };//from w  ww.  j av a 2s. c o  m
    ResponseEntity<Map<String, User>> responseEntity = restTemplate.exchange(codeFirstUrl + "testUserMap", POST,
            jsonRequest(users), reference);

    assertThat(responseEntity.getStatusCode(), is(OK));

    Map<String, User> body = responseEntity.getBody();
    assertArrayEquals(body.get("user1").getNames(), new String[] { "name11", "name12" });
    assertArrayEquals(body.get("user2").getNames(), new String[] { "name21", "name22" });

    ListenableFuture<ResponseEntity<Map<String, User>>> listenableFuture = asyncRestTemplate
            .exchange(codeFirstUrl + "testUserMap", POST, jsonRequest(users), reference);
    ResponseEntity<Map<String, User>> futureResponse = listenableFuture.get();
    assertThat(futureResponse.getStatusCode(), is(OK));
    body = futureResponse.getBody();
    assertArrayEquals(body.get("user1").getNames(), new String[] { "name11", "name12" });
    assertArrayEquals(body.get("user2").getNames(), new String[] { "name21", "name22" });
}

From source file:org.apache.servicecomb.demo.springmvc.tests.SpringMvcIntegrationTestBase.java

@Test
public void ableToConsumeTextPlain() throws Exception {
    String body = "a=1";
    String result = restTemplate.postForObject(codeFirstUrl + "textPlain", body, String.class);

    assertThat(jsonOf(result, String.class), is(body));

    HttpEntity<?> entity = new HttpEntity<>(body);
    ListenableFuture<ResponseEntity<String>> listenableFuture = asyncRestTemplate
            .postForEntity(codeFirstUrl + "textPlain", entity, String.class);
    ResponseEntity<String> responseEntity = listenableFuture.get();
    assertThat(jsonOf(responseEntity.getBody(), String.class), is(body));
}