Class AbstractEhcacheCache

java.lang.Object
org.mybatis.caches.ehcache.AbstractEhcacheCache
All Implemented Interfaces:
org.apache.ibatis.cache.Cache
Direct Known Subclasses:
EhBlockingCache, EhcacheCache

public abstract class AbstractEhcacheCache extends Object implements org.apache.ibatis.cache.Cache
Cache adapter for Ehcache.
Author:
Simone Tripodi
  • Field Details

    • CACHE_MANAGER

      protected static net.sf.ehcache.CacheManager CACHE_MANAGER
      The cache manager reference.
    • id

      protected final String id
      The cache id (namespace).
    • cache

      protected net.sf.ehcache.Ehcache cache
      The cache instance.
  • Constructor Details

    • AbstractEhcacheCache

      public AbstractEhcacheCache(String id)
      Instantiates a new abstract ehcache cache.
      Parameters:
      id - the cache id (namespace)
  • Method Details

    • clear

      public void clear()
      Specified by:
      clear in interface org.apache.ibatis.cache.Cache
    • getId

      public String getId()
      Specified by:
      getId in interface org.apache.ibatis.cache.Cache
    • getObject

      public Object getObject(Object key)
      Specified by:
      getObject in interface org.apache.ibatis.cache.Cache
    • getSize

      public int getSize()
      Specified by:
      getSize in interface org.apache.ibatis.cache.Cache
    • putObject

      public void putObject(Object key, Object value)
      Specified by:
      putObject in interface org.apache.ibatis.cache.Cache
    • removeObject

      public Object removeObject(Object key)
      Specified by:
      removeObject in interface org.apache.ibatis.cache.Cache
    • unlock

      public void unlock(Object key)
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getReadWriteLock

      public ReadWriteLock getReadWriteLock()
      Specified by:
      getReadWriteLock in interface org.apache.ibatis.cache.Cache
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • setTimeToIdleSeconds

      public void setTimeToIdleSeconds(long timeToIdleSeconds)
      Sets the time to idle for an element before it expires. Is only used if the element is not eternal.
      Parameters:
      timeToIdleSeconds - the default amount of time to live for an element from its last accessed or modified date
    • setTimeToLiveSeconds

      public void setTimeToLiveSeconds(long timeToLiveSeconds)
      Sets the time to idle for an element before it expires. Is only used if the element is not eternal.
      Parameters:
      timeToLiveSeconds - the default amount of time to live for an element from its creation date
    • setMaxEntriesLocalHeap

      public void setMaxEntriesLocalHeap(long maxEntriesLocalHeap)
      Sets the maximum objects to be held in memory (0 = no limit).
      Parameters:
      maxEntriesLocalHeap - The maximum number of elements in heap, before they are evicted (0 == no limit)
    • setMaxEntriesLocalDisk

      public void setMaxEntriesLocalDisk(long maxEntriesLocalDisk)
      Sets the maximum number elements on Disk. 0 means unlimited.
      Parameters:
      maxEntriesLocalDisk - the maximum number of Elements to allow on the disk. 0 means unlimited.
    • setMaxBytesLocalDisk

      public void setMaxBytesLocalDisk(long maxBytesLocalDisk)
      Sets the maximum bytes to be used for the disk tier. When greater than zero the cache will overflow to disk when the heap tier is full.

      In Ehcache 2, maxBytesLocalDisk and maxEntriesLocalDisk are mutually exclusive, and the disk pool type cannot be changed on a running cache instance. This method therefore removes and recreates the underlying cache with a fresh CacheConfiguration that applies the requested byte limit while preserving the other settings (TTI, TTL, heap size, eviction policy) from the current configuration.

      Parameters:
      maxBytesLocalDisk - the maximum number of bytes to allocate on disk. 0 means no disk tier (heap-only).
    • rebuildCacheWith

      protected void rebuildCacheWith(net.sf.ehcache.config.CacheConfiguration newConfig)
      Removes the existing cache from the CacheManager and registers a new one built from newConfig. Subclasses may override this method to apply additional decorators (e.g. BlockingCache).
      Parameters:
      newConfig - the configuration to use for the replacement cache
    • setMemoryStoreEvictionPolicy

      public void setMemoryStoreEvictionPolicy(String memoryStoreEvictionPolicy)
      Sets the eviction policy. An invalid argument will set it to null.
      Parameters:
      memoryStoreEvictionPolicy - a String representation of the policy. One of "LRU", "LFU" or "FIFO".