org.apache.http.impl.client.cache.ehcache
Class EhcacheHttpCacheStorage

java.lang.Object
  extended by org.apache.http.impl.client.cache.ehcache.EhcacheHttpCacheStorage
All Implemented Interfaces:
HttpCacheStorage

public class EhcacheHttpCacheStorage
extends Object
implements HttpCacheStorage

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.

Since:
4.1

Constructor Summary
EhcacheHttpCacheStorage(net.sf.ehcache.Ehcache cache)
          Constructs a storage backend using the provided Ehcache with default configuration options.
EhcacheHttpCacheStorage(net.sf.ehcache.Ehcache cache, CacheConfig config)
          Constructs a storage backend using the provided Ehcache with the given configuration options.
EhcacheHttpCacheStorage(net.sf.ehcache.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.
 
Method Summary
 HttpCacheEntry getEntry(String key)
          Retrieves the cache entry stored under the given key or null if no entry exists under that key.
 void putEntry(String key, HttpCacheEntry entry)
          Store a given cache entry under the given key.
 void removeEntry(String key)
          Deletes/invalidates/removes any cache entries currently stored under the given key.
 void updateEntry(String key, HttpCacheUpdateCallback callback)
          Atomically applies the given callback to update an existing cache entry under a given key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EhcacheHttpCacheStorage

public EhcacheHttpCacheStorage(net.sf.ehcache.Ehcache cache)
Constructs a storage backend using the provided Ehcache with default configuration options.

Parameters:
cache - where to store cached origin responses

EhcacheHttpCacheStorage

public EhcacheHttpCacheStorage(net.sf.ehcache.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.

EhcacheHttpCacheStorage

public EhcacheHttpCacheStorage(net.sf.ehcache.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
Method Detail

putEntry

public void putEntry(String key,
                     HttpCacheEntry entry)
              throws IOException
Description copied from interface: HttpCacheStorage
Store a given cache entry under the given key.

Specified by:
putEntry in interface HttpCacheStorage
Parameters:
key - where in the cache to store the entry
entry - cached response to store
Throws:
IOException

getEntry

public HttpCacheEntry getEntry(String key)
                        throws IOException
Description copied from interface: HttpCacheStorage
Retrieves the cache entry stored under the given key or null if no entry exists under that key.

Specified by:
getEntry in interface HttpCacheStorage
Parameters:
key - cache key
Returns:
an HttpCacheEntry or null if no entry exists
Throws:
IOException

removeEntry

public void removeEntry(String key)
Description copied from interface: HttpCacheStorage
Deletes/invalidates/removes any cache entries currently stored under the given key.

Specified by:
removeEntry in interface HttpCacheStorage

updateEntry

public void updateEntry(String key,
                        HttpCacheUpdateCallback callback)
                 throws IOException,
                        HttpCacheUpdateException
Description copied from interface: HttpCacheStorage
Atomically applies the given callback to update an existing cache entry under a given key.

Specified by:
updateEntry in interface HttpCacheStorage
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.
Throws:
IOException
HttpCacheUpdateException


Copyright © 2010–2021 The Apache Software Foundation. All rights reserved.