[Yanel-commits] rev 45485 - public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager

guillaume at wyona.com guillaume at wyona.com
Fri Nov 13 16:52:17 CET 2009


Author: guillaume
Date: 2009-11-13 16:52:17 +0100 (Fri, 13 Nov 2009)
New Revision: 45485

Modified:
   public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
Log:
Reloading the users afresh at each request of the page is now configurable
 through a RC property: one some project loading them all in one single LDAP request
 without any kind of caching is still too slow!

Issue: 6533


Modified: public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java	2009-11-13 15:28:03 UTC (rev 45484)
+++ public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java	2009-11-13 15:52:17 UTC (rev 45485)
@@ -33,6 +33,8 @@
  */
 public class PolicyManagerResource extends BasicXMLResource {
     
+    private static final String REFRESH_USERS_RC_PROPERTY_NAME = "always-get-fresh-users";
+
     private static Logger log = Logger.getLogger(PolicyManagerResource.class);
     
     private static String PARAMETER_EDIT_PATH = "policy-path";
@@ -116,7 +118,7 @@
                         sb.append("<?xml version=\"1.0\"?><saved/>");
                     } catch(Exception e) {
                         log.error(e,e);
-                        getEnvironment().getResponse().setStatus(response.SC_NOT_IMPLEMENTED);
+                        getEnvironment().getResponse().setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);
                         sb.append("<?xml version=\"1.0\"?><not-saved>" + e.getMessage() + "</not-saved>");
                     }
                 } else {
@@ -144,7 +146,7 @@
                 }
             } else {
                 //response.setContentType("text/html; charset=" + DEFAULT_ENCODING);
-                getEnvironment().getResponse().setStatus(response.SC_NOT_IMPLEMENTED);
+                getEnvironment().getResponse().setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);
                 sb.append("<html><body>Policy usecase not implemented yet: " + policyUsecase + "</body></html>");
                 log.error("Policy usecase not implemented yet: " + policyUsecase);
             }
@@ -166,7 +168,14 @@
         sb.append("<access-control xmlns=\"http://www.wyona.org/security/1.0\">");
 
         try {
-            User[] users = um.getUsers(true);
+            boolean refreshUsers = true; // correctness trumps speed!
+            String refreshUsersText = getResourceConfigProperty(REFRESH_USERS_RC_PROPERTY_NAME);
+            if (refreshUsersText != null && "false".equals(refreshUsersText)) {
+                refreshUsers = false;
+                log.warn("Users will not be loaded afresh!");
+            }
+
+            User[] users = refreshUsers ? um.getUsers(true) : um.getUsers();
             Arrays.sort(users, new ItemIDComparator());
             sb.append("<users>");
             for (int i = 0; i < users.length; i++) {



More information about the Yanel-commits mailing list