Class EhcacheHttpCacheStorage

  • All Implemented Interfaces:
    HttpCacheStorage

    public class EhcacheHttpCacheStorage
    extends java.lang.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

      Constructors 
      Constructor Description
      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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      HttpCacheEntry getEntry​(java.lang.String key)
      Retrieves the cache entry stored under the given key or null if no entry exists under that key.
      void putEntry​(java.lang.String key, HttpCacheEntry entry)
      Store a given cache entry under the given key.
      void removeEntry​(java.lang.String key)
      Deletes/invalidates/removes any cache entries currently stored under the given key.
      void updateEntry​(java.lang.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

        equals, 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​(java.lang.String key,
                             HttpCacheEntry entry)
                      throws java.io.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:
        java.io.IOException
      • getEntry

        public HttpCacheEntry getEntry​(java.lang.String key)
                                throws java.io.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:
        java.io.IOException
      • removeEntry

        public void removeEntry​(java.lang.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