Author: sshyrkov
Date: Thu Nov 29 16:52:12 2007
New Revision: 19321

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19321&repname=
=3Djahia
Log:
VOD-54: ported a part of fixes from trunk
http://www.jahia.net/jira/browse/VOD-54

Modified:
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/content=
/ContentObjectKey.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/content=
/ContentPageKey.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/data/fi=
elds/JahiaPageField.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowEventListener.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowService.java

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/c=
ontent/ContentObjectKey.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/content/ContentObjectKey.java&=
rev=3D19321&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/content=
/ContentObjectKey.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/content=
/ContentObjectKey.java Thu Nov 29 16:52:12 2007
@@ -86,9 +86,13 @@
     public static void flushCache(ContentObject object) {
         if (treeCache !=3D null && object !=3D null) {
             if(object instanceof ContentPage) {
-                ContentObjectKey.treeCache.remove("parent"+object.getObjec=
tKey());
+                String base =3D "parent" + object.getObjectKey() + "-";
+                treeCache.remove(base + EntryLoadRequest.STAGING_WORKFLOW_=
STATE);
+                treeCache.remove(base + EntryLoadRequest.ACTIVE_WORKFLOW_S=
TATE);
+                treeCache.remove(base + EntryLoadRequest.WAITING_WORKFLOW_=
STATE);
+                treeCache.remove(base + EntryLoadRequest.DELETED_WORKFLOW_=
STATE);
             }
-            ContentObjectKey.treeCache.remove("childs"+((ContentObjectKey)=
object.getObjectKey()).getParent(EntryLoadRequest.STAGED));
+            treeCache.remove("childs"+((ContentObjectKey)object.getObjectK=
ey()).getParent(EntryLoadRequest.STAGED));
         }
     }
 }
\ No newline at end of file

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/c=
ontent/ContentPageKey.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/content/ContentPageKey.java&re=
v=3D19321&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/content=
/ContentPageKey.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/content=
/ContentPageKey.java Thu Nov 29 16:52:12 2007
@@ -72,7 +72,7 @@
 =

     public ContentObjectKey getParent(EntryLoadRequest request) {
         checkCache();
-        ContentObjectKey p =3D (ContentObjectKey) treeCache.get("parent"+t=
oString());
+        ContentObjectKey p =3D (ContentObjectKey) treeCache.get("parent"+t=
oString()+"-"+request.getWorkflowState());
         if (p !=3D null) {
             return p;
         }
@@ -80,11 +80,11 @@
         int parentPageFieldId =3D ServicesRegistry.getInstance().getJahiaP=
ageService().getParentPageFieldId(getIdInType(), request);
         if (parentPageFieldId > 0) {
             p =3D new ContentFieldKey(parentPageFieldId);
-            treeCache.put("parent"+toString(), p);
+            treeCache.put("parent"+toString()+"-"+request.getWorkflowState=
(), p);
         }
         return p;
     }
-
+    =

     public Collection getChilds(EntryLoadRequest request) {
         List results =3D new ArrayList();
         try {

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/d=
ata/fields/JahiaPageField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/data/fields/JahiaPageField.jav=
a&rev=3D19321&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/data/fi=
elds/JahiaPageField.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/data/fi=
elds/JahiaPageField.java Thu Nov 29 16:52:12 2007
@@ -20,6 +20,8 @@
 package org.jahia.data.fields;
 =

 import org.jahia.bin.Jahia;
+import org.jahia.content.ContentContainerKey;
+import org.jahia.content.ContentObjectKey;
 import org.jahia.content.ContentPageKey;
 import org.jahia.content.ContentPageXRefManager;
 import org.jahia.data.FormDataManager;
@@ -323,6 +325,11 @@
                     ServicesRegistry.getInstance().getJahiaEventService()
                             .fireContentObjectUpdated(objectCreatedEvent);
 =

+                    if (contentField.getID() !=3D 0) {
+                        WorkflowService.getInstance().pageMoved((ContentOb=
jectKey) contentField.getObjectKey(), (ContentPageKey) contentPage.getObjec=
tKey(), jParams);
+                    } else {
+                        WorkflowService.getInstance().pageMoved(new Conten=
tContainerKey(getctnid()), (ContentPageKey) contentPage.getObjectKey(), jPa=
rams);                        =

+                    }
                     //ServicesRegistry.getInstance().
                     //        getJahiaPageService().savePageInfo( thePage =
);
 =


Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/s=
ervices/workflow/WorkflowEventListener.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/services/workflow/WorkflowEven=
tListener.java&rev=3D19321&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowEventListener.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowEventListener.java Thu Nov 29 16:52:12 2007
@@ -23,6 +23,7 @@
 import org.jahia.content.StructuralRelationship;
 import org.jahia.data.events.JahiaEvent;
 import org.jahia.data.events.JahiaEventListener;
+import org.jahia.exceptions.JahiaException;
 import org.jahia.exceptions.JahiaPageNotFoundException;
 import org.jahia.params.ProcessingContext;
 import org.jahia.params.SoapParamBean;
@@ -77,6 +78,21 @@
                 viewed.add(k);
             }
         }
