public class

EhcacheHttpCacheStorage

extends Object
implements HttpCacheStorage
java.lang.Object
   ↳ org.apache.http.impl.client.cache.ehcache.EhcacheHttpCacheStorage

Class Overview

This class is a storage backend for cache entries that uses the popular Ehcache cache implementation. In particular, this backend allows for spillover to disk, where the cache can be effectively larger than memory, and cached responses are paged into and out of memory from disk as needed.

N.B. Since the Ehcache is configured ahead of time with a maximum number of cache entries, this effectively ignores the maximum cache entries specified by a provided CacheConfig.

Please refer to the Ehcache documentation for details on how to configure the Ehcache itself.

Summary

Public Constructors
EhcacheHttpCacheStorage(Ehcache cache)
Constructs a storage backend using the provided Ehcache with default configuration options.
EhcacheHttpCacheStorage(Ehcache cache, CacheConfig config)
Constructs a storage backend using the provided Ehcache with the given configuration options.
EhcacheHttpCacheStorage(Ehcache cache, CacheConfig config, HttpCacheEntrySerializer serializer)
Constructs a storage backend using the provided Ehcache with the given configuration options, but using an alternative cache entry serialization strategy.
Public Methods
synchronized HttpCacheEntry getEntry(String key)
Retrieves the cache entry stored under the given key or null if no entry exists under that key.
synchronized void putEntry(String key, HttpCacheEntry entry)
Store a given cache entry under the given key.
synchronized void removeEntry(String key)
Deletes/invalidates/removes any cache entries currently stored under the given key.
synchronized void updateEntry(String key, HttpCacheUpdateCallback callback)
Atomically applies the given callback to update an existing cache entry under a given key.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.http.client.cache.HttpCacheStorage

Public Constructors

public EhcacheHttpCacheStorage (Ehcache cache)

Constructs a storage backend using the provided Ehcache with default configuration options.

Parameters
cache where to store cached origin responses

public EhcacheHttpCacheStorage (Ehcache cache, CacheConfig config)

Constructs a storage backend using the provided Ehcache with the given configuration options.

Parameters
cache where to store cached origin responses
config cache storage configuration options - note that the setting for max object size will be ignored and should be configured in the Ehcache instead.

public EhcacheHttpCacheStorage (Ehcache cache, CacheConfig config, HttpCacheEntrySerializer serializer)

Constructs a storage backend using the provided Ehcache with the given configuration options, but using an alternative cache entry serialization strategy.

Parameters
cache where to store cached origin responses
config cache storage configuration options - note that the setting for max object size will be ignored and should be configured in the Ehcache instead.
serializer alternative serialization mechanism

Public Methods

public synchronized HttpCacheEntry getEntry (String key)

Retrieves the cache entry stored under the given key or null if no entry exists under that key.

Parameters
key cache key
Returns
Throws
IOException

public synchronized void putEntry (String key, HttpCacheEntry entry)

Store a given cache entry under the given key.

Parameters
key where in the cache to store the entry
entry cached response to store
Throws
IOException

public synchronized void removeEntry (String key)

Deletes/invalidates/removes any cache entries currently stored under the given key.

public synchronized void updateEntry (String key, HttpCacheUpdateCallback callback)

Atomically applies the given callback to update an existing cache entry under a given key.

Parameters
key indicates which entry to modify
callback performs the update; see HttpCacheUpdateCallback for details, but roughly the callback expects to be handed the current entry and will return the new value for the entry.