Java 类org.apache.http.client.cache.HttpCacheStorage 实例源码
项目:purecloud-iot
文件:CachingHttpClient.java
/**
* Constructs a {@code CachingHttpClient} with the given caching options
* that stores cache entries in the provided storage backend and uses
* the given {@link HttpClient} for backend requests.
* @param client used to make origin requests
* @param storage where to store cache entries
* @param config cache module options
*/
public CachingHttpClient(
final HttpClient client,
final HttpCacheStorage storage,
final CacheConfig config) {
this(client,
new BasicHttpCache(new HeapResourceFactory(), storage, config),
config);
}
项目:purecloud-iot
文件:CachingExec.java
public CachingExec(
final ClientExecChain backend,
final ResourceFactory resourceFactory,
final HttpCacheStorage storage,
final CacheConfig config) {
this(backend, new BasicHttpCache(resourceFactory, storage, config), config);
}
项目:purecloud-iot
文件:BasicHttpCache.java
public BasicHttpCache(
final ResourceFactory resourceFactory,
final HttpCacheStorage storage,
final CacheConfig config,
final CacheKeyGenerator uriExtractor,
final HttpCacheInvalidator cacheInvalidator) {
this.resourceFactory = resourceFactory;
this.uriExtractor = uriExtractor;
this.cacheEntryUpdater = new CacheEntryUpdater(resourceFactory);
this.maxObjectSizeBytes = config.getMaxObjectSize();
this.responseGenerator = new CachedHttpResponseGenerator();
this.storage = storage;
this.cacheInvalidator = cacheInvalidator;
}
项目:purecloud-iot
文件:BasicHttpCache.java
public BasicHttpCache(
final ResourceFactory resourceFactory,
final HttpCacheStorage storage,
final CacheConfig config,
final CacheKeyGenerator uriExtractor) {
this( resourceFactory, storage, config, uriExtractor,
new CacheInvalidator(uriExtractor, storage));
}
项目:purecloud-iot
文件:TestCachingExecChain.java
@SuppressWarnings("unchecked")
@Before
public void setUp() {
mockRequestPolicy = createNiceMock(CacheableRequestPolicy.class);
mockValidityPolicy = createNiceMock(CacheValidityPolicy.class);
mockBackend = createNiceMock(ClientExecChain.class);
mockCache = createNiceMock(HttpCache.class);
mockSuitabilityChecker = createNiceMock(CachedResponseSuitabilityChecker.class);
mockResponsePolicy = createNiceMock(ResponseCachingPolicy.class);
mockHandler = createNiceMock(ResponseHandler.class);
mockUriRequest = createNiceMock(HttpUriRequest.class);
mockCacheEntry = createNiceMock(HttpCacheEntry.class);
mockResponseGenerator = createNiceMock(CachedHttpResponseGenerator.class);
mockCachedResponse = createNiceMock(CloseableHttpResponse.class);
mockConditionalRequestBuilder = createNiceMock(ConditionalRequestBuilder.class);
mockConditionalRequest = createNiceMock(HttpRequest.class);
mockStatusLine = createNiceMock(StatusLine.class);
mockResponseProtocolCompliance = createNiceMock(ResponseProtocolCompliance.class);
mockRequestProtocolCompliance = createNiceMock(RequestProtocolCompliance.class);
mockStorage = createNiceMock(HttpCacheStorage.class);
config = CacheConfig.DEFAULT;
asyncValidator = new AsynchronousValidator(config);
host = new HttpHost("foo.example.com", 80);
route = new HttpRoute(host);
request = HttpRequestWrapper.wrap(new BasicHttpRequest("GET", "/stuff",
HttpVersion.HTTP_1_1));
context = HttpCacheContext.create();
context.setTargetHost(host);
entry = HttpTestUtils.makeCacheEntry();
impl = createCachingExecChain(mockBackend, mockCache, mockValidityPolicy,
mockResponsePolicy, mockResponseGenerator, mockRequestPolicy, mockSuitabilityChecker,
mockConditionalRequestBuilder, mockResponseProtocolCompliance,
mockRequestProtocolCompliance, config, asyncValidator);
}
项目:purecloud-iot
文件:TestEhcacheProtocolRequirements.java
@Override
@Before
public void setUp() {
super.setUp();
config = CacheConfig.custom().setMaxObjectSize(MAX_BYTES).build();
if (CACHE_MANAGER.cacheExists(TEST_EHCACHE_NAME)){
CACHE_MANAGER.removeCache(TEST_EHCACHE_NAME);
}
CACHE_MANAGER.addCache(TEST_EHCACHE_NAME);
final HttpCacheStorage storage = new EhcacheHttpCacheStorage(CACHE_MANAGER.getCache(TEST_EHCACHE_NAME));
mockBackend = EasyMock.createNiceMock(ClientExecChain.class);
impl = new CachingExec(mockBackend, new HeapResourceFactory(), storage, config);
}
项目:purecloud-iot
文件:TestCacheInvalidator.java
@Before
public void setUp() {
now = new Date();
tenSecondsAgo = new Date(now.getTime() - 10 * 1000L);
host = new HttpHost("foo.example.com");
mockStorage = mock(HttpCacheStorage.class);
cacheKeyGenerator = new CacheKeyGenerator();
mockEntry = mock(HttpCacheEntry.class);
request = HttpTestUtils.makeDefaultRequest();
response = HttpTestUtils.make200Response();
impl = new CacheInvalidator(cacheKeyGenerator, mockStorage);
}
项目:jira-dvcs-connector
文件:HttpClientProvider.java
private HttpCacheStorage createStorage()
{
CacheConfig config = new CacheConfig();
// if max cache entries value is not present the CacheConfig's default (CacheConfig.DEFAULT_MAX_CACHE_ENTRIES = 1000) will be used
Integer maxCacheEntries = Integer.getInteger("bitbucket.client.cache.maxentries");
if (maxCacheEntries != null)
{
config.setMaxCacheEntries(maxCacheEntries);
}
return new BasicHttpCacheStorage(config);
}
项目:purecloud-iot
文件:BasicHttpCache.java
public BasicHttpCache(
final ResourceFactory resourceFactory,
final HttpCacheStorage storage,
final CacheConfig config) {
this( resourceFactory, storage, config, new CacheKeyGenerator());
}
项目:purecloud-iot
文件:CachingHttpClientBuilder.java
public final CachingHttpClientBuilder setHttpCacheStorage(
final HttpCacheStorage storage) {
this.storage = storage;
return this;
}
项目:purecloud-iot
文件:CachingHttpClientBuilder.java
@Override
protected ClientExecChain decorateMainExec(final ClientExecChain mainExec) {
final CacheConfig config = this.cacheConfig != null ? this.cacheConfig : CacheConfig.DEFAULT;
// We copy the instance fields to avoid changing them, and rename to avoid accidental use of the wrong version
ResourceFactory resourceFactoryCopy = this.resourceFactory;
if (resourceFactoryCopy == null) {
if (this.cacheDir == null) {
resourceFactoryCopy = new HeapResourceFactory();
} else {
resourceFactoryCopy = new FileResourceFactory(cacheDir);
}
}
HttpCacheStorage storageCopy = this.storage;
if (storageCopy == null) {
if (this.cacheDir == null) {
storageCopy = new BasicHttpCacheStorage(config);
} else {
final ManagedHttpCacheStorage managedStorage = new ManagedHttpCacheStorage(config);
if (this.deleteCache) {
addCloseable(new Closeable() {
@Override
public void close() throws IOException {
managedStorage.shutdown();
}
});
} else {
addCloseable(managedStorage);
}
storageCopy = managedStorage;
}
}
final AsynchronousValidator revalidator = createAsynchronousRevalidator(config);
final CacheKeyGenerator uriExtractor = new CacheKeyGenerator();
HttpCacheInvalidator cacheInvalidator = this.httpCacheInvalidator;
if (cacheInvalidator == null) {
cacheInvalidator = new CacheInvalidator(uriExtractor, storageCopy);
}
return new CachingExec(mainExec,
new BasicHttpCache(
resourceFactoryCopy,
storageCopy, config,
uriExtractor,
cacheInvalidator), config, revalidator);
}
项目:purecloud-iot
文件:TestHttpCacheJiraNumber1147.java
@Test
public void testIssue1147() throws Exception {
final CacheConfig cacheConfig = CacheConfig.custom()
.setSharedCache(true)
.setMaxObjectSize(262144) //256kb
.build();
final ResourceFactory resourceFactory = new FileResourceFactory(cacheDir);
final HttpCacheStorage httpCacheStorage = new ManagedHttpCacheStorage(cacheConfig);
final ClientExecChain backend = mock(ClientExecChain.class);
final HttpRequestWrapper get = HttpRequestWrapper.wrap(new HttpGet("http://somehost/"));
final HttpClientContext context = HttpClientContext.create();
final HttpHost target = new HttpHost("somehost", 80);
final HttpRoute route = new HttpRoute(target);
context.setTargetHost(target);
final Date now = new Date();
final Date tenSecondsAgo = new Date(now.getTime() - 10 * 1000L);
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.setEntity(HttpTestUtils.makeBody(128));
response.setHeader("Content-Length", "128");
response.setHeader("ETag", "\"etag\"");
response.setHeader("Cache-Control", "public, max-age=3600");
response.setHeader("Last-Modified", DateUtils.formatDate(tenSecondsAgo));
when(backend.execute(
eq(route),
isA(HttpRequestWrapper.class),
isA(HttpClientContext.class),
(HttpExecutionAware) Matchers.isNull())).thenReturn(Proxies.enhanceResponse(response));
final BasicHttpCache cache = new BasicHttpCache(resourceFactory, httpCacheStorage, cacheConfig);
final ClientExecChain t = createCachingExecChain(backend, cache, cacheConfig);
final HttpResponse response1 = t.execute(route, get, context, null);
Assert.assertEquals(200, response1.getStatusLine().getStatusCode());
IOUtils.consume(response1.getEntity());
verify(backend).execute(
eq(route),
isA(HttpRequestWrapper.class),
isA(HttpClientContext.class),
(HttpExecutionAware) Matchers.isNull());
removeCache();
reset(backend);
when(backend.execute(
eq(route),
isA(HttpRequestWrapper.class),
isA(HttpClientContext.class),
(HttpExecutionAware) Matchers.isNull())).thenReturn(Proxies.enhanceResponse(response));
final HttpResponse response2 = t.execute(route, get, context, null);
Assert.assertEquals(200, response2.getStatusLine().getStatusCode());
IOUtils.consume(response2.getEntity());
verify(backend).execute(
eq(route),
isA(HttpRequestWrapper.class),
isA(HttpClientContext.class),
(HttpExecutionAware) Matchers.isNull());
}
项目:jira-dvcs-connector
文件:EtagCachingHttpClient.java
public EtagCachingHttpClient(HttpCacheStorage storage)
{
this(new DefaultHttpClient(), storage);
}
项目:jira-dvcs-connector
文件:EtagCachingHttpClient.java
public EtagCachingHttpClient(HttpClient httpClient, HttpCacheStorage storage)
{
this.backingHttpClient = httpClient;
this.storage = storage;
}
项目:purecloud-iot
文件:CachingHttpClient.java
/**
* Constructs a {@code CachingHttpClient} with the given caching options
* that stores cache entries in the provided storage backend and uses
* the given {@link HttpClient} for backend requests. However, cached
* response bodies are managed using the given {@link ResourceFactory}.
* @param client used to make origin requests
* @param resourceFactory how to manage cached response bodies
* @param storage where to store cache entries
* @param config cache module options
*/
public CachingHttpClient(
final HttpClient client,
final ResourceFactory resourceFactory,
final HttpCacheStorage storage,
final CacheConfig config) {
this(client,
new BasicHttpCache(resourceFactory, storage, config),
config);
}
项目:purecloud-iot
文件:CacheInvalidator.java
/**
* Create a new {@link CacheInvalidator} for a given {@link HttpCache} and
* {@link CacheKeyGenerator}.
*
* @param uriExtractor Provides identifiers for the keys to store cache entries
* @param storage the cache to store items away in
*/
public CacheInvalidator(
final CacheKeyGenerator uriExtractor,
final HttpCacheStorage storage) {
this.cacheKeyGenerator = uriExtractor;
this.storage = storage;
}