Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java @ 972:0c8aca463bd4
Added caching support for the static part of the datacage.
flys-artifacts/trunk@2398 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 22 Jul 2011 16:55:36 +0000 |
parents | e07d1c3f7667 |
children |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java Fri Jul 22 11:18:00 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java Fri Jul 22 16:55:36 2011 +0000 @@ -12,6 +12,9 @@ { 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()"; @@ -26,12 +29,27 @@ 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 = Config.getStringXPath(XPATH_CACHE_CONFIG_FILE); + String configFile = getConfigFile(); if (configFile != null) { - configFile = Config.replaceConfigDir(configFile); try { cacheManager = CacheManager.create(configFile); //System.setProperty(