SLING-2479 - print types in alpha order

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1338488 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/jcr/webconsole/internal/NodeTypeConfigurationPrinter.java b/src/main/java/org/apache/sling/jcr/webconsole/internal/NodeTypeConfigurationPrinter.java
index cb7710e..132ebe2 100644
--- a/src/main/java/org/apache/sling/jcr/webconsole/internal/NodeTypeConfigurationPrinter.java
+++ b/src/main/java/org/apache/sling/jcr/webconsole/internal/NodeTypeConfigurationPrinter.java
@@ -17,6 +17,10 @@
 package org.apache.sling.jcr.webconsole.internal;
 
 import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Comparator;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -73,9 +77,9 @@
                 session = slingRepository.loginAdministrative(null);
                 NodeTypeManager ntm = session.getWorkspace().getNodeTypeManager();
                 NodeTypeIterator it = ntm.getAllNodeTypes();
-                while (it.hasNext()) {
-                    NodeType nt = it.nextNodeType();
+                List<NodeType> sortedTypes = sortTypes(it);
 
+                for (NodeType nt : sortedTypes) {
                     pw.printf("[%s]", nt.getName());
 
                     printSuperTypes(pw, nt);
@@ -179,6 +183,20 @@
 
     }
 
+    private List<NodeType> sortTypes(NodeTypeIterator it) {
+        List<NodeType> types = new ArrayList<NodeType>();
+        while (it.hasNext()) {
+            NodeType nt = it.nextNodeType();
+            types.add(nt);
+        }
+        Collections.sort(types, new Comparator<NodeType>(){
+            public int compare(NodeType o1, NodeType o2) {
+                return o1.getName().compareTo(o2.getName());
+            }
+        });
+        return types;
+    }
+
     private void linebreak(PrintWriter pw, String mode) {
         if (ConfigurationPrinter.MODE_WEB.equals(mode)) {
             pw.println("<br/>");