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

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

Introduction

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

Prototype

void addCallback(SuccessCallback<? super T> successCallback, FailureCallback failureCallback);

Source Link

Document

Java 8 lambda-friendly alternative with success and failure callbacks.

Usage

From source file:org.eclipse.hawkbit.ui.rollout.rollout.DefineGroupsLayout.java

private void validateRemainingTargets() {
    resetRemainingTargetsError();//from  w  ww. j  a  v  a  2s . c o  m
    if (targetFilter == null) {
        return;
    }

    if (runningValidationsCounter.incrementAndGet() == 1) {
        final ListenableFuture<RolloutGroupsValidation> validateTargetsInGroups = rolloutManagement
                .validateTargetsInGroups(savedRolloutGroups, targetFilter, System.currentTimeMillis());
        final UI ui = UI.getCurrent();
        validateTargetsInGroups.addCallback(validation -> ui.access(() -> setGroupsValidation(validation)),
                throwable -> ui.access(() -> setGroupsValidation(null)));
        return;
    }

    runningValidationsCounter.incrementAndGet();
}

From source file:org.springframework.cloud.sleuth.instrument.async.issues.issue546.Issue546Tests.java

@RequestMapping(value = "/trace-async-rest-template")
public void asyncTest(@RequestParam(required = false) boolean isSleep) throws InterruptedException {
    log.info("(/trace-async-rest-template) I got a request!");
    final long traceId = tracer.getCurrentSpan().getTraceId();
    ListenableFuture<ResponseEntity<HogeBean>> res = traceAsyncRestTemplate
            .getForEntity("http://localhost:" + port + "/bean", HogeBean.class);
    if (isSleep) {
        Thread.sleep(1000);/*  www .ja v  a  2 s  . co  m*/
    }
    res.addCallback(success -> {
        then(Controller.this.tracer.getCurrentSpan()).hasTraceIdEqualTo(traceId);
        log.info("(/trace-async-rest-template) success");
        then(Controller.this.tracer.getCurrentSpan()).hasTraceIdEqualTo(traceId);
    }, failure -> {
        then(Controller.this.tracer.getCurrentSpan()).hasTraceIdEqualTo(traceId);
        log.error("(/trace-async-rest-template) failure", failure);
        then(Controller.this.tracer.getCurrentSpan()).hasTraceIdEqualTo(traceId);
    });
}