Update of 
/var/cvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/builders
In directory 
james.mmbase.org:/tmp/cvs-serv29119/implementation/cloudcontext/builders

Modified Files:
      Tag: MMBase-1_8
        Users.java 
Log Message:
  MMB-1749


See also: 
http://cvs.mmbase.org/viewcvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/builders
See also: http://www.mmbase.org/jira/browse/MMB-1749


Index: Users.java
===================================================================
RCS file: 
/var/cvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/builders/Users.java,v
retrieving revision 1.48.2.4
retrieving revision 1.48.2.5
diff -u -b -r1.48.2.4 -r1.48.2.5
--- Users.java  24 Sep 2008 09:55:59 -0000      1.48.2.4
+++ Users.java  8 Dec 2008 16:30:55 -0000       1.48.2.5
@@ -17,6 +17,7 @@
 import org.mmbase.storage.search.*;
 import org.mmbase.storage.search.implementation.*;
 import org.mmbase.cache.Cache;
+import org.mmbase.cache.QueryResultCache;
 import org.mmbase.util.Encode;
 import org.mmbase.util.logging.Logger;
 import org.mmbase.util.logging.Logging;
@@ -31,10 +32,10 @@
  * @author Eduard Witteveen
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
- * @version $Id: Users.java,v 1.48.2.4 2008/09/24 09:55:59 rico Exp $
+ * @version $Id: Users.java,v 1.48.2.5 2008/12/08 16:30:55 michiel Exp $
  * @since  MMBase-1.7
  */
-public class Users extends MMObjectBuilder {
+public class Users extends MMObjectBuilder implements Provider {
 
     private static final Logger log = Logging.getLoggerInstance(Users.class);
 
@@ -63,6 +64,12 @@
             public String getDescription() { return "Caches the users. 
UserName --> User Node"; }
         };
 
+    protected static QueryResultCache userRankCache = new 
QueryResultCache(100) {
+            public String getName()        { return "CCS:UserRankCache"; }
+            public String getDescription() { return "Caches the rank objects 
related to queries"; }
+
+        };
+
 
     protected Function encodeFunction = new AbstractFunction("encode", new 
Parameter[] {new Parameter("password", String.class, true) }, 
ReturnType.STRING) {
             {
@@ -92,6 +99,7 @@
     public boolean init() {
         rankCache.putCache();
         userCache.putCache();
+        userRankCache.putCache();
 
         String s = (String)getInitParameters().get("encoding");
         if (s == null) {
@@ -336,11 +344,21 @@
         query.setConstraint(cons);
         // sometimes, I quite hate the 'core version' query-framework.
 
+
+
         try {
-            List result = 
mmb.getClusterBuilder().getClusterNodesFromQueryHandler(query);
+            boolean useCache = query.getCachePolicy().checkPolicy(query);
+            List result = useCache ?  (List) userRankCache.get(query) : null;
+            if (result == null) {
+                result = 
mmb.getClusterBuilder().getClusterNodesFromQueryHandler(query);
             if (log.isDebugEnabled()) {
                 log.debug("Executing " + query + " --> " + result);
             }
+            }
+            if (useCache) {
+                userRankCache.put(query, result);
+            }
+
             if (result.size() > 0) {
                 return ((MMObjectNode) 
result.get(0)).getNodeValue("mmbaseusers");
             } else {
@@ -588,5 +606,15 @@
 
     }
 
+    public boolean allowEncodedPassword() {
+        return 
org.mmbase.util.Casting.toBoolean(getInitParameter("allowencodedpassword"));
+    }
+
+    public MMObjectBuilder getUserBuilder() {
+        return this;
+    }
+
+
+
 
 }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to