Author: tdraier
Date: Thu Aug 2 16:17:30 2007
New Revision: 18108
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18108&repname=
=3Djahia
Log:
get absolute fields and container cross refs in one passe only (port 18052)
Modified:
trunk/core/src/java/org/jahia/engines/core/Core_Engine.java
Modified: trunk/core/src/java/org/jahia/engines/core/Core_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/core/Core_Engine.java&rev=3D18108&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
--- trunk/core/src/java/org/jahia/engines/core/Core_Engine.java (original)
+++ trunk/core/src/java/org/jahia/engines/core/Core_Engine.java Thu Aug 2 =
16:17:30 2007
@@ -21,9 +21,7 @@
=
package org.jahia.engines.core;
=
-import org.jahia.content.ContentContainerListsXRefManager;
-import org.jahia.content.ContentFieldXRefManager;
-import org.jahia.content.ObjectKey;
+import org.jahia.content.*;
import org.jahia.data.JahiaData;
import org.jahia.data.events.JahiaEvent;
import org.jahia.engines.EngineRenderer;
@@ -277,10 +275,24 @@
// now we must compare it to the database store to see if there are
// differences, and if so update the database...
=
- Set fieldKeys =3D ContentFieldXRefManager.getInstance ().getAbsolu=
teFieldsFromPageID (
- jData.getProcessingContext ().getPageID ());
- Set containerListKeys =3D ContentContainerListsXRefManager.getInst=
ance ()
- .getAbsoluteContainerListsFromPageID (jData.getProcessingC=
ontext ().getPageID ());
+ Set fieldKeys =3D new TreeSet();
+ Set containerListKeys =3D new TreeSet();
+
+ ContentPageKey pageKey =3D new ContentPageKey( jData.getProcessing=
Context ().getPageID() );
+ Set objectRefs =3D CrossReferenceManager.getInstance().getReverseO=
bjectXRefs(pageKey);
+ if (objectRefs !=3D null) {
+ Iterator objectRefIter =3D objectRefs.iterator();
+ while (objectRefIter.hasNext()) {
+ Object source =3D objectRefIter.next();
+ if (source instanceof ContentContainerListKey) {
+ containerListKeys.add(source);
+ } else if (source instanceof ContentFieldKey) {
+ fieldKeys.add(source);
+ } else {
+ logger.debug("Invalid key object in cross reference li=
st, ignoring... ");
+ }
+ }
+ }
=
// first let's convert the keys into IDs.
Set databaseAbsoluteFieldIDs =3D new HashSet ();
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list