Merge branch 'hotfix/3.12.4' into develop
[taxeditor.git] / eu.etaxonomy.taxeditor.cdmlib / src / main / java / eu / etaxonomy / cdm / api / cache / CdmServiceCacher.java
index aecb9d8332d240fd553f4e786eda60d24dfbfbd5..dcfff9f24c6ce8ad71b32bbab38ca1125394aa88 100644 (file)
@@ -5,12 +5,12 @@ import java.util.UUID;
 import net.sf.ehcache.config.CacheConfiguration;
 import net.sf.ehcache.config.SizeOfPolicyConfiguration;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.TermBase;
 import eu.etaxonomy.taxeditor.remoting.cache.CacheLoader;
 import eu.etaxonomy.taxeditor.remoting.cache.CdmEntityCacheKey;
 import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
@@ -23,7 +23,7 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
 /**
  * Class which uses CDM services to cache cdm entities
  *
- * FIXME: Currently only handles terms entities. It would be
+ * FIXME: Currently only handles term entities. It would be
  *        interesting to have a generic method which finds the
  *        correct service to load / cache the entity.
  *
@@ -34,8 +34,6 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
 @Component
 public class CdmServiceCacher extends CdmCacher  implements ICdmEntitySessionManagerObserver {
 
-    @Autowired
-    ITermService termService;
 
 
     private ICdmEntitySessionManager cdmEntitySessionManager;
@@ -49,6 +47,7 @@ public class CdmServiceCacher extends CdmCacher  implements ICdmEntitySessionMan
         DefinedTermBase.setCacher(this);
         CdmTransientEntityCacher.setDefaultCacher(this);
         TermServiceRequestExecutor.setDefaultCacher(this);
+
         cacheLoader = new CacheLoader(this);
     }
 
@@ -72,16 +71,14 @@ public class CdmServiceCacher extends CdmCacher  implements ICdmEntitySessionMan
 
     @Override
     protected CdmBase findByUuid(UUID uuid) {
-        CdmBase term = termService.findWithoutFlush(uuid);
+        CdmBase term = CdmApplicationState.getCurrentAppConfig().getTermService().findWithoutFlush(uuid);
         return load(term);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.model.ICdmCacher#isCachable(eu.etaxonomy.cdm.model.common.CdmBase)
-     */
     @Override
     public boolean isCachable(CdmBase cdmEntity) {
-        if(cdmEntity != null && cdmEntity instanceof DefinedTermBase) {
+     //   if(cdmEntity != null && cdmEntity instanceof DefinedTermBase) {
+          if(cdmEntity != null && cdmEntity instanceof TermBase) {
             return true;
         }
         return false;
@@ -132,7 +129,7 @@ public class CdmServiceCacher extends CdmCacher  implements ICdmEntitySessionMan
         CdmBase cachedCdmEntity = getFromCache(cdmEntity.getUuid());
 
         if(isCachable(cdmEntity) && cachedCdmEntity == null) {
-            cachedCdmEntity =  cacheLoader.load(cdmEntity, true, true);
+            cachedCdmEntity =  cacheLoader.load(cdmEntity, false, true);
         }
         return cachedCdmEntity;
     }