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