+
+        WorkflowService service =3D ServicesRegistry.getInstance().getWork=
flowService();
+        Set allTops =3D new HashSet();
+        for (int i =3D allEvents.size()-1; i >=3D0 ; i--) {
+            WorkflowEvent we =3D (WorkflowEvent) allEvents.get(i);
+            ContentObjectKey key =3D (ContentObjectKey) ((ContentObject) w=
e.getObject()).getObjectKey();
+            try {
+                allTops.add(service.getTopLinkedObject(key));
+            } catch (JahiaException e) {
+                logger.error(e.getMessage(), e);
+            }
+        }
+        for (Iterator iterator =3D allTops.iterator(); iterator.hasNext();=
) {
+            service.flushCacheForObjectChanged((ContentObjectKey) iterator=
.next());
+        }
         for (int i =3D allEvents.size()-1; i >=3D0 ; i--) {
             WorkflowEvent we =3D (WorkflowEvent) allEvents.get(i);
             myObjectChanged(we);
@@ -90,7 +106,6 @@
         logger.debug("Object changed : "+object.getObjectKey()+ " , "+lang=
uageCode);
 =

         WorkflowService service =3D ServicesRegistry.getInstance().getWork=
flowService();
-        service.flushCacheForObjectChanged((ContentObjectKey) object.getOb=
jectKey());
 =

         JahiaUser user =3D we.getUser();
         boolean descendingInSubPages =3D we.isShouldDescend();

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/s=
ervices/workflow/WorkflowService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/services/workflow/WorkflowServ=
ice.java&rev=3D19321&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowService.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowService.java Thu Nov 29 16:52:12 2007
@@ -132,37 +132,6 @@
         cache =3D cacheService.createCacheInstance(WORKFLOWLANGUAGESSTATES=
_CACHENAME);
         modeCache =3D cacheService.createCacheInstance(WORKFLOWMODE_CACHEN=
AME);
         linkedObjectsCache =3D cacheService.createCacheInstance(WORKFLOWLI=
NKEDOBJECT_CACHENAME);
-
-        if (Jahia.getSettings().isWorkflowLevelsPreloadActive()) {
-            try {
-                Enumeration e =3D ServicesRegistry.getInstance().getJahiaS=
itesService().getSites();
-                while (e.hasMoreElements()) {
-                    JahiaSite jahiaSite =3D (JahiaSite) e.nextElement();
-                    if (jahiaSite !=3D null) {
-                        ContentPage homeContentPage =3D jahiaSite.getHomeC=
ontentPage();
-                        if (homeContentPage !=3D null) {
-                            ContentObjectKey k =3D (ContentObjectKey) home=
ContentPage.getObjectKey();
-                            logger.info("Preloading " + Jahia.getSettings(=
).getWorkflowLevelsPreloadCount() + " levels of workflow states for site "+=
jahiaSite.getSiteKey()+"...");
-                            preload(k, Jahia.getSettings().getWorkflowLeve=
lsPreloadCount());
-                        }
-                    }
-                }
-            } catch (Exception ex) {
-                logger.error("Error during preloading of workflow levels",=
 ex);
-            }
-        }
-    }
-
-    private void preload(ContentObjectKey k, int level) throws JahiaExcept=
ion {
-//        if (level-- =3D=3D 0) {
-//            return;
-//        }
-//        getLanguagesStates(k);
-//        List l =3D getUnlinkedContentObjects(k);
-//        for (Iterator iterator =3D l.iterator(); iterator.hasNext();) {
-//            ContentObjectKey contentObjectKey =3D (ContentObjectKey) ite=
rator.next();
-//            preload(contentObjectKey, level);
-//        }
     }
 =

     public void stop() {
@@ -409,11 +378,8 @@
         return grp;
     }
 =

-    public void setWorkflowMode(ContentObject object, int mode, String wor=
kflowName, String processId, ProcessingContext jParams) throws JahiaExcepti=
on {
-        setWorkflowMode((ContentObjectKey)object.getObjectKey(), mode, wor=
kflowName, processId, jParams);
-    }
-
-    public void setWorkflowMode(ContentObjectKey object, int mode, String =
workflowName, String processId, ProcessingContext jParams) throws JahiaExce=
ption {
+    public void setWorkflowMode(ContentObject contentObject, int mode, Str=
ing workflowName, String processId, ProcessingContext jParams) throws Jahia=
Exception {
+        ContentObjectKey object =3D (ContentObjectKey)contentObject.getObj=
ectKey();
         ContentObjectKey workflowMainObject =3D getHardLinkedMainObject(ob=
ject);
         int oldMode =3D getWorkflowMode(object);
         cache.flush();
@@ -558,6 +524,9 @@
             storeLanguageState(getMainLinkObject(object), jParams.getSiteI=
D());
             languagesStatesManager.clearEntries(object.toString());
         }
+
+        WorkflowEvent theEvent =3D new WorkflowEvent (this, contentObject,=
 jParams.getUser(), jParams.getCurrentLocale().toString(), false);
+        ServicesRegistry.getInstance().getJahiaEventService().fireObjectCh=
anged(theEvent);
     }
 =

     public boolean hasChanged(ContentObjectKey object, int mode, String wo=
rkflowName, String processId) throws JahiaException {
@@ -735,7 +704,7 @@
         return main;
     }
 =

