ref #8505 adapting taxeditor to changes in ConfigFileUtil
[taxeditor.git] / eu.etaxonomy.taxeditor.cdmlib / src / main / java / eu / etaxonomy / cdm / api / cache / CdmServiceCacher.java
index 45402dab7628047f56ee9b4e9d53c2c2ad418883..e01ed86a9ef9f1aa30047bb89d8a40335fa285c5 100644 (file)
@@ -3,6 +3,7 @@ package eu.etaxonomy.cdm.api.cache;
 import java.io.File;
 import java.util.UUID;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
@@ -10,10 +11,10 @@ import eu.etaxonomy.cdm.api.config.EhCacheConfiguration;
 import eu.etaxonomy.cdm.cache.CacheLoader;
 import eu.etaxonomy.cdm.cache.CdmEntityCacheKey;
 import eu.etaxonomy.cdm.cache.CdmTransientEntityCacher;
-import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.config.ConfigFileUtil;
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.common.TermBase;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermBase;
 import eu.etaxonomy.taxeditor.service.TermServiceRequestExecutor;
 import eu.etaxonomy.taxeditor.session.CdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
@@ -42,6 +43,9 @@ public class CdmServiceCacher extends CdmCacher implements ICdmEntitySessionMana
 
     private CacheLoader cacheLoader;
 
+    @Autowired
+    ConfigFileUtil configFileUtil = null;
+
     @Override
     protected void setup() {
 
@@ -59,7 +63,18 @@ public class CdmServiceCacher extends CdmCacher implements ICdmEntitySessionMana
         EhCacheConfiguration cacheConfig = new EhCacheConfiguration();
 
         DiskStoreConfiguration diskStoreConfiguration = new DiskStoreConfiguration();
-        File ehcacheFolder = CdmUtils.getCdmHomeSubDir("taxeditor-ehcache");
+        File ehcacheFolder = null;
+        if(configFileUtil != null){
+            try {
+                ehcacheFolder = configFileUtil.getCdmHomeSubDir("taxeditor-ehcache");
+            } catch (Exception e){
+                logger.warn("Cannot determine CdmHomeSubDir for ./taxeditor-ehcache, will use fallback method.", e);
+            }
+        }
+        if(ehcacheFolder != null){
+            ehcacheFolder = ConfigFileUtil.getCdmHomeSubDirFallback("taxeditor-ehcache");
+        }
+
         // FIXME use subfolder per taxeditor version to allow running multiple installations in parallel
         // String taxEditorVersion = ..;
         // File ehcacheFolder = new File(ehcacheFolder, taxEditorVersion);