Example usage for org.apache.http.client.cache HeaderConstants WARNING

List of usage examples for org.apache.http.client.cache HeaderConstants WARNING

Introduction

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

Prototype

String WARNING

To view the source code for org.apache.http.client.cache HeaderConstants WARNING.

Click Source Link

Usage

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

private CloseableHttpResponse generateCachedResponse(final HttpRequestWrapper request,
        final HttpContext context, final HttpCacheEntry entry, final Date now) {
    final CloseableHttpResponse cachedResponse;
    if (request.containsHeader(HeaderConstants.IF_NONE_MATCH)
            || request.containsHeader(HeaderConstants.IF_MODIFIED_SINCE)) {
        cachedResponse = responseGenerator.generateNotModifiedResponse(entry);
    } else {/*from   w  ww .j  a  v  a2  s .  c o m*/
        cachedResponse = responseGenerator.generateResponse(entry);
    }
    setResponseStatus(context, CacheResponseStatus.CACHE_HIT);
    if (validityPolicy.getStalenessSecs(entry, now) > 0L) {
        cachedResponse.addHeader(HeaderConstants.WARNING, "110 localhost \"Response is stale\"");
    }
    return cachedResponse;
}

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

private CloseableHttpResponse unvalidatedCacheHit(final HttpContext context, final HttpCacheEntry entry) {
    final CloseableHttpResponse cachedResponse = responseGenerator.generateResponse(entry);
    setResponseStatus(context, CacheResponseStatus.CACHE_HIT);
    cachedResponse.addHeader(HeaderConstants.WARNING, "111 localhost \"Revalidation failed\"");
    return cachedResponse;
}

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

CloseableHttpResponse revalidateCacheEntry(final HttpRoute route, final HttpRequestWrapper request,
        final HttpClientContext context, final HttpExecutionAware execAware, final HttpCacheEntry cacheEntry)
        throws IOException, HttpException {

    final HttpRequestWrapper conditionalRequest = conditionalRequestBuilder.buildConditionalRequest(request,
            cacheEntry);/*  www. j  a  va2s . co  m*/

    Date requestDate = getCurrentDate();
    CloseableHttpResponse backendResponse = backend.execute(route, conditionalRequest, context, execAware);
    Date responseDate = getCurrentDate();

    if (revalidationResponseIsTooOld(backendResponse, cacheEntry)) {
        backendResponse.close();
        final HttpRequestWrapper unconditional = conditionalRequestBuilder.buildUnconditionalRequest(request,
                cacheEntry);
        requestDate = getCurrentDate();
        backendResponse = backend.execute(route, unconditional, context, execAware);
        responseDate = getCurrentDate();
    }

    backendResponse.addHeader(HeaderConstants.VIA, generateViaHeader(backendResponse));

    final int statusCode = backendResponse.getStatusLine().getStatusCode();
    if (statusCode == HttpStatus.SC_NOT_MODIFIED || statusCode == HttpStatus.SC_OK) {
        recordCacheUpdate(context);
    }

    if (statusCode == HttpStatus.SC_NOT_MODIFIED) {
        final HttpCacheEntry updatedEntry = responseCache.updateCacheEntry(context.getTargetHost(), request,
                cacheEntry, backendResponse, requestDate, responseDate);
        if (suitabilityChecker.isConditional(request)
                && suitabilityChecker.allConditionalsMatch(request, updatedEntry, new Date())) {
            return responseGenerator.generateNotModifiedResponse(updatedEntry);
        }
        return responseGenerator.generateResponse(updatedEntry);
    }

    if (staleIfErrorAppliesTo(statusCode) && !staleResponseNotAllowed(request, cacheEntry, getCurrentDate())
            && validityPolicy.mayReturnStaleIfError(request, cacheEntry, responseDate)) {
        try {
            final CloseableHttpResponse cachedResponse = responseGenerator.generateResponse(cacheEntry);
            cachedResponse.addHeader(HeaderConstants.WARNING, "110 localhost \"Response is stale\"");
            return cachedResponse;
        } finally {
            backendResponse.close();
        }
    }
    return handleBackendResponse(route, conditionalRequest, context, execAware, requestDate, responseDate,
            backendResponse);
}

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   w w  w  .j  ava2  s .  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 HttpResponse unvalidatedCacheHit(final HttpCacheContext clientContext, final HttpRequestWrapper request,
        final HttpCacheEntry entry) {
    final HttpResponse cachedResponse = this.responseGenerator.generateResponse(request, entry);
    setResponseStatus(clientContext, CacheResponseStatus.CACHE_HIT);
    cachedResponse.addHeader(HeaderConstants.WARNING, "111 localhost \"Revalidation failed\"");
    return cachedResponse;
}

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

