From 60d0b2976b39f280e41646e9e6596b28a8e07367 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sun, 21 Apr 2013 15:41:34 +0000 Subject: [PATCH] * AppManager:Add HTML debug output --- apps/routerconsole/jsp/debug.jsp | 5 ++ .../i2p/router/startup/RouterAppManager.java | 53 +++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/apps/routerconsole/jsp/debug.jsp b/apps/routerconsole/jsp/debug.jsp index 9f39b840e4..90bd964eb9 100644 --- a/apps/routerconsole/jsp/debug.jsp +++ b/apps/routerconsole/jsp/debug.jsp @@ -26,6 +26,11 @@ */ ctx.updateManager().renderStatusHTML(out); + /* + * Print out the status for the AppManager + */ + ctx.clientAppManager().renderStatusHTML(out); + /* * Print out the status for all the SessionKeyManagers */ diff --git a/router/java/src/net/i2p/router/startup/RouterAppManager.java b/router/java/src/net/i2p/router/startup/RouterAppManager.java index 8b4c841f22..a311fe65d0 100644 --- a/router/java/src/net/i2p/router/startup/RouterAppManager.java +++ b/router/java/src/net/i2p/router/startup/RouterAppManager.java @@ -1,6 +1,11 @@ package net.i2p.router.startup; +import java.io.IOException; +import java.io.Writer; import java.util.Arrays; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -160,4 +165,52 @@ public class RouterAppManager implements ClientAppManager { public ClientApp getRegisteredApp(String name) { return _registered.get(name); } + + /** + * debug + * @since 0.9.6 + */ + public void renderStatusHTML(Writer out) throws IOException { + StringBuilder buf = new StringBuilder(1024); + buf.append("<h2>App Manager</h2>"); + buf.append("<h3>Tracked</h3>"); + toString1(buf); + buf.append("<h3>Registered</h3>"); + toString2(buf); + out.write(buf.toString()); + } + + /** + * debug + * @since 0.9.6 + */ + private void toString1(StringBuilder buf) { + List<String> list = new ArrayList(_clients.size()); + for (Map.Entry<ClientApp, String[]> entry : _clients.entrySet()) { + ClientApp key = entry.getKey(); + String[] val = entry.getValue(); + list.add("[" + key.getName() + "] = [" + key.getClass().getName() + ' ' + Arrays.toString(val) + "] " + key.getState() + "<br>"); + } + Collections.sort(list); + for (String e : list) { + buf.append(e); + } + } + + /** + * debug + * @since 0.9.6 + */ + private void toString2(StringBuilder buf) { + List<String> list = new ArrayList(_registered.size()); + for (Map.Entry<String, ClientApp> entry : _registered.entrySet()) { + String key = entry.getKey(); + ClientApp val = entry.getValue(); + list.add("[" + key + "] = [" + val.getClass().getName() + "]<br>"); + } + Collections.sort(list); + for (String e : list) { + buf.append(e); + } + } } -- GitLab