Quick Start

 

Products & Services

 

Training Dates

US - San Francisco
Oct 6-7, 2010
Nov 11-12, 2010
Dec 2-3, 2010
Feb 4-5, 2011

India - Delhi
Dec 2-3, 2010

See training details.

 

Blogs & Tweets

Echache Wrapper

Problem

Using the full Ehcache API can be more tedious than using just a simple value based cache (like a HashMap) because of the Element class that holds values.

Solution

Implement a simple cache wrapper to hide the use of the Element class.

Discussion

Here's a simple class you can use to simplify using Ehcache in certain simple use cases.

You can still get the Ehcache cache in case you want access to the full API.

public interface CacheWrapper<K, V>
{
  void put(K key, V value);

  V get(K key);
}

public class EhcacheWrapper<K, V> implements CacheWrapper<K, V> 
{
    private final String cacheName;
    private final CacheManager cacheManager;

    public EhcacheWrapper(final String cacheName, final CacheManager cacheManager)
    {
        this.cacheName = cacheName;
        this.cacheManager = cacheManager;
    }

    public void put(final K key, final V value)
    {
        getCache().put(new Element(key, value));
    }

    public V get(final K key, CacheEntryAdapter<V> adapter) 
    {
        Element element = getCache().get(key);
        if (element != null) {
            return (V) element.getValue();
        }
        return null;
    }

    public Ehcache getCache() 
    {
        return cacheManager.getEhcache(cacheName);
    }
}