package egovframework.rte.fdl.xml.ehcache;
import java.io.Serializable;
import java.net.URL;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheException;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CacheImpl {
private static CacheManager manager;
private static Cache cache;
private static final Logger LOGGER = LoggerFactory.getLogger(CacheImpl.class);
public CacheImpl() {
// Default constructor.
}
public CacheManager getCacheManager() {
try {
URL url = getClass().getResource("xml/ehcache.xml");
LOGGER.debug(url.toString());
manager = CacheManager.create(url);
} catch (CacheException e) {
e.printStackTrace();
}
return manager;
}
public CacheManager getCacheManager(String configFilePath) {
try {
manager = CacheManager.create(configFilePath);
LOGGER.debug("Cache Name : {}", manager.getName());
} catch (CacheException e) {
e.printStackTrace();
}
return manager;
}
/**
* Get cache using key stored name.
* @param cacheName
* @return
*/
public Cache getCache(String cacheName) {
cache = (Cache) manager.getCache(cacheName);
return cache;
}
/**
*
* @param name
* @param value
*/
public void storeCache(String name, Serializable value) throws CacheException {
Element element = new Element(name, value);
cache.put(element);
}
public Serializable retrieveCache(String name) throws CacheException {
return cache.get(name);
}
}