cmailleux 2005/02/16 12:21:27 CET
Modified files: (Branch: JAHIA-4-0-BRANCH)
src/java/org/jahia/engines/addcontainer
AddContainer_Engine.java
src/java/org/jahia/engines/containerlistproperties
ContainerListProperties_Engine.java
src/java/org/jahia/engines/deletecontainer
DeleteContainer_Engine.java
src/java/org/jahia/engines/pages PageProperties_Engine.java
src/java/org/jahia/engines/updatecontainer
UpdateContainer_Engine.java
src/java/org/jahia/engines/updatefield UpdateField_Engine.java
src/java/org/jahia/engines/workflow WorkflowEngine.java
src/java/org/jahia/operations OperationManager.java
src/java/org/jahia/params ParamBean.java
src/java/org/jahia/services/cache Cache.java HtmlCache.java
src/java/org/jahia/settings SettingsBean.java
Log:
Modifiy the cache to invalidate cache by workflow state also and not flushing
all sate of page when editing it
Revision Changes Path
1.69.2.4 +2 -2
jahia/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.java.diff?r1=1.69.2.3&r2=1.69.2.4&f=h
1.41.4.2 +2 -2
jahia/src/java/org/jahia/engines/containerlistproperties/ContainerListProperties_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/containerlistproperties/ContainerListProperties_Engine.java.diff?r1=1.41.4.1&r2=1.41.4.2&f=h
1.31.4.2 +3 -4
jahia/src/java/org/jahia/engines/deletecontainer/DeleteContainer_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/deletecontainer/DeleteContainer_Engine.java.diff?r1=1.31.4.1&r2=1.31.4.2&f=h
1.48.2.10 +2 -2
jahia/src/java/org/jahia/engines/pages/PageProperties_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/pages/PageProperties_Engine.java.diff?r1=1.48.2.9&r2=1.48.2.10&f=h
1.62.4.4 +3 -4
jahia/src/java/org/jahia/engines/updatecontainer/UpdateContainer_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/updatecontainer/UpdateContainer_Engine.java.diff?r1=1.62.4.3&r2=1.62.4.4&f=h
1.48.4.2 +2 -2
jahia/src/java/org/jahia/engines/updatefield/UpdateField_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/updatefield/UpdateField_Engine.java.diff?r1=1.48.4.1&r2=1.48.4.2&f=h
1.47.2.7 +2 -2
jahia/src/java/org/jahia/engines/workflow/WorkflowEngine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/workflow/WorkflowEngine.java.diff?r1=1.47.2.6&r2=1.47.2.7&f=h
1.34.2.4 +0 -0
jahia/src/java/org/jahia/operations/OperationManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/operations/OperationManager.java.diff?r1=1.34.2.3&r2=1.34.2.4&f=h
1.149.2.11 +0 -0 jahia/src/java/org/jahia/params/ParamBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/params/ParamBean.java.diff?r1=1.149.2.10&r2=1.149.2.11&f=h
1.30.2.9 +4 -2 jahia/src/java/org/jahia/services/cache/Cache.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/cache/Cache.java.diff?r1=1.30.2.8&r2=1.30.2.9&f=h
1.13.2.2 +29 -0 jahia/src/java/org/jahia/services/cache/HtmlCache.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/cache/HtmlCache.java.diff?r1=1.13.2.1&r2=1.13.2.2&f=h
1.35.2.8 +2 -1 jahia/src/java/org/jahia/settings/SettingsBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/settings/SettingsBean.java.diff?r1=1.35.2.7&r2=1.35.2.8&f=h
Index: AddContainer_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/engines/addcontainer/Attic/AddContainer_Engine.java,v
retrieving revision 1.69.2.3
retrieving revision 1.69.2.4
diff -u -r1.69.2.3 -r1.69.2.4
--- AddContainer_Engine.java 24 Nov 2004 10:47:57 -0000 1.69.2.3
+++ AddContainer_Engine.java 16 Feb 2005 11:21:23 -0000 1.69.2.4
@@ -558,7 +558,7 @@
while (pageRefIDs.hasNext ()) {
Integer curPageID = (Integer) pageRefIDs.next ();
if (htmlCache != null) {
- htmlCache.invalidatePageEntries (curPageID.toString
());
+ htmlCache.invalidatePageEntries (curPageID.toString
(),jParams.getEntryLoadRequest().getWorkflowState());
}
}
} else {
@@ -572,7 +572,7 @@
// and the containerList is not referenced in an absolute way.
if (htmlCache != null) {
htmlCache.invalidatePageEntries (
- Integer.toString (jParams.getPageID ()).toString ());
+ Integer.toString (jParams.getPageID ()).toString
(),jParams.getEntryLoadRequest().getWorkflowState());
}
}
Index: ContainerListProperties_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/engines/containerlistproperties/Attic/ContainerListProperties_Engine.java,v
retrieving revision 1.41.4.1
retrieving revision 1.41.4.2
diff -u -r1.41.4.1 -r1.41.4.2
--- ContainerListProperties_Engine.java 6 Aug 2004 17:59:37 -0000
1.41.4.1
+++ ContainerListProperties_Engine.java 16 Feb 2005 11:21:23 -0000
1.41.4.2
@@ -491,7 +491,7 @@
while (pageRefIDs.hasNext ()) {
Integer curPageID = (Integer) pageRefIDs.next ();
if (htmlCache != null)
- htmlCache.invalidatePageEntries (curPageID.toString
());
+ htmlCache.invalidatePageEntries (curPageID.toString
(),jParams.getEntryLoadRequest().getWorkflowState());
}
} else {
logger.debug ("Why is cross ref list empty ?");
@@ -503,7 +503,7 @@
// since we updated properties on this container list, let's flush
// the cache for the page this container list is on...
if (htmlCache != null)
- htmlCache.invalidatePageEntries (Integer.toString
(jParams.getPageID ()));
+ htmlCache.invalidatePageEntries (Integer.toString
(jParams.getPageID ()),jParams.getEntryLoadRequest().getWorkflowState());
}
/**
Index: DeleteContainer_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/engines/deletecontainer/Attic/DeleteContainer_Engine.java,v
retrieving revision 1.31.4.1
retrieving revision 1.31.4.2
diff -u -r1.31.4.1 -r1.31.4.2
--- DeleteContainer_Engine.java 6 Aug 2004 17:59:37 -0000 1.31.4.1
+++ DeleteContainer_Engine.java 16 Feb 2005 11:21:24 -0000 1.31.4.2
@@ -312,8 +312,7 @@
Integer curPageID = (Integer) pageRefIDs.next ();
if (htmlCache != null)
- htmlCache.invalidatePageEntries (curPageID.
- toString ());
+ htmlCache.invalidatePageEntries (curPageID.toString
(),jParams.getEntryLoadRequest().getWorkflowState());
}
} else {
logger.debug ("Why is cross ref list empty ?");
@@ -325,8 +324,8 @@
// since we have made modifications concerning this page, let's flush
// the content cache for all the users and browsers...
if (htmlCache != null)
- htmlCache.invalidatePageEntries (Integer.toString (jParams.
- getPageID ()).toString ());
+ htmlCache.invalidatePageEntries (Integer.toString
(jParams.getPageID()).toString(),
+
jParams.getEntryLoadRequest().getWorkflowState());
}
/**
Index: PageProperties_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/engines/pages/Attic/PageProperties_Engine.java,v
retrieving revision 1.48.2.9
retrieving revision 1.48.2.10
diff -u -r1.48.2.9 -r1.48.2.10
--- PageProperties_Engine.java 8 Dec 2004 13:27:22 -0000 1.48.2.9
+++ PageProperties_Engine.java 16 Feb 2005 11:21:24 -0000
1.48.2.10
@@ -1,4 +1,4 @@
-// $Id: PageProperties_Engine.java,v 1.48.2.9 2004/12/08 13:27:22 shuber Exp
$
+// $Id: PageProperties_Engine.java,v 1.48.2.10 2005/02/16 11:21:24 cmailleux
Exp $
//
//
// ____.
@@ -931,7 +931,7 @@
LockKey lockKey = LockKey.composeLockKey
(LockKey.UPDATE_PAGE_TYPE,
curPageID,
curPageID);
lockRegistry.release (lockKey, jParams.getUser (),
jParams.getSessionID ());
- htmlCache.invalidatePageEntries(Integer.toString(curPageID));
+
htmlCache.invalidatePageEntries(Integer.toString(curPageID),jParams.getEntryLoadRequest().getWorkflowState());
}
}
}
Index: UpdateContainer_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/engines/updatecontainer/Attic/UpdateContainer_Engine.java,v
retrieving revision 1.62.4.3
retrieving revision 1.62.4.4
diff -u -r1.62.4.3 -r1.62.4.4
--- UpdateContainer_Engine.java 11 Nov 2004 12:58:43 -0000 1.62.4.3
+++ UpdateContainer_Engine.java 16 Feb 2005 11:21:24 -0000 1.62.4.4
@@ -1,4 +1,4 @@
-// $Id: UpdateContainer_Engine.java,v 1.62.4.3 2004/11/11 12:58:43 shuber
Exp $
+// $Id: UpdateContainer_Engine.java,v 1.62.4.4 2005/02/16 11:21:24 cmailleux
Exp $
//
//
// ____.
@@ -589,7 +589,7 @@
while (pageRefIDs.hasNext ()) {
Integer curPageID = (Integer) pageRefIDs.next ();
if (htmlCache != null)
- htmlCache.invalidatePageEntries (curPageID.toString ());
+ htmlCache.invalidatePageEntries (curPageID.toString
(),jParams.getEntryLoadRequest().getWorkflowState());
}
} else {
logger.debug ("Why is cross ref list empty ?");
@@ -597,8 +597,7 @@
// this is still necessary in the case we are on the page itself
// and the containerList is not referenced in an absolute way.
if (htmlCache != null)
- htmlCache.invalidatePageEntries (Integer.toString (jParams.
- getPageID ()));
+ htmlCache.invalidatePageEntries (Integer.toString
(jParams.getPageID ()),jParams.getEntryLoadRequest().getWorkflowState());
}
/**
Index: UpdateField_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/engines/updatefield/Attic/UpdateField_Engine.java,v
retrieving revision 1.48.4.1
retrieving revision 1.48.4.2
diff -u -r1.48.4.1 -r1.48.4.2
--- UpdateField_Engine.java 6 Aug 2004 17:59:41 -0000 1.48.4.1
+++ UpdateField_Engine.java 16 Feb 2005 11:21:25 -0000 1.48.4.2
@@ -498,7 +498,7 @@
Integer curPageID = (Integer) pageRefIDs.next ();
if (htmlCache != null)
- htmlCache.invalidatePageEntries (curPageID.toString ());
+ htmlCache.invalidatePageEntries (curPageID.toString
(),jParams.getEntryLoadRequest().getWorkflowState());
}
} else {
logger.debug ("Why is cross ref list empty ?");
@@ -507,7 +507,7 @@
// since we have made modifications concerning this page, let's flush
// the content cache for all the users and browsers...
if (htmlCache != null)
- htmlCache.invalidatePageEntries (Integer.toString
(jParams.getPageID ()));
+ htmlCache.invalidatePageEntries (Integer.toString
(jParams.getPageID ()),jParams.getEntryLoadRequest().getWorkflowState());
}
/**
Index: WorkflowEngine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/engines/workflow/Attic/WorkflowEngine.java,v
retrieving revision 1.47.2.6
retrieving revision 1.47.2.7
diff -u -r1.47.2.6 -r1.47.2.7
--- WorkflowEngine.java 7 Oct 2004 17:27:20 -0000 1.47.2.6
+++ WorkflowEngine.java 16 Feb 2005 11:21:25 -0000 1.47.2.7
@@ -244,7 +244,7 @@
siteMapContentPage.getID (),
siteMapContentPage.getID ());
if (lockRegistry.acquire (lockKey, user,
jParams.getSessionID (),
jParams.getSession ().getMaxInactiveInterval
())) {
-
htmlCache.invalidatePageEntries(Integer.toString(siteMapContentPage.getID()));
+
htmlCache.invalidatePageEntries(Integer.toString(siteMapContentPage.getID()),jParams.getEntryLoadRequest().getWorkflowState());
logger.debug (
"Lock acquired for page " +
siteMapContentPage.getTitles (true));
@@ -771,7 +771,7 @@
LockKey lockKey = LockKey.composeLockKey
(LockKey.WORKFLOW_TYPE,
siteMapContentPage.getID (),
siteMapContentPage.getID ());
lockRegistry.release (lockKey, jParams.getUser (),
jParams.getSessionID ());
-
htmlCache.invalidatePageEntries(Integer.toString(siteMapContentPage.getID()));
+
htmlCache.invalidatePageEntries(Integer.toString(siteMapContentPage.getID()),jParams.getEntryLoadRequest().getWorkflowState());
}
}
}
Index: Cache.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/services/cache/Attic/Cache.java,v
retrieving revision 1.30.2.8
retrieving revision 1.30.2.9
diff -u -r1.30.2.8 -r1.30.2.9
--- Cache.java 23 Sep 2004 16:31:22 -0000 1.30.2.8
+++ Cache.java 16 Feb 2005 11:21:26 -0000 1.30.2.9
@@ -39,6 +39,8 @@
package org.jahia.services.cache;
+import org.apache.commons.collections.FastHashMap;
+
import java.util.Map;
import java.util.Vector;
import java.util.HashMap;
@@ -294,7 +296,7 @@
// check the cache is still valid
if (cache == null) {
- cache = new HashMap();
+ cache = new FastHashMap(2503);
}
if (getCacheLimit () == 0) {
@@ -348,7 +350,7 @@
jmsHub = hub;
// create the cache HashMap
- cache = new HashMap ();
+ cache = new FastHashMap (2503);
}
Index: HtmlCache.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/services/cache/Attic/HtmlCache.java,v
retrieving revision 1.13.2.1
retrieving revision 1.13.2.2
diff -u -r1.13.2.1 -r1.13.2.2
--- HtmlCache.java 29 Jul 2004 15:39:50 -0000 1.13.2.1
+++ HtmlCache.java 16 Feb 2005 11:21:26 -0000 1.13.2.2
@@ -150,6 +150,35 @@
}
}
+ /** <p>Invalidates all the cache entries related to the specified page
<code>pageID</code>,
+ * by removing the cache entries.</p>
+ *
+ * <p><b>Caution</b>: depending of the HTML cache size, this operation
can be
+ * time consumming!</p>
+ *
+ * @param pageID the page identification
+ */
+ public synchronized void invalidatePageEntries (String pageID, int
workflowState) {
+ if (pageID == null) {
+ logger.debug ("Cannot remove a null page ID fromt the cache!");
+ return;
+ }
+
+ logger.debug ("Removing cache entries for page ["+ pageID +"]");
+
+ String pageKey = PAGE_PREFIX + pageID +
HIERARCHY_SEPARATOR+"(.*)"+KEY_SEPARATOR+workflowState;
+ Object[] keys = keys();
+ for (int i=0; i<keys.length; i++) {
+ if (keys[i] instanceof String) {
+ String key = (String)keys[i];
+
+ // if the key starts with the pageID, remove the element
from the cache
+ if (key.matches(pageKey)) {
+ remove(keys[i]);
+ }
+ }
+ }
+ }
/** <p>Invalidates all the cache entries related to the specified user
* <code>username</code>, by removing the cache entries.</p>
Index: SettingsBean.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/settings/Attic/SettingsBean.java,v
retrieving revision 1.35.2.7
retrieving revision 1.35.2.8
diff -u -r1.35.2.7 -r1.35.2.8
--- SettingsBean.java 29 Oct 2004 17:57:02 -0000 1.35.2.7
+++ SettingsBean.java 16 Feb 2005 11:21:26 -0000 1.35.2.8
@@ -1,4 +1,4 @@
-// $Id: SettingsBean.java,v 1.35.2.7 2004/10/29 17:57:02 shuber Exp $
+// $Id: SettingsBean.java,v 1.35.2.8 2005/02/16 11:21:26 cmailleux Exp $
//
// ____.
// __/\ ______| |__/\. _______
@@ -222,6 +222,7 @@
private long webAppsObserverInterval;
private String schedulerConfigFile;
+
/**
* Default constructor.