Class BasicHttpCache
- java.lang.Object
-
- org.apache.http.impl.client.cache.BasicHttpCache
-
-
Field Summary
Fields Modifier and Type Field Description private CacheEntryUpdater
cacheEntryUpdater
private HttpCacheInvalidator
cacheInvalidator
private org.apache.commons.logging.Log
log
private long
maxObjectSizeBytes
private ResourceFactory
resourceFactory
private CachedHttpResponseGenerator
responseGenerator
private static java.util.Set<java.lang.String>
safeRequestMethods
private HttpCacheStorage
storage
private CacheKeyGenerator
uriExtractor
-
Constructor Summary
Constructors Constructor Description BasicHttpCache()
BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config)
BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config, CacheKeyGenerator uriExtractor)
BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config, CacheKeyGenerator uriExtractor, HttpCacheInvalidator cacheInvalidator)
BasicHttpCache(CacheConfig config)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addVariantWithEtag(java.lang.String variantKey, java.lang.String variantCacheKey, java.util.Map<java.lang.String,Variant> variants)
CloseableHttpResponse
cacheAndReturnResponse(org.apache.http.HttpHost host, org.apache.http.HttpRequest request, CloseableHttpResponse originResponse, java.util.Date requestSent, java.util.Date responseReceived)
Store aHttpResponse
in the cache if possible, and returnorg.apache.http.HttpResponse
cacheAndReturnResponse(org.apache.http.HttpHost host, org.apache.http.HttpRequest request, org.apache.http.HttpResponse originResponse, java.util.Date requestSent, java.util.Date responseReceived)
Store aHttpResponse
in the cache if possible, and return(package private) HttpCacheEntry
doGetUpdatedParentEntry(java.lang.String requestId, HttpCacheEntry existing, HttpCacheEntry entry, java.lang.String variantKey, java.lang.String variantCacheKey)
void
flushCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request)
Clear all matchingHttpCacheEntry
s.void
flushInvalidatedCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request)
Clear invalidated matchingHttpCacheEntry
svoid
flushInvalidatedCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request, org.apache.http.HttpResponse response)
Clear any entries that may be invalidated by the given response to a particular request.(package private) CloseableHttpResponse
generateIncompleteResponseError(org.apache.http.HttpResponse response, Resource resource)
HttpCacheEntry
getCacheEntry(org.apache.http.HttpHost host, org.apache.http.HttpRequest request)
Retrieve matchingHttpCacheEntry
from the cache if it exists(package private) SizeLimitedResponseReader
getResponseReader(org.apache.http.HttpRequest request, CloseableHttpResponse backEndResponse)
java.util.Map<java.lang.String,Variant>
getVariantCacheEntriesWithEtags(org.apache.http.HttpHost host, org.apache.http.HttpRequest request)
Retrieve all variants from the cache, if there are no variants then an emptyMap
is returned(package private) boolean
isIncompleteResponse(org.apache.http.HttpResponse resp, Resource resource)
void
reuseVariantEntryFor(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, Variant variant)
Specifies cache should reuse the given cached variant to satisfy requests whose varying headers match those of the given client request.(package private) void
storeInCache(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, HttpCacheEntry entry)
(package private) void
storeNonVariantEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, HttpCacheEntry entry)
(package private) void
storeVariantEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, HttpCacheEntry entry)
HttpCacheEntry
updateCacheEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, HttpCacheEntry stale, org.apache.http.HttpResponse originResponse, java.util.Date requestSent, java.util.Date responseReceived)
Update aHttpCacheEntry
using a 304HttpResponse
.HttpCacheEntry
updateVariantCacheEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, HttpCacheEntry stale, org.apache.http.HttpResponse originResponse, java.util.Date requestSent, java.util.Date responseReceived, java.lang.String cacheKey)
Update a specificHttpCacheEntry
representing a cached variant using a 304HttpResponse
.
-
-
-
Field Detail
-
safeRequestMethods
private static final java.util.Set<java.lang.String> safeRequestMethods
-
uriExtractor
private final CacheKeyGenerator uriExtractor
-
resourceFactory
private final ResourceFactory resourceFactory
-
maxObjectSizeBytes
private final long maxObjectSizeBytes
-
cacheEntryUpdater
private final CacheEntryUpdater cacheEntryUpdater
-
responseGenerator
private final CachedHttpResponseGenerator responseGenerator
-
cacheInvalidator
private final HttpCacheInvalidator cacheInvalidator
-
storage
private final HttpCacheStorage storage
-
log
private final org.apache.commons.logging.Log log
-
-
Constructor Detail
-
BasicHttpCache
public BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config, CacheKeyGenerator uriExtractor, HttpCacheInvalidator cacheInvalidator)
-
BasicHttpCache
public BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config, CacheKeyGenerator uriExtractor)
-
BasicHttpCache
public BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config)
-
BasicHttpCache
public BasicHttpCache(CacheConfig config)
-
BasicHttpCache
public BasicHttpCache()
-
-
Method Detail
-
flushCacheEntriesFor
public void flushCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request) throws java.io.IOException
Description copied from interface:HttpCache
Clear all matchingHttpCacheEntry
s.- Specified by:
flushCacheEntriesFor
in interfaceHttpCache
- Throws:
java.io.IOException
-
flushInvalidatedCacheEntriesFor
public void flushInvalidatedCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request, org.apache.http.HttpResponse response)
Description copied from interface:HttpCache
Clear any entries that may be invalidated by the given response to a particular request.- Specified by:
flushInvalidatedCacheEntriesFor
in interfaceHttpCache
-
storeInCache
void storeInCache(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, HttpCacheEntry entry) throws java.io.IOException
- Throws:
java.io.IOException
-
storeNonVariantEntry
void storeNonVariantEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, HttpCacheEntry entry) throws java.io.IOException
- Throws:
java.io.IOException
-
storeVariantEntry
void storeVariantEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, HttpCacheEntry entry) throws java.io.IOException
- Throws:
java.io.IOException
-
reuseVariantEntryFor
public void reuseVariantEntryFor(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, Variant variant) throws java.io.IOException
Description copied from interface:HttpCache
Specifies cache should reuse the given cached variant to satisfy requests whose varying headers match those of the given client request.- Specified by:
reuseVariantEntryFor
in interfaceHttpCache
- Parameters:
target
- host of the upstream client requestreq
- request sent by upstream clientvariant
- variant cache entry to reuse- Throws:
java.io.IOException
- may be thrown during cache update
-
isIncompleteResponse
boolean isIncompleteResponse(org.apache.http.HttpResponse resp, Resource resource)
-
generateIncompleteResponseError
CloseableHttpResponse generateIncompleteResponseError(org.apache.http.HttpResponse response, Resource resource)
-
doGetUpdatedParentEntry
HttpCacheEntry doGetUpdatedParentEntry(java.lang.String requestId, HttpCacheEntry existing, HttpCacheEntry entry, java.lang.String variantKey, java.lang.String variantCacheKey) throws java.io.IOException
- Throws:
java.io.IOException
-
updateCacheEntry
public HttpCacheEntry updateCacheEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, HttpCacheEntry stale, org.apache.http.HttpResponse originResponse, java.util.Date requestSent, java.util.Date responseReceived) throws java.io.IOException
Description copied from interface:HttpCache
Update aHttpCacheEntry
using a 304HttpResponse
.- Specified by:
updateCacheEntry
in interfaceHttpCache
- Returns:
- the updated
HttpCacheEntry
- Throws:
java.io.IOException
-
updateVariantCacheEntry
public HttpCacheEntry updateVariantCacheEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, HttpCacheEntry stale, org.apache.http.HttpResponse originResponse, java.util.Date requestSent, java.util.Date responseReceived, java.lang.String cacheKey) throws java.io.IOException
Description copied from interface:HttpCache
Update a specificHttpCacheEntry
representing a cached variant using a 304HttpResponse
.- Specified by:
updateVariantCacheEntry
in interfaceHttpCache
- Parameters:
target
- host for client requestrequest
- actual request from upstream clientstale
- current variant cache entryoriginResponse
- 304 response received from originrequestSent
- when the validating request was sentresponseReceived
- when the validating response was receivedcacheKey
- where in the cache this entry is currently stored- Returns:
- the updated
HttpCacheEntry
- Throws:
java.io.IOException
-
cacheAndReturnResponse
public org.apache.http.HttpResponse cacheAndReturnResponse(org.apache.http.HttpHost host, org.apache.http.HttpRequest request, org.apache.http.HttpResponse originResponse, java.util.Date requestSent, java.util.Date responseReceived) throws java.io.IOException
Description copied from interface:HttpCache
Store aHttpResponse
in the cache if possible, and return- Specified by:
cacheAndReturnResponse
in interfaceHttpCache
- Returns:
- the
HttpResponse
- Throws:
java.io.IOException
-
cacheAndReturnResponse
public CloseableHttpResponse cacheAndReturnResponse(org.apache.http.HttpHost host, org.apache.http.HttpRequest request, CloseableHttpResponse originResponse, java.util.Date requestSent, java.util.Date responseReceived) throws java.io.IOException
Description copied from interface:HttpCache
Store aHttpResponse
in the cache if possible, and return- Specified by:
cacheAndReturnResponse
in interfaceHttpCache
- Returns:
- the
HttpResponse
- Throws:
java.io.IOException
-
getResponseReader
SizeLimitedResponseReader getResponseReader(org.apache.http.HttpRequest request, CloseableHttpResponse backEndResponse)
-
getCacheEntry
public HttpCacheEntry getCacheEntry(org.apache.http.HttpHost host, org.apache.http.HttpRequest request) throws java.io.IOException
Description copied from interface:HttpCache
Retrieve matchingHttpCacheEntry
from the cache if it exists- Specified by:
getCacheEntry
in interfaceHttpCache
- Returns:
- the matching
HttpCacheEntry
ornull
- Throws:
java.io.IOException
-
flushInvalidatedCacheEntriesFor
public void flushInvalidatedCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request) throws java.io.IOException
Description copied from interface:HttpCache
Clear invalidated matchingHttpCacheEntry
s- Specified by:
flushInvalidatedCacheEntriesFor
in interfaceHttpCache
- Throws:
java.io.IOException
-
getVariantCacheEntriesWithEtags
public java.util.Map<java.lang.String,Variant> getVariantCacheEntriesWithEtags(org.apache.http.HttpHost host, org.apache.http.HttpRequest request) throws java.io.IOException
Description copied from interface:HttpCache
Retrieve all variants from the cache, if there are no variants then an emptyMap
is returned- Specified by:
getVariantCacheEntriesWithEtags
in interfaceHttpCache
- Returns:
- a
Map
mapping Etags to variant cache entries - Throws:
java.io.IOException
-
addVariantWithEtag
private void addVariantWithEtag(java.lang.String variantKey, java.lang.String variantCacheKey, java.util.Map<java.lang.String,Variant> variants) throws java.io.IOException
- Throws:
java.io.IOException
-
-