Author: tdraier
Date: Fri Sep 14 12:47:18 2007
New Revision: 18455

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18455&repname=
=3Djahia
Log:
optimized user cache key (port 18166)

Modified:
    trunk/core/src/java/org/jahia/services/cache/ContainerHTMLCache.java

Modified: trunk/core/src/java/org/jahia/services/cache/ContainerHTMLCache.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/cache/ContainerHTMLCache.java&rev=3D18455&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/services/cache/ContainerHTMLCache.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/services/cache/ContainerHTMLCache.java Fr=
i Sep 14 12:47:18 2007
@@ -125,27 +125,27 @@
 =

     public void rightsUpdated() {
         SortedSet newgroups =3D new TreeSet(ServicesRegistry.getInstance()=
.getJahiaACLManagerService().getAllGroupsInAcl());
-        if (!newgroups.equals(groups)) {
-            groups =3D newgroups;
+        if (!newgroups.equals(groups.keySet())) {
+            groups =3D null;
             flush();
         }
+        users =3D new TreeSet(ServicesRegistry.getInstance().getJahiaACLMa=
nagerService().getAllUsersInAcl());
     }
 =

     private String getUserCacheKey(JahiaUser user, int siteID) {
         String usercachekey;
 =

-        Set users =3D new HashSet(ServicesRegistry.getInstance().getJahiaA=
CLManagerService().getAllUsersInAcl());
-        SortedSet groups =3D getAllGroups();
+        Collection users =3D getAllUsers();
+        Collection groups =3D getAllGroups();
 =

         if (users.contains(user.getUserKey())) {
             usercachekey =3D user.getUserKey();
         } else {
             StringBuffer b =3D new StringBuffer();
             for (Iterator iterator =3D groups.iterator(); iterator.hasNext=
();) {
-                String groupName =3D (String) iterator.next();
-                JahiaGroup g =3D ServicesRegistry.getInstance().getJahiaGr=
oupManagerService().lookupGroup(groupName);
+                JahiaGroup g =3D (JahiaGroup) iterator.next();
                 if (g.getSiteID() =3D=3D siteID && g.isMember(user)) {
-                    b.append(groupName);
+                    b.append(g.getGroupname());
                     b.append("|");
                 }
             }
@@ -154,13 +154,27 @@
         return usercachekey;
     }
 =

-    private SortedSet groups;
+    private SortedMap groups;
+    private SortedSet users;
 =

-    private synchronized SortedSet getAllGroups() {
+    private synchronized Collection getAllGroups() {
         if (groups =3D=3D null) {
-            groups =3D new TreeSet(ServicesRegistry.getInstance().getJahia=
ACLManagerService().getAllGroupsInAcl());
+            groups =3D new TreeMap();
+            Collection names =3D ServicesRegistry.getInstance().getJahiaAC=
LManagerService().getAllGroupsInAcl();
+            for (Iterator iterator =3D names.iterator(); iterator.hasNext(=
);) {
+                String name =3D (String) iterator.next();
+                JahiaGroup g =3D ServicesRegistry.getInstance().getJahiaGr=
oupManagerService().lookupGroup(name);
+                groups.put(name,g);
+            }
         }
-        return groups;
+        return groups.values();
     }
 =

+    private synchronized Collection getAllUsers() {
+        if (users =3D=3D null) {
+            users =3D new TreeSet(ServicesRegistry.getInstance().getJahiaA=
CLManagerService().getAllUsersInAcl());
+        }
+        return users;
+
+    }
 }

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

Reply via email to