private void revalidateCacheEntryCompleted(final BasicFuture<HttpResponse> future, final HttpHost target,
        final HttpRequestWrapper request, final HttpCacheContext clientContext, final HttpCacheEntry cacheEntry,
        final HttpRequestWrapper conditionalRequest, final Date requestDate, final HttpResponse httpResponse,
        final Date responseDate) {

    httpResponse.addHeader(HeaderConstants.VIA, generateViaHeader(httpResponse));

    final int statusCode = httpResponse.getStatusLine().getStatusCode();
    if (statusCode == HttpStatus.SC_NOT_MODIFIED || statusCode == HttpStatus.SC_OK) {
        recordCacheUpdate(clientContext);
    }/*  w  ww.  j  a va2 s.  c o m*/

    if (statusCode == HttpStatus.SC_NOT_MODIFIED) {
        final HttpCacheEntry updatedEntry;
        try {
            updatedEntry = CachingHttpAsyncClient.this.responseCache.updateCacheEntry(target, request,
                    cacheEntry, httpResponse, requestDate, responseDate);
        } catch (final IOException e) {
            future.failed(e);
            return;
        }
        if (CachingHttpAsyncClient.this.suitabilityChecker.isConditional(request)
                && CachingHttpAsyncClient.this.suitabilityChecker.allConditionalsMatch(request, updatedEntry,
                        new Date())) {
            future.completed(
                    CachingHttpAsyncClient.this.responseGenerator.generateNotModifiedResponse(updatedEntry));
            return;
        }
        future.completed(CachingHttpAsyncClient.this.responseGenerator.generateResponse(request, updatedEntry));
        return;
    }

    if (staleIfErrorAppliesTo(statusCode) && !staleResponseNotAllowed(request, cacheEntry, getCurrentDate())
            && CachingHttpAsyncClient.this.validityPolicy.mayReturnStaleIfError(request, cacheEntry,
                    responseDate)) {
        final HttpResponse cachedResponse = CachingHttpAsyncClient.this.responseGenerator
                .generateResponse(request, cacheEntry);
        cachedResponse.addHeader(HeaderConstants.WARNING, "110 localhost \"Response is stale\"");
        future.completed(cachedResponse);
        return;
    }

    try {
        final CloseableHttpResponse backendResponse = handleBackendResponse(target, conditionalRequest,
                requestDate, responseDate, Proxies.enhanceResponse(httpResponse));
        future.completed(backendResponse);
    } catch (final IOException e) {
        future.failed(e);
    }
}

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

private HttpResponse revalidateCacheEntry(HttpHost target, HttpRequest request, HttpContext context,
        HttpCacheEntry entry, Date now) throws ClientProtocolException {
    log.debug("Revalidating the cache entry");

    try {/*ww  w .  j av a 2s  . com*/
        if (asynchRevalidator != null && !staleResponseNotAllowed(request, entry, now)
                && validityPolicy.mayReturnStaleWhileRevalidating(entry, now)) {
            final HttpResponse resp = responseGenerator.generateResponse(entry);
            resp.addHeader(HeaderConstants.WARNING, "110 localhost \"Response is stale\"");

            asynchRevalidator.revalidateCacheEntry(target, request, context, entry);

            return resp;
        }
        return revalidateCacheEntry(target, request, context, entry);
    } catch (IOException ioex) {
        return handleRevalidationFailure(request, context, entry, now);
    } catch (ProtocolException e) {
        throw new ClientProtocolException(e);
    }
}

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

private HttpResponse unvalidatedCacheHit(HttpContext context, HttpCacheEntry entry) {
    final HttpResponse cachedResponse = responseGenerator.generateResponse(entry);
    setResponseStatus(context, CacheResponseStatus.CACHE_HIT);
    cachedResponse.addHeader(HeaderConstants.WARNING, "111 localhost \"Revalidation failed\"");
    return cachedResponse;
}

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

HttpResponse revalidateCacheEntry(HttpHost target, HttpRequest request, HttpContext context,
        HttpCacheEntry cacheEntry) throws IOException, ProtocolException {

    HttpRequest conditionalRequest = conditionalRequestBuilder.buildConditionalRequest(request, cacheEntry);

    Date requestDate = getCurrentDate();
    HttpResponse backendResponse = backend.execute(target, conditionalRequest, context);
    Date responseDate = getCurrentDate();

    if (revalidationResponseIsTooOld(backendResponse, cacheEntry)) {
        HttpRequest unconditional = conditionalRequestBuilder.buildUnconditionalRequest(request, cacheEntry);
        requestDate = getCurrentDate();/*  ww  w. j  a v  a2  s  . co  m*/
        backendResponse = backend.execute(target, unconditional, context);
        responseDate = getCurrentDate();
    }

    backendResponse.addHeader("Via", generateViaHeader(backendResponse));

    int statusCode = backendResponse.getStatusLine().getStatusCode();
    if (statusCode == HttpStatus.SC_NOT_MODIFIED || statusCode == HttpStatus.SC_OK) {
        recordCacheUpdate(context);
    }

    if (statusCode == HttpStatus.SC_NOT_MODIFIED) {
        HttpCacheEntry updatedEntry = responseCache.updateCacheEntry(target, request, cacheEntry,
                backendResponse, requestDate, responseDate);
        if (suitabilityChecker.isConditional(request)
                && suitabilityChecker.allConditionalsMatch(request, updatedEntry, new Date())) {
            return responseGenerator.generateNotModifiedResponse(updatedEntry);
        }
        return responseGenerator.generateResponse(updatedEntry);
    }

    if (staleIfErrorAppliesTo(statusCode) && !staleResponseNotAllowed(request, cacheEntry, getCurrentDate())
            && validityPolicy.mayReturnStaleIfError(request, cacheEntry, responseDate)) {
        final HttpResponse cachedResponse = responseGenerator.generateResponse(cacheEntry);
        cachedResponse.addHeader(HeaderConstants.WARNING, "110 localhost \"Response is stale\"");
        return cachedResponse;
    }

    return handleBackendResponse(target, conditionalRequest, requestDate, responseDate, backendResponse);
}