Modifier and Type | Field and 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 and Description |
---|
BasicHttpCache() |
BasicHttpCache(CacheConfig config) |
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) |
Modifier and Type | Method and 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 a
HttpResponse in the cache if possible, and return |
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)
Store a
HttpResponse 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 matching
HttpCacheEntry s. |
void |
flushInvalidatedCacheEntriesFor(org.apache.http.HttpHost host,
org.apache.http.HttpRequest request)
Clear invalidated matching
HttpCacheEntry s |
void |
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 matching
HttpCacheEntry 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 empty
Map 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 a
HttpCacheEntry using a 304 HttpResponse . |
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 specific
HttpCacheEntry representing a cached variant
using a 304 HttpResponse . |
private static final java.util.Set<java.lang.String> safeRequestMethods
private final CacheKeyGenerator uriExtractor
private final ResourceFactory resourceFactory
private final long maxObjectSizeBytes
private final CacheEntryUpdater cacheEntryUpdater
private final CachedHttpResponseGenerator responseGenerator
private final HttpCacheInvalidator cacheInvalidator
private final HttpCacheStorage storage
private final org.apache.commons.logging.Log log
public BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config, CacheKeyGenerator uriExtractor, HttpCacheInvalidator cacheInvalidator)
public BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config, CacheKeyGenerator uriExtractor)
public BasicHttpCache(ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config)
public BasicHttpCache(CacheConfig config)
public BasicHttpCache()
public void flushCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request) throws java.io.IOException
HttpCache
HttpCacheEntry
s.flushCacheEntriesFor
in interface HttpCache
java.io.IOException
public void flushInvalidatedCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request, org.apache.http.HttpResponse response)
HttpCache
flushInvalidatedCacheEntriesFor
in interface HttpCache
void storeInCache(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, HttpCacheEntry entry) throws java.io.IOException
java.io.IOException
void storeNonVariantEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, HttpCacheEntry entry) throws java.io.IOException
java.io.IOException
void storeVariantEntry(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, HttpCacheEntry entry) throws java.io.IOException
java.io.IOException
public void reuseVariantEntryFor(org.apache.http.HttpHost target, org.apache.http.HttpRequest req, Variant variant) throws java.io.IOException
HttpCache
reuseVariantEntryFor
in interface HttpCache
target
- host of the upstream client requestreq
- request sent by upstream clientvariant
- variant cache entry to reusejava.io.IOException
- may be thrown during cache updateboolean isIncompleteResponse(org.apache.http.HttpResponse resp, Resource resource)
CloseableHttpResponse generateIncompleteResponseError(org.apache.http.HttpResponse response, Resource resource)
HttpCacheEntry doGetUpdatedParentEntry(java.lang.String requestId, HttpCacheEntry existing, HttpCacheEntry entry, java.lang.String variantKey, java.lang.String variantCacheKey) throws java.io.IOException
java.io.IOException
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
HttpCache
HttpCacheEntry
using a 304 HttpResponse
.updateCacheEntry
in interface HttpCache
HttpCacheEntry
java.io.IOException
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
HttpCache
HttpCacheEntry
representing a cached variant
using a 304 HttpResponse
.updateVariantCacheEntry
in interface HttpCache
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 storedHttpCacheEntry
java.io.IOException
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
HttpCache
HttpResponse
in the cache if possible, and returncacheAndReturnResponse
in interface HttpCache
HttpResponse
java.io.IOException
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
HttpCache
HttpResponse
in the cache if possible, and returncacheAndReturnResponse
in interface HttpCache
HttpResponse
java.io.IOException
SizeLimitedResponseReader getResponseReader(org.apache.http.HttpRequest request, CloseableHttpResponse backEndResponse)
public HttpCacheEntry getCacheEntry(org.apache.http.HttpHost host, org.apache.http.HttpRequest request) throws java.io.IOException
HttpCache
HttpCacheEntry
from the cache if it existsgetCacheEntry
in interface HttpCache
HttpCacheEntry
or null
java.io.IOException
public void flushInvalidatedCacheEntriesFor(org.apache.http.HttpHost host, org.apache.http.HttpRequest request) throws java.io.IOException
HttpCache
HttpCacheEntry
sflushInvalidatedCacheEntriesFor
in interface HttpCache
java.io.IOException
public java.util.Map<java.lang.String,Variant> getVariantCacheEntriesWithEtags(org.apache.http.HttpHost host, org.apache.http.HttpRequest request) throws java.io.IOException
HttpCache
Map
is returnedgetVariantCacheEntriesWithEtags
in interface HttpCache
Map
mapping Etags to variant cache entriesjava.io.IOException
private void addVariantWithEtag(java.lang.String variantKey, java.lang.String variantCacheKey, java.util.Map<java.lang.String,Variant> variants) throws java.io.IOException
java.io.IOException