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

simon at wyona.com simon at wyona.com
Thu Apr 17 17:46:21 CEST 2008


Author: simon
Date: 2008-04-17 17:46:20 +0200 (Thu, 17 Apr 2008)
New Revision: 35706

Modified:
   public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
Log:
see: http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=6304
thanks to josias!

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	2008-04-17 15:33:53 UTC (rev 35705)
+++ public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java	2008-04-17 15:46:20 UTC (rev 35706)
@@ -4,7 +4,9 @@
 
 package org.wyona.yanel.impl.resources.policymanager;
 
+import org.wyona.security.core.api.AccessManagementException;
 import org.wyona.security.core.api.IdentityManager;
+import org.wyona.security.core.api.Item;
 import org.wyona.security.core.api.Policy;
 import org.wyona.security.core.api.PolicyManager;
 import org.wyona.security.core.api.User;
@@ -15,6 +17,8 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
 import java.util.Vector;
 
 import org.apache.log4j.Logger;
@@ -154,6 +158,7 @@
 
         try {
             User[] users = um.getUsers();
+            Arrays.sort(users, new ItemIDComparator());
             sb.append("<users>");
             for (int i = 0; i < users.length; i++) {
                 sb.append("<user id=\"" + users[i].getID() + "\">" + users[i].getName() + "</user>");
@@ -161,6 +166,7 @@
             sb.append("</users>");
 
             org.wyona.security.core.api.Group[] groups = gm.getGroups();
+            Arrays.sort(groups, new ItemIDComparator());
             sb.append("<groups>");
             for (int i = 0; i < groups.length; i++) {
                 sb.append("<group id=\"" + groups[i].getID() + "\">" + groups[i].getName() + "</group>");
@@ -182,6 +188,18 @@
         sb.append("</access-control>");
         return sb.toString();
     }
+    
+    public class ItemIDComparator implements Comparator {
+        public int compare(Object o1, Object o2) {
+            try {
+                String id1 = ((Item)o1).getID();
+                String id2 = ((Item)o2).getID();
+                return id1.compareToIgnoreCase(id2);
+            } catch (AccessManagementException e) {
+                throw new RuntimeException(e.getMessage(), e);
+            }
+        }
+    }
 
     /**
      *



More information about the Yanel-commits mailing list