-    private ContentObjectKey getTopLinkedObject(ContentObjectKey object) t=
hrows JahiaException{
+    public ContentObjectKey getTopLinkedObject(ContentObjectKey object) th=
rows JahiaException{
         if (ContentFieldKey.FIELD_TYPE.equals(object.getType())) {
             object =3D object.getParent(null);
         }
@@ -812,14 +781,16 @@
             ContentObjectKey main =3D getTopLinkedObject(object);
             GroupCacheKey mainCacheKey =3D new GroupCacheKey(main.toString=
()+"_"+descendInAllSubGroups+"_"+checkParents, new HashSet());
             l =3D (List[]) linkedObjectsCache.get(mainCacheKey);
-            if (l =3D=3D null) {
 =

+            cacheKey.getGroups().add(object.toString());
+            cacheKey.getGroups().add(MAINPREFIX + main.toString());
+            if (l !=3D null) {
+                linkedObjectsCache.put(cacheKey, l);
+            } else {
                 Set keys =3D new HashSet();
                 l =3D new List[] { new ArrayList(), new ArrayList() };
                 getLinkedContentObjects(object, keys, l[0], l[1], descendI=
nAllSubGroups, checkParents);
                 l[1].removeAll(l[0]);
-                cacheKey.getGroups().add(object.toString());
-                cacheKey.getGroups().add(MAINPREFIX + main.toString());
                 linkedObjectsCache.put(cacheKey, l);
 =

                 mainCacheKey.getGroups().add(main.toString());
@@ -903,6 +874,12 @@
             if (parent !=3D null && getMainLinkObject(parent).equals(k)) {
                 getLinkedContentObjects(parent, keys, linked, unlinked, fa=
lse, true);
             }
+            if (object instanceof ContentPageKey) {
+                parent =3D object.getParent(EntryLoadRequest.CURRENT);
+                if (parent !=3D null && getMainLinkObject(parent).equals(k=
)) {
+                    getLinkedContentObjects(parent, keys, linked, unlinked=
, false, true);
+                }
+            }
         }
     }
 =

@@ -975,13 +952,13 @@
         if (contentObject =3D=3D null) {
             return new HashMap();
         }
-        return getLanguagesStates((ContentObjectKey) contentObject.getObje=
ctKey(), contentObject.getSiteID());
+        return getLanguagesStates(getMainLinkObject((ContentObjectKey) con=
tentObject.getObjectKey()), contentObject.getSiteID());
     }
 =

     private Map getLanguagesStates(final ContentObjectKey contentObject, f=
inal int siteID) throws JahiaException {
         Map r =3D languagesStatesManager.getLanguagesStates(contentObject.=
toString());
         if (r.isEmpty()) {
-            r =3D storeLanguageState(getMainLinkObject(contentObject), sit=
eID);
+            r =3D storeLanguageState(contentObject, siteID);
         }
         return r;
     }
@@ -1266,6 +1243,25 @@
         return activationResults;
     }
 =

+    public void pageMoved(ContentObjectKey parent, ContentPageKey page, Pr=
ocessingContext jParams) throws JahiaException {
+        if (getInheritedMode(parent) =3D=3D WorkflowService.INACTIVE) {
+            List all =3D getAllInheritedObjects(page);
+            Set languages =3D new HashSet();
+            for (Iterator iterator =3D jParams.getSite().getLanguageSettin=
gsAsLocales(true).iterator(); iterator.hasNext();) {
+                languages.add(iterator.next().toString());
+            }
+            JahiaSaveVersion saveVersion =3D ServicesRegistry.getInstance =
().getJahiaVersionService ().
+                    getSiteSaveVersion (jParams.getSiteID ());
+            StateModificationContext stateModifContext =3D new StateModifi=
cationContext(page, languages);
+            stateModifContext.addModifiedObjects(all);
+
+            for (Iterator iterator =3D all.iterator(); iterator.hasNext();=
) {
+                ContentObjectKey contentObjectKey =3D (ContentObjectKey) i=
terator.next();
+                activate(contentObjectKey, languages, saveVersion, jParams=
, stateModifContext);
+               }
+        }
+    }
+
     public Map getAllStagingObject(final int siteID) {
         return languagesStatesManager.getAllStagingObject(siteID);
     }
@@ -1280,6 +1276,7 @@
 =

     public Map storeLanguageState(final ContentObjectKey key, final int si=
teID) throws JahiaException {
         Map m =3D evalLanguagesStates(key);
+        languagesStatesManager.clearEntries(key.toString());
         for (Iterator iterator =3D m.keySet().iterator(); iterator.hasNext=
();) {
             String lang =3D (String) iterator.next();
             Integer value =3D (Integer) m.get(lang);

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

Reply via email to