Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/cache/CacheFactory.java @ 845:797a6264b89b
Integrated the CacheCleaner for the ThematicDataCache
gnv-artifacts/trunk@961 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 20 Apr 2010 18:38:22 +0000 |
parents | feae2f9d6c6f |
children | cf421645a2d3 |
line wrap: on
line source
package de.intevation.gnv.artifacts.cache; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import org.apache.log4j.Logger; import de.intevation.gnv.geobackend.base.query.cache.CacheCleaner; import de.intevation.gnv.state.cache.ThematicDataCacheCleaner; /** * The <code>CacheFactory</code> is used to initialize and retrieve Cache. * * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a> */ public class CacheFactory { /** * the logger, used to log exceptions and additonaly information */ private static Logger log = Logger.getLogger(CacheFactory.class); private final static String CACHENAME = "artifactdata"; /** * The singleton Instance of this Factory. */ private static CacheFactory instance = null; /** * The manager of the Cache */ private CacheManager cacheManager = null; /** * The Cleaner of the Cache */ private CacheCleaner cacheCleaner = null; /** * Basic-Constructor of this Class */ private CacheFactory() { super(); } /** * This Method provides an singleton Instance of this Class. * * @return an singleton Instance of this Class */ public static CacheFactory getInstance() { if (instance == null) { instance = new CacheFactory(); } return instance; } /** * Getting the ConnectionPool * * @return the ConnectionPool */ public Cache getCache() { return this.cacheManager.getCache(CACHENAME); } /** * Initializes the ConnectionPool. Should only be called once on system * startup * * @param configurationFileName */ public void initializeCache(String configurationFileName) { if (cacheManager == null) { cacheManager = new CacheManager(configurationFileName); cacheManager.addCache(CACHENAME); this.cacheCleaner = new ThematicDataCacheCleaner(); this.cacheCleaner.start(); } } /** * Checks if the ConnectionPool has already been initialized. * * @return true if the ConnectionPool is initialized. */ public boolean isInitialized() { return this.cacheManager != null; } }