Example usage for org.apache.http.client.cache CacheResponseStatus CACHE_MODULE_RESPONSE

List of usage examples for org.apache.http.client.cache CacheResponseStatus CACHE_MODULE_RESPONSE

Introduction

In this page you can find the example usage for org.apache.http.client.cache CacheResponseStatus CACHE_MODULE_RESPONSE.

Prototype

CacheResponseStatus CACHE_MODULE_RESPONSE

To view the source code for org.apache.http.client.cache CacheResponseStatus CACHE_MODULE_RESPONSE.

Click Source Link

Document

The response was generated directly by the caching module.

Usage

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

public CloseableHttpResponse execute(final HttpRoute route, final HttpRequestWrapper request,
        final HttpClientContext context, final HttpExecutionAware execAware) throws IOException, HttpException {

    final HttpHost target = context.getTargetHost();
    final String via = generateViaHeader(request.getOriginal());

    // default response context
    setResponseStatus(context, CacheResponseStatus.CACHE_MISS);

    if (clientRequestsOurOptions(request)) {
        setResponseStatus(context, CacheResponseStatus.CACHE_MODULE_RESPONSE);
        return Proxies.enhanceResponse(new OptionsHttp11Response());
    }//from www  .j  a  v  a  2s. c o  m

    final HttpResponse fatalErrorResponse = getFatallyNoncompliantResponse(request, context);
    if (fatalErrorResponse != null) {
        return Proxies.enhanceResponse(fatalErrorResponse);
    }

    requestCompliance.makeRequestCompliant(request);
    request.addHeader("Via", via);

    flushEntriesInvalidatedByRequest(context.getTargetHost(), request);

    if (!cacheableRequestPolicy.isServableFromCache(request)) {
        log.debug("Request is not servable from cache");
        return callBackend(route, request, context, execAware);
    }

    final HttpCacheEntry entry = satisfyFromCache(target, request);
    if (entry == null) {
        log.debug("Cache miss");
        return handleCacheMiss(route, request, context, execAware);
    } else {
        return handleCacheHit(route, request, context, execAware, entry);
    }
}

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

private HttpResponse getFatallyNoncompliantResponse(final HttpRequestWrapper request,
        final HttpContext context) {
    HttpResponse fatalErrorResponse = null;
    final List<RequestProtocolError> fatalError = requestCompliance.requestIsFatallyNonCompliant(request);

    for (final RequestProtocolError error : fatalError) {
        setResponseStatus(context, CacheResponseStatus.CACHE_MODULE_RESPONSE);
        fatalErrorResponse = requestCompliance.getErrorForRequest(error);
    }//  w  w w  .j  a v a2s .  c o m
    return fatalErrorResponse;
}

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

private CloseableHttpResponse generateGatewayTimeout(final HttpContext context) {
    setResponseStatus(context, CacheResponseStatus.CACHE_MODULE_RESPONSE);
    return Proxies.enhanceResponse(
            new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_GATEWAY_TIMEOUT, "Gateway Timeout"));
}

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;
    }//w w  w. jav  a 2 s  . co  m

    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 HttpResponse getFatallyNoncompliantResponse(final HttpRequest request,
        final HttpCacheContext clientContext) {
    HttpResponse fatalErrorResponse = null;
    final List<RequestProtocolError> fatalError = this.requestCompliance.requestIsFatallyNonCompliant(request);

    for (final RequestProtocolError error : fatalError) {
        setResponseStatus(clientContext, CacheResponseStatus.CACHE_MODULE_RESPONSE);
        fatalErrorResponse = this.requestCompliance.getErrorForRequest(error);
    }//from  w  w  w . ja  va2s .c  om
    return fatalErrorResponse;
}

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

private HttpResponse generateGatewayTimeout(final HttpCacheContext clientContext) {
    setResponseStatus(clientContext, CacheResponseStatus.CACHE_MODULE_RESPONSE);
    return new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_GATEWAY_TIMEOUT, "Gateway Timeout");
}

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

public HttpResponse execute(HttpHost target, HttpRequest request, HttpContext context) throws IOException {

    // default response context
    setResponseStatus(context, CacheResponseStatus.CACHE_MISS);

    String via = generateViaHeader(request);

    if (clientRequestsOurOptions(request)) {
        setResponseStatus(context, CacheResponseStatus.CACHE_MODULE_RESPONSE);
        return new OptionsHttp11Response();
    }//from  w  ww .j  a va2s .c o m

    HttpResponse fatalErrorResponse = getFatallyNoncompliantResponse(request, context);
    if (fatalErrorResponse != null)
        return fatalErrorResponse;

    request = requestCompliance.makeRequestCompliant(request);
    request.addHeader("Via", via);

    flushEntriesInvalidatedByRequest(target, request);

    if (!cacheableRequestPolicy.isServableFromCache(request)) {
        return callBackend(target, request, context);
    }

    HttpCacheEntry entry = satisfyFromCache(target, request);
    if (entry == null) {
        return handleCacheMiss(target, request, context);
    }

    return handleCacheHit(target, request, context, entry);
}

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

private HttpResponse getFatallyNoncompliantResponse(HttpRequest request, HttpContext context) {
    HttpResponse fatalErrorResponse = null;
    List<RequestProtocolError> fatalError = requestCompliance.requestIsFatallyNonCompliant(request);

    for (RequestProtocolError error : fatalError) {
        setResponseStatus(context, CacheResponseStatus.CACHE_MODULE_RESPONSE);
        fatalErrorResponse = requestCompliance.getErrorForRequest(error);
    }/*ww w.j  av  a 2s . c  o m*/
    return fatalErrorResponse;
}

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

private HttpResponse generateGatewayTimeout(HttpContext context) {
    setResponseStatus(context, CacheResponseStatus.CACHE_MODULE_RESPONSE);
    return new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_GATEWAY_TIMEOUT, "Gateway Timeout");
}