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