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