diff --git a/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java b/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java index 538655495..7ba50c305 100644 --- a/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java +++ b/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java @@ -1,13 +1,15 @@ package net.i2p.router.update; -import java.io.ByteArrayInputStream; import java.io.File; +import java.io.IOException; +import java.io.Writer; import java.net.URI; import java.net.URISyntaxException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.Iterator; import java.util.List; @@ -1111,7 +1113,7 @@ public class ConsoleUpdateManager implements UpdateManager { @Override public String toString() { - return "RegisteredUpdater " + updater.getClass() + " for " + type + ' ' + method + " @pri " + priority; + return "RegisteredUpdater " + updater.getClass().getName() + " for " + type + ' ' + method + " @pri " + priority; } } @@ -1152,7 +1154,7 @@ public class ConsoleUpdateManager implements UpdateManager { @Override public String toString() { - return "RegisteredChecker " + checker.getClass() + " for " + type + ' ' + method + " @pri " + priority; + return "RegisteredChecker " + checker.getClass().getName() + " for " + type + ' ' + method + " @pri " + priority; } } @@ -1223,4 +1225,51 @@ public class ConsoleUpdateManager implements UpdateManager { return "VersionAvailable \"" + version + "\" " + sourceMap; } } + + /** debug */ + public void renderStatusHTML(Writer out) throws IOException { + StringBuilder buf = new StringBuilder(1024); + buf.append("

Update Manager

"); + buf.append("

Installed

"); + toString(buf, _installed); + buf.append("

Available

"); + toString(buf, _available); + buf.append("

Downloaded

"); + toString(buf, _downloaded); + buf.append("

Registered Checkers

"); + toString(buf, _registeredCheckers); + buf.append("

Registered Updaters

"); + toString(buf, _registeredUpdaters); + buf.append("

Active Checkers

"); + toString(buf, _activeCheckers); + buf.append("

Active Updaters

"); + toString(buf, _downloaders); + out.write(buf.toString()); + } + + /** debug */ + private static void toString(StringBuilder buf, Collection col) { + List list = new ArrayList(col.size()); + for (Object o : col) { + list.add(o.toString()); + } + Collections.sort(list); + for (String e : list) { + buf.append("[").append(e).append("]
"); + } + } + + /** debug */ + private static void toString(StringBuilder buf, Map map) { + List list = new ArrayList(map.size()); + for (Map.Entry entry : map.entrySet()) { + String key = entry.getKey().toString(); + String val = entry.getValue().toString(); + list.add("[" + key + "] = [" + val + "]
"); + } + Collections.sort(list); + for (String e : list) { + buf.append(e); + } + } } diff --git a/apps/routerconsole/jsp/debug.jsp b/apps/routerconsole/jsp/debug.jsp index 6da4cce61..9f39b840e 100644 --- a/apps/routerconsole/jsp/debug.jsp +++ b/apps/routerconsole/jsp/debug.jsp @@ -13,7 +13,7 @@ <%@include file="summaryajax.jsi" %> <%@include file="summary.jsi" %> -

Router SKM

+

Router Debug

<% /* @@ -21,10 +21,15 @@ */ net.i2p.router.RouterContext ctx = (net.i2p.router.RouterContext) net.i2p.I2PAppContext.getGlobalContext(); + /* + * Print out the status for the UpdateManager + */ + ctx.updateManager().renderStatusHTML(out); + /* * Print out the status for all the SessionKeyManagers */ - + out.print("

Router SKM

"); ctx.sessionKeyManager().renderStatusHTML(out); java.util.Set clients = ctx.clientManager().listClients(); for (net.i2p.data.Destination dest : clients) { diff --git a/core/java/src/net/i2p/update/UpdateManager.java b/core/java/src/net/i2p/update/UpdateManager.java index eae698de4..5f609f547 100644 --- a/core/java/src/net/i2p/update/UpdateManager.java +++ b/core/java/src/net/i2p/update/UpdateManager.java @@ -1,6 +1,8 @@ package net.i2p.update; import java.io.File; +import java.io.IOException; +import java.io.Writer; import java.net.URI; import java.util.List; @@ -79,4 +81,9 @@ public interface UpdateManager { * @return true if valid, false if corrupt */ public boolean notifyComplete(UpdateTask task, String actualVersion, File file); + + /** + * For debugging + */ + public void renderStatusHTML(Writer out) throws IOException; } diff --git a/core/java/src/net/i2p/util/VersionComparator.java b/core/java/src/net/i2p/util/VersionComparator.java index 8c72252fc..ad7c20a09 100644 --- a/core/java/src/net/i2p/util/VersionComparator.java +++ b/core/java/src/net/i2p/util/VersionComparator.java @@ -46,10 +46,9 @@ public class VersionComparator implements Comparator { } catch (NumberFormatException nfe) { return 1; } - long diff = left - right; - if (diff < 0) + if (left < right) return -1; - if (diff > 0) + if (left > right) return 1; return 0; }