Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java @ 4496:d8992459b408
Add method to return the facets of an artifact
This methos should be used to get the facets of an artifact instead of accessing
the facets member variable directly.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Wed, 14 Nov 2012 11:11:04 +0100 |
parents | 0c8aca463bd4 |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.cache; import de.intevation.artifacts.common.utils.Config; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheException; import net.sf.ehcache.CacheManager; import org.apache.log4j.Logger; public final class CacheFactory { private static Logger log = Logger.getLogger(CacheFactory.class); public static final String CACHE_CONFIG_FILE_PROPERTY = "flys.artifacts.cache.config.file"; public static final String XPATH_CACHE_CONFIG_FILE = "/artifact-database/cache/config-file/text()"; private CacheFactory() { } private static boolean initialized; private static CacheManager cacheManager; public static final Cache getCache() { return getCache(Cache.DEFAULT_CACHE_NAME); } public static final String getConfigFile() { String configFile = System.getProperty(CACHE_CONFIG_FILE_PROPERTY); if (configFile != null) { return configFile; } configFile = Config.getStringXPath(XPATH_CACHE_CONFIG_FILE); if (configFile != null) { configFile = Config.replaceConfigDir(configFile); } return configFile; } public static final synchronized Cache getCache(String cacheName) { if (!initialized) { initialized = true; // try only once String configFile = getConfigFile(); if (configFile != null) { try { cacheManager = CacheManager.create(configFile); //System.setProperty( // "net.sf.ehcache.enableShutdownHook", "true"); Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { log.info("shutting down caches"); for (String name: cacheManager.getCacheNames()) { log.info("\tflushing '" + name + "'"); cacheManager.getCache(name).flush(); } cacheManager.shutdown(); } }); } catch (CacheException ce) { log.error("cannot configure cache", ce); } } } return cacheManager != null ? cacheManager.getCache(cacheName) : null; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :