Author: tdraier
Date: Thu Jun 21 12:24:37 2007
New Revision: 17687

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17687&repname=
=3Djahia
Log:
optimize workflow on metadata

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/content/ContentObj=
ect.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aFieldsDataDAO.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaFieldsDataManager.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/fields/Co=
ntentFieldTools.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/content/Cont=
entObject.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/content/ContentObject.java&rev=3D17687&repn=
ame=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/content/ContentObj=
ect.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/content/ContentObj=
ect.java Thu Jun 21 12:24:37 2007
@@ -1399,11 +1399,7 @@
     }
 =

     private List getStagedMetadatas() throws JahiaException {
-        List stagedMetadata =3D jahiaFieldsDataManager.findStagedFieldsByM=
etadataOwner(getObjectKey());
-        if(stagedMetadata!=3D null && stagedMetadata.size()>0){
-            return getMetadatas(true);
-        }
-        return new ArrayList();
+        return getMetadatas(getObjectKey(), true, true);
     }
 =

     /**
@@ -1651,6 +1647,10 @@
         return getMetadatas(objectKey,false);
     }
 =

+    public static ArrayList getMetadatas(ObjectKey objectKey, boolean with=
OldEntryStates) {
+        return getMetadatas(objectKey, withOldEntryStates, false);
+    }
+
     /**
      * Return an Array of ContentField that have a core "metadata" strutur=
al relationship
      * with the given objectKey. @see StructuralRelationship.METADATA_LINK
@@ -1659,9 +1659,14 @@
      * @param withOldEntryStates if true, batch load field's old entrystat=
es for better performance issue
      * @return ArrayList of JahiaObject
      */
-    public static ArrayList getMetadatas(ObjectKey objectKey, boolean with=
OldEntryStates) {
+    public static ArrayList getMetadatas(ObjectKey objectKey, boolean with=
OldEntryStates, boolean stagedOnly) {
         ArrayList objects =3D new ArrayList();
-        List ids =3D jahiaFieldsDataManager.findMetadatasByOwner(objectKey=
);
+        List ids;
+        if (stagedOnly) {
+            ids =3D jahiaFieldsDataManager.findStagedFieldsByMetadataOwner=
(objectKey);
+        } else {
+            ids =3D jahiaFieldsDataManager.findMetadatasByOwner(objectKey);
+        }
         Integer id =3D null;
         ContentField contentField =3D null;
 =

@@ -1676,7 +1681,11 @@
         id =3D (Integer)((Object[])ids.get(0))[0];
         if ( ContentFieldTools.getInstance().getFieldFromCacheOnly(id.intV=
alue()) =3D=3D null ){
             try {
-                ContentFieldTools.getInstance().preloadActiveOrStagedField=
sByMetadataOwner(objectKey);
+                if (stagedOnly) {
+                    ContentFieldTools.getInstance().preloadStagedFieldsByM=
etadataOwner(objectKey);
+                } else {
+                    ContentFieldTools.getInstance().preloadActiveOrStagedF=
ieldsByMetadataOwner(objectKey);
+                }
             } catch ( Throwable t ){
                 logger.debug("Error preloading metadatas for object " + ob=
jectKey,t);
             }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/da=
o/JahiaFieldsDataDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java&rev=
=3D17687&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aFieldsDataDAO.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aFieldsDataDAO.java Thu Jun 21 12:24:37 2007
@@ -819,6 +819,14 @@
         return template.find(hql, new Object[]{ownerKey.getIDInType(), own=
erKey.getType()});
     }
 =

+    public List loadAllStagedFieldsByMetadataOwner(JahiaObjectPK ownerKey)=
 {
+        String hql =3D "from JahiaFieldsData f where f.metadataOwner.comp_=
id.id=3D? AND f.metadataOwner.comp_id.type=3D? AND f.comp_id.workflowState>=
1 order by f.comp_id.id";
+        final HibernateTemplate template =3D getHibernateTemplate();
+        template.setCacheQueries(false);
+        template.setFlushMode(HibernateTemplate.FLUSH_NEVER);
+        return template.find(hql, new Object[]{ownerKey.getIDInType(), own=
erKey.getType()});
+    }
+
     public List findStagedFieldsByMetadataOwner(JahiaObjectPK ownerKey) {
         String hql =3D "select f.comp_id.id from JahiaFieldsData f where f=
.metadataOwner.comp_id.id=3D? AND f.metadataOwner.comp_id.type=3D? AND f.co=
mp_id.workflowState>1";
         final HibernateTemplate template =3D getHibernateTemplate();

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/ma=
nager/JahiaFieldsDataManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDataManager.ja=
va&rev=3D17687&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaFieldsDataManager.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaFieldsDataManager.java Thu Jun 21 12:24:37 2007
@@ -775,6 +775,16 @@
         }
     }
 =

+    public void preloadStagedFieldsByMetadataOwner(ObjectKey metadataOwner=
) {
+        try {
+            List list =3D dao.loadAllStagedFieldsByMetadataOwner(new Jahia=
ObjectPK(metadataOwner.getType(),
+                    new Integer(metadataOwner.getIdInType())));
+            fillCache(list);
+        } catch (JahiaException e) {
+            log.warn("Exception during preload of fieds by metadata owner =
" + metadataOwner, e);
+        }
+    }
+
     public List findStagedFieldsByMetadataOwner(ObjectKey metadataOwner) {
         try {
             return dao.findStagedFieldsByMetadataOwner(new JahiaObjectPK(m=
etadataOwner.getType(),

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/fie=
lds/ContentFieldTools.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/fields/ContentFieldTools.java&rev=
=3D17687&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/fields/Co=
ntentFieldTools.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/fields/Co=
ntentFieldTools.java Thu Jun 21 12:24:37 2007
@@ -155,6 +155,18 @@
     }
 =

     /**
+     * Preloads all the staged fields for a given metadata owner key into =
the
+     * field cache.
+     *
+     * @param metadataOwnerKey
+     * @throws JahiaException thrown if there was an error while loading t=
he fields from the database.
+     */
+    public void preloadStagedFieldsByMetadataOwner (ObjectKey metadataOwne=
rKey)
+            throws JahiaException {
+        fieldsDataManager.preloadStagedFieldsByMetadataOwner (metadataOwne=
rKey);
+    }
+
+    /**
      * loads all the staged fields for a given metadata owner key into the
      * field cache.
      *

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to