Update of
/var/cvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext
In directory james.mmbase.org:/tmp/cvs-serv29647
Modified Files:
BasicUserProvider.java
Log Message:
Cache also the result of getUserByRank, because in some situations it can be
called very often, resulting in query every time.
See also:
http://cvs.mmbase.org/viewcvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext
Index: BasicUserProvider.java
===================================================================
RCS file:
/var/cvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/BasicUserProvider.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- BasicUserProvider.java 6 Jan 2009 14:38:21 -0000 1.3
+++ BasicUserProvider.java 2 Mar 2009 17:29:57 -0000 1.4
@@ -28,7 +28,7 @@
* This is a basic implemention of {...@link Provider} that implements all the
methods in a default way.
*
* @author Michiel Meeuwissen
- * @version $Id: BasicUserProvider.java,v 1.3 2009/01/06 14:38:21 michiel Exp $
+ * @version $Id: BasicUserProvider.java,v 1.4 2009/03/02 17:29:57 michiel Exp $
* @since MMBase-1.9.1
*/
public abstract class BasicUserProvider implements UserProvider {
@@ -194,6 +194,15 @@
* @since MMBase-1.8
*/
public MMObjectNode getUserByRank(String rank, String userName) {
+
+ Cache<String, MMObjectNode> userCache = Caches.getUserCache();
+ final String key = userName + "::" + rank;
+ if (userCache.containsKey(key)) {
+ return userCache.get(key);
+ }
+
+
+
MMBase mmb = MMBase.getMMBase();
BasicSearchQuery query = new BasicSearchQuery();
MMObjectBuilder ranks = mmb.getBuilder("mmbaseranks");
@@ -223,11 +232,14 @@
if (log.isDebugEnabled()) {
log.debug("Executing " + query + " --> " + result);
}
+ MMObjectNode res;
if (result.size() > 0) {
- return result.get(0).getNodeValue("mmbaseusers");
+ res = result.get(0).getNodeValue("mmbaseusers");
} else {
- return null;
+ res = null;
}
+ userCache.put(key, res);
+ return res;
} catch (SearchQueryException sqe) {
log.error(sqe);
return null;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs