Add some indent
diff --git a/java/org/apache/catalina/manager/StatusTransformer.java b/java/org/apache/catalina/manager/StatusTransformer.java
index 4dc1b21..40aecf8 100644
--- a/java/org/apache/catalina/manager/StatusTransformer.java
+++ b/java/org/apache/catalina/manager/StatusTransformer.java
@@ -277,24 +277,25 @@
 
             writer.write("</jvm>");
         } else if (mode == 2) {
-            writer.append('"').append("jvm").append('"').append(':').append('{').println();
+            indent(writer, 1).append('"').append("jvm").append('"').append(':').append('{').println();
 
-            writer.append('"').append("memory").append('"').append(':').append('{');
+            indent(writer, 2).append('"').append("memory").append('"').append(':').append('{');
             appendJSonValue(writer, "free", Long.toString(Runtime.getRuntime().freeMemory())).append(',');
             appendJSonValue(writer, "total", Long.toString(Runtime.getRuntime().totalMemory())).append(',');
             appendJSonValue(writer, "max", Long.toString(Runtime.getRuntime().maxMemory()));
             writer.append('}').append(',').println();
 
-            writer.append('"').append("memorypool").append('"').append(':').append('[');
+            indent(writer, 2).append('"').append("memorypool").append('"').append(':').append('[');
             boolean first = true;
             for (MemoryPoolMXBean memoryPoolMBean : memoryPoolMBeans.values()) {
                 MemoryUsage usage = memoryPoolMBean.getUsage();
                 if (first) {
                     first = false;
+                    writer.println();
                 } else {
                     writer.append(',').println();
                 }
-                writer.append('{');
+                indent(writer, 3).append('{');
                 appendJSonValue(writer, "name", JSONFilter.escape(memoryPoolMBean.getName())).append(',');
                 appendJSonValue(writer, "type", memoryPoolMBean.getType().toString()).append(',');
                 appendJSonValue(writer, "usageInit", Long.toString(usage.getInit())).append(',');
@@ -305,7 +306,7 @@
             }
             writer.append(']').println();
 
-            writer.append('}');
+            indent(writer, 1).append('}');
         }
 
     }
@@ -316,6 +317,14 @@
     }
 
 
