Example usage for org.apache.http.concurrent BasicFuture completed

List of usage examples for org.apache.http.concurrent BasicFuture completed

Introduction

In this page you can find the example usage for org.apache.http.concurrent BasicFuture completed.

Prototype

boolean completed

To view the source code for org.apache.http.concurrent BasicFuture completed.

Click Source Link

Usage

From source file:com.ok2c.lightmtp.impl.protocol.cmd.SimpleAction.java

@Override
public Future<SMTPReply> execute(final ServerState state, final FutureCallback<SMTPReply> callback) {
    BasicFuture<SMTPReply> future = new BasicFuture<SMTPReply>(callback);
    future.completed(this.reply);
    return future;
}

From source file:com.ok2c.lightmtp.impl.protocol.cmd.AbstractAction.java

@Override
public Future<SMTPReply> execute(final T state, final FutureCallback<SMTPReply> callback) {
    synchronized (state) {
        BasicFuture<SMTPReply> future = new BasicFuture<SMTPReply>(callback);
        future.completed(internalExecute(state));
        return future;
    }//from   w w w.j ava 2 s.c  o  m
}

From source file:org.kurento.jsonrpc.internal.ws.PendingRequests.java

public void closeAllPendingRequests() {
    for (BasicFuture<Response<JsonElement>> responseFuture : pendingRequests.values()) {
        responseFuture.completed(new Response<JsonElement>(new ResponseError(0, "Conection closed")));
    }//from  w  ww .j a  v  a  2s.c o  m
    pendingRequests.clear();
}

From source file:com.ok2c.lightmtp.impl.protocol.cmd.AbstractAsyncAction.java

@Override
public Future<SMTPReply> execute(final T state, final FutureCallback<SMTPReply> callback) {
    synchronized (state) {
        SMTPReply reply = internalValidateState(state);
        if (reply != null) {
            BasicFuture<SMTPReply> future = new BasicFuture<SMTPReply>(callback);
            future.completed(reply);
            return future;
        } else {//from   w  w w.  j a  v a2 s  .  c  o  m
            return internalAsyncExecute(state, new InternalCallback(state, callback));
        }
    }
}

From source file:com.kurento.kmf.jsonrpcconnector.internal.ws.PendingRequests.java

public void handleResponse(Response<JsonElement> response) {

    BasicFuture<Response<JsonElement>> responseFuture = pendingRequests.remove(response.getId());

    if (responseFuture == null) {
        // TODO It is necessary to do something else? Who is watching this?
        log.error("Received response with an id not registered as pending request");
    } else {// w w w.  ja  v a 2s .  co m
        responseFuture.completed(response);
    }
}

From source file:org.apache.http.impl.client.cache.CachingHttpAsyncClient.java

@Override
public Future<HttpResponse> execute(final HttpHost target, final HttpRequest originalRequest,
        final HttpContext context, final FutureCallback<HttpResponse> futureCallback) {
    final BasicFuture<HttpResponse> future = new BasicFuture<HttpResponse>(futureCallback);
    final HttpRequestWrapper request = HttpRequestWrapper.wrap(originalRequest);
    final HttpCacheContext clientContext = HttpCacheContext.adapt(context);
    // default response context
    setResponseStatus(clientContext, CacheResponseStatus.CACHE_MISS);

    final String via = generateViaHeader(request);

    if (clientRequestsOurOptions(request)) {
        setResponseStatus(clientContext, CacheResponseStatus.CACHE_MODULE_RESPONSE);
        future.completed(new OptionsHttp11Response());
        return future;
    }/*from w  w  w  .  j  ava 2  s  .c om*/

    final HttpResponse fatalErrorResponse = getFatallyNoncompliantResponse(request, clientContext);
    if (fatalErrorResponse != null) {
        future.completed(fatalErrorResponse);
        return future;
    }

    try {
        this.requestCompliance.makeRequestCompliant(request);
    } catch (final ClientProtocolException e) {
        future.failed(e);
        return future;
    }
    request.addHeader(HeaderConstants.VIA, via);

    flushEntriesInvalidatedByRequest(target, request);

    if (!this.cacheableRequestPolicy.isServableFromCache(request)) {
        log.debug("Request is not servable from cache");
        callBackend(future, target, request, clientContext);
        return future;
    }

    final HttpCacheEntry entry = satisfyFromCache(target, request);
    if (entry == null) {
        log.debug("Cache miss");
        handleCacheMiss(future, target, request, clientContext);
    } else {
        try {
            handleCacheHit(future, target, request, clientContext, entry);
        } catch (final IOException e) {
            future.failed(e);
        }
    }
    return future;
}

From source file:org.apache.http.impl.client.cache.CachingHttpAsyncClient.java

private void handleCacheHit(final BasicFuture<HttpResponse> future, final HttpHost target,
        final HttpRequestWrapper request, final HttpCacheContext clientContext, final HttpCacheEntry entry)
        throws IOException {
    recordCacheHit(target, request);//from ww  w.ja va2  s.co  m
    final HttpResponse out;
    final Date now = getCurrentDate();
    if (this.suitabilityChecker.canCachedResponseBeUsed(target, request, entry, now)) {
        log.debug("Cache hit");
        out = generateCachedResponse(request, clientContext, entry, now);
    } else if (!mayCallBackend(request)) {
        log.debug("Cache entry not suitable but only-if-cached requested");
        out = generateGatewayTimeout(clientContext);
    } else if (validityPolicy.isRevalidatable(entry) && !(entry.getStatusCode() == HttpStatus.SC_NOT_MODIFIED
            && !suitabilityChecker.isConditional(request))) {
        log.debug("Revalidating cache entry");
        revalidateCacheEntry(future, target, request, clientContext, entry, now);
        return;
    } else {
        log.debug("Cache entry not usable; calling backend");
        callBackend(future, target, request, clientContext);
        return;
    }
    clientContext.setAttribute(HttpClientContext.HTTP_ROUTE, new HttpRoute(target));
    clientContext.setAttribute(HttpCoreContext.HTTP_TARGET_HOST, target);
    clientContext.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
    clientContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, out);
    clientContext.setAttribute(HttpCoreContext.HTTP_REQ_SENT, Boolean.TRUE);
    future.completed(out);
}

From source file:org.apache.http.impl.client.cache.CachingHttpAsyncClient.java

private void revalidateCacheEntry(final BasicFuture<HttpResponse> future, final HttpHost target,
        final HttpRequestWrapper request, final HttpCacheContext clientContext, final HttpCacheEntry entry,
        final Date now) throws ClientProtocolException {

    try {/*from  www.j  av  a 2s .  c  om*/
        if (this.asynchAsyncRevalidator != null && !staleResponseNotAllowed(request, entry, now)
                && this.validityPolicy.mayReturnStaleWhileRevalidating(entry, now)) {
            this.log.debug("Serving stale with asynchronous revalidation");
            final HttpResponse resp = this.responseGenerator.generateResponse(request, entry);
            resp.addHeader(HeaderConstants.WARNING, "110 localhost \"Response is stale\"");

            this.asynchAsyncRevalidator.revalidateCacheEntry(target, request, clientContext, entry);

            future.completed(resp);
            return;
        }

        final ChainedFutureCallback<HttpResponse> chainedFutureCallback = new ChainedFutureCallback<HttpResponse>(
                future) {

            @Override
            public void failed(final Exception ex) {
                if (ex instanceof IOException) {
                    super.completed(handleRevalidationFailure(request, clientContext, entry, now));
                } else {
                    super.failed(ex);
                }
            }

        };

        final BasicFuture<HttpResponse> compositeFuture = new BasicFuture<HttpResponse>(chainedFutureCallback);
        revalidateCacheEntry(compositeFuture, target, request, clientContext, entry);
    } catch (final ProtocolException e) {
        throw new ClientProtocolException(e);
    }
}

From source file:org.apache.http.impl.client.cache.CachingHttpAsyncClient.java

private void handleCacheMiss(final BasicFuture<HttpResponse> future, final HttpHost target,
        final HttpRequestWrapper request, final HttpCacheContext clientContext) {
    recordCacheMiss(target, request);//from   ww w. j  av a 2s . co m

    if (!mayCallBackend(request)) {
        future.completed(
                new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_GATEWAY_TIMEOUT, "Gateway Timeout"));
        return;
    }

    final Map<String, Variant> variants = getExistingCacheVariants(target, request);
    if (variants != null && variants.size() > 0) {
        negotiateResponseFromVariants(future, target, request, clientContext, variants);
        return;
    }

    callBackend(future, target, request, clientContext);
}