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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs