Example usage for org.apache.http.client.cache HttpCacheContext setAttribute

List of usage examples for org.apache.http.client.cache HttpCacheContext setAttribute

Introduction

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

Prototype

public void setAttribute(String str, Object obj) 

Source Link

Usage

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);//  w  w w.  ja  v a  2  s  . c o  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 setResponseStatus(final HttpCacheContext clientContext, final CacheResponseStatus value) {
    if (clientContext != null) {
        clientContext.setAttribute(HttpCacheContext.CACHE_RESPONSE_STATUS, value);
    }/*from   w w  w .  ja v a 2 s .c  o m*/
}