+    private static PrintWriter indent(PrintWriter writer, int count) {
+        for (int i = 0; i < count; i++) {
+            writer.append(' ').append(' ');
+        }
+        return writer;
+    }
+
+
     /**
      * Write connector state.
      *
@@ -335,7 +344,7 @@
             throws Exception {
         if (mode == 2) {
             writer.append(',').println();
-            writer.append('"').append("connector").append('"').append(':').append('[').println();
+            indent(writer, 1).append('"').append("connector").append('"').append(':').append('[').println();
         }
         boolean first = true;
         for (ObjectName objectName : threadPools) {
@@ -352,7 +361,7 @@
                     writer, objectName, name, mBeanServer, globalRequestProcessors, requestProcessors, mode, args);
         }
         if (mode == 2) {
-            writer.append(']').println();
+            writer.append(']');
         }
     }
 
@@ -494,10 +503,11 @@
 
             writer.write("</connector>");
         } else if (mode == 2) {
-            writer.append('{').println();
+            indent(writer, 1).append('{').println();
 
+            indent(writer, 2);
             appendJSonValue(writer, "name", JSONFilter.escape(name)).append(',').println();
-            writer.append('"').append("threadInfo").append('"').append(':').append('{');
+            indent(writer, 2).append('"').append("threadInfo").append('"').append(':').append('{');
             appendJSonValue(writer, "maxThreads", mBeanServer.getAttribute(tpName, "maxThreads").toString()).append(',');
             appendJSonValue(writer, "currentThreadCount", mBeanServer.getAttribute(tpName, "currentThreadCount").toString()).append(',');
             appendJSonValue(writer, "currentThreadsBusy", mBeanServer.getAttribute(tpName, "currentThreadsBusy").toString());
@@ -513,7 +523,7 @@
 
             if (grpName != null) {
                 writer.append(',').println();
-                writer.append('"').append("requestInfo").append('"').append(':').append('{');
+                indent(writer, 2).append('"').append("requestInfo").append('"').append(':').append('{');
                 appendJSonValue(writer, "maxTime", mBeanServer.getAttribute(grpName, "maxTime").toString()).append(',');
                 appendJSonValue(writer, "processingTime", mBeanServer.getAttribute(grpName, "processingTime").toString()).append(',');
                 appendJSonValue(writer, "requestCount", mBeanServer.getAttribute(grpName, "requestCount").toString()).append(',');
@@ -524,7 +534,7 @@
                 // Note: No detailed per processor info
             }
 
-            writer.append('}');
+            indent(writer, 1).append('}');
         }
     }
 
@@ -758,7 +768,7 @@
             // for now we don't write out the Detailed state in XML
         } else if (mode == 2) {
             writer.append(',').println();
-            writer.append('"').append("context").append('"').append(':').append('[');
+            indent(writer, 1).append('"').append("context").append('"').append(':').append('[').println();
             Iterator<ObjectName> iterator = hostsON.iterator();
             boolean first = true;
             while (iterator.hasNext()) {
@@ -770,7 +780,8 @@
                 ObjectName contextON = iterator.next();
                 writeContext(writer, contextON, mBeanServer, mode);
             }
-            writer.append(']').println();
+            writer.println();
+            indent(writer, 1).append(']').println();
         }
 
     }
@@ -857,8 +868,8 @@
         } else if (mode == 1) {
             // for now we don't write out the context in XML
         } else if (mode == 2) {
-            writer.append('{');
-            appendJSonValue(writer, "name", JSONFilter.escape(JSONFilter.escape(name))).append(',');
+            indent(writer, 2).append('{').println();
+            appendJSonValue(indent(writer, 3), "name", JSONFilter.escape(JSONFilter.escape(name))).append(',');
             appendJSonValue(writer, "startTime",
                     new Date(((Long) mBeanServer.getAttribute(objectName, "startTime")).longValue()).toString()).append(',');
             appendJSonValue(writer, "startupTime", mBeanServer.getAttribute(objectName, "startupTime").toString()).append(',');
@@ -870,7 +881,7 @@
                 writeJspMonitor(writer, jspMonitorONs, mBeanServer, mode);
             }
             writer.append(',').println();
-            writer.append('"').append("wrapper").append('"').append(':').append('[');
+            indent(writer, 3).append('"').append("wrapper").append('"').append(':').append('[').println();
             String onStr = objectName.getDomain() + ":j2eeType=Servlet,WebModule=" + webModuleName + ",*";
             ObjectName servletObjectName = new ObjectName(onStr);
             Set<ObjectInstance> set = mBeanServer.queryMBeans(servletObjectName, null);
@@ -883,8 +894,9 @@
                 }
                 writeWrapper(writer, oi.getObjectName(), mBeanServer, mode);
             }
-            writer.append(']').println();
-            writer.append('}');
+            writer.println();
+            indent(writer, 3).append(']').println();
+            indent(writer, 2).append('}');
         }
 
     }
@@ -925,7 +937,7 @@
             // for now we don't write out the wrapper details
         } else if (mode == 2) {
             writer.append(',').println();
-            writer.append('"').append("manager").append('"').append(':').append('{');
+            indent(writer, 3).append('"').append("manager").append('"').append(':').append('{');
             appendJSonValue(writer, "activeSessions", mBeanServer.getAttribute(objectName, "activeSessions").toString()).append(',');
             appendJSonValue(writer, "sessionCounter", mBeanServer.getAttribute(objectName, "sessionCounter").toString()).append(',');
             appendJSonValue(writer, "maxActive", mBeanServer.getAttribute(objectName, "maxActive").toString()).append(',');
@@ -973,7 +985,7 @@
             // for now we don't write out anything
         } else if (mode == 2) {
             writer.append(',').println();
-            writer.append('"').append("jsp").append('"').append(':').append('{');
+            indent(writer, 3).append('"').append("jsp").append('"').append(':').append('{');
             appendJSonValue(writer, "jspCount", Integer.toString(jspCount)).append(',');
             appendJSonValue(writer, "jspReloadCount", Integer.toString(jspReloadCount));
             writer.append('}');
@@ -1030,7 +1042,7 @@
         } else if (mode == 1) {
             // for now we don't write out the wrapper details
         } else if (mode == 2) {
-            writer.append('{');
+            indent(writer, 4).append('{');
             appendJSonValue(writer, "servletName", JSONFilter.escape(servletName)).append(',');
             appendJSonValue(writer, "processingTime", mBeanServer.getAttribute(objectName, "processingTime").toString()).append(',');
             appendJSonValue(writer, "maxTime", mBeanServer.getAttribute(objectName, "maxTime").toString()).append(',');