You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2012/02/02 13:31:22 UTC

svn commit: r1239578 - /felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/manager/HttpWhiteboardWebConsolePlugin.java

Author: fmeschbe
Date: Thu Feb  2 12:31:22 2012
New Revision: 1239578

URL: http://svn.apache.org/viewvc?rev=1239578&view=rev
Log:
FELIX-2335 Properly list filter mappings

Modified:
    felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/manager/HttpWhiteboardWebConsolePlugin.java

Modified: felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/manager/HttpWhiteboardWebConsolePlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/manager/HttpWhiteboardWebConsolePlugin.java?rev=1239578&r1=1239577&r2=1239578&view=diff
==============================================================================
--- felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/manager/HttpWhiteboardWebConsolePlugin.java (original)
+++ felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/manager/HttpWhiteboardWebConsolePlugin.java Thu Feb  2 12:31:22 2012
@@ -22,8 +22,10 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Comparator;
 import java.util.Set;
 import java.util.TreeMap;
+import java.util.TreeSet;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -131,7 +133,7 @@ public class HttpWhiteboardWebConsolePlu
         }
     }
 
-    private void printFilterMappings(PrintWriter pw, Map<String, FilterMapping> mappings)
+    private void printFilterMappings(PrintWriter pw, Set<FilterMapping> mappings)
     {
         pw.println("<tr>");
         pw.println("<th class='content container' colspan='4'>Registered Filter Services</td>");
@@ -143,7 +145,7 @@ public class HttpWhiteboardWebConsolePlu
         pw.println("<th class='content'>HttpContext</td>");
         pw.println("</tr>");
 
-        for (FilterMapping fm: mappings.values())
+        for (FilterMapping fm : mappings)
         {
             pw.println("<tr class='content'>");
             pw.println("<td class='content'>" + fm.getPattern() + "</td>");
@@ -228,10 +230,10 @@ public class HttpWhiteboardWebConsolePlu
         pw.println();
     }
 
-    private void printFilterMappingsTxt(PrintWriter pw, Map<String, FilterMapping> mappings)
+    private void printFilterMappingsTxt(PrintWriter pw, Set<FilterMapping> mappings)
     {
         pw.println("Registered Filter Services");
-        for (FilterMapping fm : mappings.values())
+        for (FilterMapping fm : mappings)
         {
             pw.printf("  %s ==> %s (%s, %s, %s, %s)%n", fm.getPattern(), fm.getFilter(),
                 fm.isRegistered() ? "registered" : "unregistered", fm.getRanking(), fm.getInitParams(), fm.getContext());
@@ -298,14 +300,40 @@ public class HttpWhiteboardWebConsolePlu
         return mappings;
     }
 
-    private Map<String, FilterMapping> getFilters()
+    private Set<FilterMapping> getFilters()
     {
-        Map<String, FilterMapping> mappings = new TreeMap<String, FilterMapping>();
+        Set<FilterMapping> mappings = new TreeSet<FilterMapping>(new Comparator<FilterMapping>()
+        {
+            public int compare(FilterMapping o1, FilterMapping o2)
+            {
+                if (o1 == o2)
+                {
+                    return 0;
+                }
+                int res = o1.getPattern().compareTo(o2.getPattern());
+                if (res == 0)
+                {
+                    if (o1.getRanking() > o2.getRanking())
+                    {
+                        res = -1;
+                    }
+                    else if (o1.getRanking() < o2.getRanking())
+                    {
+                        res = 1;
+                    }
+                    else
+                    {
+                        res = o1.getFilter().toString().compareTo(o2.getFilter().toString());
+                    }
+                }
+                return res;
+            }
+        });
         for (AbstractMapping mapping : this.extMgr.getMappings().values())
         {
             if (mapping instanceof FilterMapping)
             {
-                mappings.put(((FilterMapping) mapping).getPattern(), (FilterMapping) mapping);
+                mappings.add((FilterMapping) mapping);
             }
         }
         return mappings;