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.
   
  

Reply via email to