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(

http://dive4elements.wald.intevation.org