Author: knguyen
Date: Wed Aug 16 18:37:38 2006
New Revision: 14921

URL: https://svndev.jahia.net/websvn/listing.php?sc=1&rev=14921&repname=jahia
Log:
more caches on jahiaobject access

Modified:
    trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
    
trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java
    trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml

Modified: 
trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java&rev=14921&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java 
(original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java Wed 
Aug 16 18:37:38 2006
@@ -164,6 +164,7 @@
                 try {
                     delegate =
                     
convertJahiaObjectToJahiaObjectDelegate(ObjectKey.getInstance(hibJahiaObject.getComp_id().getKey()),
 hibJahiaObject);
+                    addJahiaObjectDelegateInCache(delegate);
                     result.add(delegate);
                 } catch (Throwable t) {
                 }
@@ -197,6 +198,7 @@
             try {
                 jahiaObjectDelegate = 
convertJahiaObjectToJahiaObjectDelegate(jObj.toJahiaObject().getObjectKey(),jObj);
                 if ( jahiaObjectDelegate != null ){
+                    addJahiaObjectDelegateInCache(jahiaObjectDelegate);
                     retList.add(jahiaObjectDelegate);
                 }
             } catch ( Throwable t ){
@@ -206,15 +208,33 @@
     }
 
     public org.jahia.content.JahiaObject getJahiaObject(ObjectKey key) {
-        JahiaObject hibJahiaObject = dao.findByPK(new 
JahiaObjectPK(key.getType(),new Integer(key.getIDInType())));
-        if ( hibJahiaObject != null ){
+
+        org.jahia.content.JahiaObject jahiaObject = null;
+        if(cache==null) {
             try {
-                return hibJahiaObject.toJahiaObject();
-            } catch ( Throwable t){
-                log.debug("Error loading JahiaObject", t);
+                cache = cacheService.createCacheInstance(CACHE_NAME);
+            } catch (JahiaInitializationException e) {
+                e.printStackTrace();  //To change body of catch statement use 
File | Settings | File Templates.
             }
         }
-        return null;
+        String entryKey = CACHE_KEY_PREFIX + key;
+        if(cache!=null) {
+            jahiaObject = (org.jahia.content.JahiaObject) cache.get(entryKey);
+        }
+        if(jahiaObject==null) {
+            JahiaObject hibJahiaObject = dao.findByPK(new 
JahiaObjectPK(key.getType(),new Integer(key.getIDInType())));
+            if ( hibJahiaObject != null ){
+                try {
+                    jahiaObject = hibJahiaObject.toJahiaObject();
+                } catch ( Throwable t){
+                    log.debug("Error loading JahiaObject", t);
+                }
+                if(jahiaObject!=null){
+                    cache.put(entryKey,jahiaObject);
+                }
+            }
+        }
+        return jahiaObject;
     }
 
     public void delete(ObjectKey key) {
@@ -250,6 +270,24 @@
         return jahiaObjectDelegate;
     }
 
+    public void addJahiaObjectDelegateInCache(JahiaObjectDelegate 
jahiaObjectDelegate){
+        if ( jahiaObjectDelegate == null ){
+            return;
+        }
+        if(cache==null) {
+            try {
+                cache = cacheService.createCacheInstance(CACHE_NAME);
+            } catch (JahiaInitializationException e) {
+                e.printStackTrace();  //To change body of catch statement use 
File | Settings | File Templates.
+            }
+        }
+        String entryKey = OBJECTDELEGATE_KEY_PREFIX + 
jahiaObjectDelegate.getObjectKey();
+        if(cache!=null) {
+            cache.put(entryKey,jahiaObjectDelegate);
+            jahiaObjectDelegate = (JahiaObjectDelegate) cache.get(entryKey);
+        }
+    }
+
     /**
      * Returns the JahiaObjectDelegate instance that owns the given rule
      * @param ruleId
@@ -261,8 +299,10 @@
             return null;
         }
         try {
-            return 
convertJahiaObjectToJahiaObjectDelegate(hibJahiaObject.getComp_id().toObjectKey(),
+            JahiaObjectDelegate delegate = 
convertJahiaObjectToJahiaObjectDelegate(hibJahiaObject.getComp_id().toObjectKey(),
                 hibJahiaObject);
+            addJahiaObjectDelegateInCache(delegate);
+            return delegate;
         } catch ( Throwable t){
             logger.debug("Error converting JahiaObject to 
JahiaObjectDelegate",t);
         }
@@ -271,6 +311,7 @@
 
     public void save(JahiaObjectDelegate delegate){
         JahiaObject hibJahiaObject = null;
+
         try {
             hibJahiaObject = dao.findByPK(new 
JahiaObjectPK(delegate.getObjectKey().getType(),
                     new Integer(delegate.getObjectKey().getIDInType())));
@@ -407,8 +448,8 @@
     public void flushCache(JahiaObjectPK key) {
         if(cache != null) {
             synchronized(cache){
-                cache.remove(CACHE_KEY_PREFIX+key);
                 try {
+                    cache.remove(CACHE_KEY_PREFIX+key.toObjectKey());
                     cache.remove(OBJECTDELEGATE_KEY_PREFIX+key.toObjectKey());
                 } catch (ClassNotFoundException e) {
                     e.printStackTrace();  //To change body of catch statement 
use File | Settings | File Templates.

Modified: 
trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java&rev=14921&repname=jahia
==============================================================================
--- 
trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java 
(original)
+++ 
trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java 
Wed Aug 16 18:37:38 2006
@@ -46,6 +46,8 @@
     private JahiaRetentionRuleDAO dao = null;
     private JahiaObjectDAO jahiaObjectDAO = null;
 
+    private JahiaObjectManager jahiaObjectManager = null;
+
     private Log log = LogFactory.getLog(JahiaRetentionRuleManager.class);
 
 // --------------------- GETTER / SETTER METHODS ---------------------
@@ -62,6 +64,14 @@
         this.jahiaObjectDAO = jahiaObjectDAO;
     }
 
+    public JahiaObjectManager getJahiaObjectManager() {
+        return jahiaObjectManager;
+    }
+
+    public void setJahiaObjectManager(JahiaObjectManager jahiaObjectManager) {
+        this.jahiaObjectManager = jahiaObjectManager;
+    }
+
     public List getJahiaRetentionRules() {
         List list = dao.getRetentionRules();
         return fillList(list);
@@ -98,24 +108,11 @@
     }
 
     public RetentionRule getRetentionRuleByObjectKey(ObjectKey objectKey) {
-        org.jahia.hibernate.model.JahiaObject hibJahiaObject = 
jahiaObjectDAO.findByPK(new JahiaObjectPK(
-                objectKey.getType(),new Integer(objectKey.getIDInType())));
-        if ( hibJahiaObject == null ){
+        JahiaObjectDelegate jahiaObjectDelegate = 
jahiaObjectManager.getJahiaObjectDelegate(objectKey);
+        if ( jahiaObjectDelegate == null ){
             return null;
         }
-        JahiaRetentionRule jahiaRetentionRule = null;
-        try {
-            jahiaRetentionRule = hibJahiaObject.getRetentionRule();
-        } catch ( Throwable t) {
-        }
-        if ( jahiaRetentionRule != null ){
-            try {
-                return jahiaRetentionRule.getRetentionRule();
-            } catch (Exception e) {
-                log.warn("Could not create retention rule ",e);
-            }
-        }
-        return null;
+        return jahiaObjectDelegate.getRule();
     }
 
     public JahiaRetentionRule getDetachedJahiaRetentionRuleById(int id) {

Modified: 
trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml&rev=14921&repname=jahia
==============================================================================
--- trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml 
(original)
+++ trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml Wed 
Aug 16 18:37:38 2006
@@ -478,6 +478,9 @@
                 <property name="jahiaObjectDAO">
                     <ref bean="jahiaObjectDAO"/>
                 </property>
+                <property name="jahiaObjectManager">
+                    <ref 
bean="org.jahia.hibernate.manager.JahiaObjectManager"/>
+                </property>
             </bean>
         </property>
     </bean>

Reply via email to