From 9b2a85df387962d3ee3415fbf76b1553bc820852 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 1 Dec 2017 14:07:29 +0000 Subject: [PATCH] Console: Split net.i2p.router.web into two packages, and move the new .helper package to the war --- apps/routerconsole/java/build.xml | 11 ++-- .../i2p/router/update/PluginUpdateRunner.java | 23 ++++--- .../java/src/net/i2p/router/web/App.java | 19 ++++++ .../src/net/i2p/router/web/CSSHelper.java | 2 + .../i2p/router/web/ConfigServiceHandler.java | 35 ++++++++++- .../src/net/i2p/router/web/ContextHelper.java | 2 +- .../net/i2p/router/web/GraphConstants.java | 16 +++++ .../src/net/i2p/router/web/HelperBase.java | 6 +- .../java/src/net/i2p/router/web/Messages.java | 3 +- .../src/net/i2p/router/web/NavHelper.java | 10 +-- .../src/net/i2p/router/web/PluginStarter.java | 61 ++++++++++++------- .../i2p/router/web/RouterConsoleRunner.java | 5 ++ .../net/i2p/router/web/StatSummarizer.java | 44 +++++++------ .../net/i2p/router/web/SummaryListener.java | 8 ++- .../net/i2p/router/web/SummaryRenderer.java | 7 ++- .../src/net/i2p/router/web/WebAppStarter.java | 16 +++-- .../web/{ => helpers}/BanlistRenderer.java | 3 +- .../router/web/{ => helpers}/CertHelper.java | 3 +- .../CodedIconRendererServlet.java | 3 +- .../{ => helpers}/ConfigAdvancedHandler.java | 3 +- .../{ => helpers}/ConfigAdvancedHelper.java | 3 +- .../{ => helpers}/ConfigClientsHandler.java | 13 +++- .../{ => helpers}/ConfigClientsHelper.java | 13 ++-- .../{ => helpers}/ConfigFamilyHandler.java | 3 +- .../web/{ => helpers}/ConfigFamilyHelper.java | 3 +- .../web/{ => helpers}/ConfigHomeHandler.java | 18 +++--- .../{ => helpers}/ConfigKeyringHandler.java | 3 +- .../{ => helpers}/ConfigKeyringHelper.java | 4 +- .../{ => helpers}/ConfigLoggingHandler.java | 3 +- .../{ => helpers}/ConfigLoggingHelper.java | 3 +- .../web/{ => helpers}/ConfigNavHelper.java | 6 +- .../web/{ => helpers}/ConfigNetHandler.java | 3 +- .../web/{ => helpers}/ConfigNetHelper.java | 3 +- .../web/{ => helpers}/ConfigPeerHandler.java | 3 +- .../web/{ => helpers}/ConfigPeerHelper.java | 4 +- .../{ => helpers}/ConfigReseedHandler.java | 4 +- .../web/{ => helpers}/ConfigReseedHelper.java | 3 +- .../web/{ => helpers}/ConfigRestartBean.java | 5 +- .../web/{ => helpers}/ConfigStatsHandler.java | 3 +- .../web/{ => helpers}/ConfigStatsHelper.java | 4 +- .../{ => helpers}/ConfigSummaryHandler.java | 5 +- .../{ => helpers}/ConfigTunnelsHandler.java | 3 +- .../{ => helpers}/ConfigTunnelsHelper.java | 3 +- .../web/{ => helpers}/ConfigUIHandler.java | 7 ++- .../web/{ => helpers}/ConfigUIHelper.java | 14 +++-- .../web/{ => helpers}/EventLogHelper.java | 4 +- .../web/{ => helpers}/FileDumpHelper.java | 4 +- .../router/web/{ => helpers}/GraphHelper.java | 13 ++-- .../router/web/{ => helpers}/HomeHelper.java | 21 ++----- .../web/{ => helpers}/JobQueueHelper.java | 3 +- .../router/web/{ => helpers}/LogsHelper.java | 50 ++------------- .../router/web/{ => helpers}/NetDbHelper.java | 3 +- .../web/{ => helpers}/NetDbRenderer.java | 3 +- .../web/{ => helpers}/OldConsoleHelper.java | 3 +- .../router/web/{ => helpers}/PeerHelper.java | 5 +- .../ProfileOrganizerRenderer.java | 4 +- .../web/{ => helpers}/ProfilesHelper.java | 4 +- .../router/web/{ => helpers}/ProofHelper.java | 3 +- .../web/{ => helpers}/ReseedBundler.java | 2 +- .../web/{ => helpers}/ReseedGenerator.java | 4 +- .../web/{ => helpers}/ReseedHandler.java | 4 +- .../web/{ => helpers}/SearchHelper.java | 3 +- .../router/web/{ => helpers}/StatHelper.java | 3 +- .../web/{ => helpers}/StatsGenerator.java | 3 +- .../web/{ => helpers}/SummaryBarRenderer.java | 7 ++- .../web/{ => helpers}/SummaryHelper.java | 5 +- .../web/{ => helpers}/SybilRenderer.java | 3 +- .../web/{ => helpers}/TunnelHelper.java | 4 +- .../web/{ => helpers}/TunnelRenderer.java | 4 +- .../router/web/{ => helpers}/UDPSorters.java | 2 +- .../web/{ => helpers}/WriterOutputStream.java | 2 +- .../net/i2p/router/web/helpers/package.html | 24 ++++++++ .../java/src/net/i2p/router/web/package.html | 17 ++++++ apps/routerconsole/jsp/certs.jsp | 2 +- apps/routerconsole/jsp/config.jsp | 4 +- apps/routerconsole/jsp/configadvanced.jsp | 4 +- apps/routerconsole/jsp/configclients.jsp | 4 +- apps/routerconsole/jsp/configfamily.jsp | 4 +- apps/routerconsole/jsp/confighome.jsp | 4 +- apps/routerconsole/jsp/configi2cp.jsp | 4 +- apps/routerconsole/jsp/configkeyring.jsp | 4 +- apps/routerconsole/jsp/configlogging.jsp | 4 +- apps/routerconsole/jsp/confignav.jsi | 2 +- apps/routerconsole/jsp/confignet.jsp | 4 +- apps/routerconsole/jsp/configpeer.jsp | 6 +- apps/routerconsole/jsp/configplugins.jsp | 4 +- apps/routerconsole/jsp/configreseed.jsp | 4 +- apps/routerconsole/jsp/configservice.jsp | 2 +- apps/routerconsole/jsp/configsidebar.jsp | 4 +- apps/routerconsole/jsp/configstats.jsp | 4 +- apps/routerconsole/jsp/configtunnels.jsp | 4 +- apps/routerconsole/jsp/configui.jsp | 4 +- apps/routerconsole/jsp/configwebapps.jsp | 4 +- apps/routerconsole/jsp/createreseed.jsp | 2 +- apps/routerconsole/jsp/dumpprofile.jsp | 2 +- apps/routerconsole/jsp/error500.jsp | 2 +- apps/routerconsole/jsp/events.jsp | 2 +- apps/routerconsole/jsp/formhandler.jsi | 2 +- apps/routerconsole/jsp/graph.jsp | 2 +- apps/routerconsole/jsp/graphs.jsp | 2 +- apps/routerconsole/jsp/home.jsp | 4 +- apps/routerconsole/jsp/jars.jsp | 2 +- apps/routerconsole/jsp/jobs.jsp | 2 +- apps/routerconsole/jsp/logs.jsp | 2 +- apps/routerconsole/jsp/netdb.jsp | 2 +- apps/routerconsole/jsp/oldconsole.jsp | 2 +- apps/routerconsole/jsp/peers.jsp | 2 +- apps/routerconsole/jsp/profiles.jsp | 2 +- apps/routerconsole/jsp/proof.jsp | 2 +- apps/routerconsole/jsp/search.jsp | 2 +- apps/routerconsole/jsp/stats.jsp | 2 +- apps/routerconsole/jsp/summaryframe.jsp | 2 +- apps/routerconsole/jsp/tunnels.jsp | 2 +- apps/routerconsole/jsp/viewprofile.jsp | 2 +- apps/routerconsole/jsp/viewwrapperlog.jsp | 2 +- apps/routerconsole/jsp/web.xml | 6 +- apps/routerconsole/jsp/xhr1.jsi | 6 +- build.xml | 2 +- 118 files changed, 478 insertions(+), 281 deletions(-) create mode 100644 apps/routerconsole/java/src/net/i2p/router/web/App.java create mode 100644 apps/routerconsole/java/src/net/i2p/router/web/GraphConstants.java rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/BanlistRenderer.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/CertHelper.java (97%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/CodedIconRendererServlet.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigAdvancedHandler.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigAdvancedHelper.java (94%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigClientsHandler.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigClientsHelper.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigFamilyHandler.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigFamilyHelper.java (82%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigHomeHandler.java (87%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigKeyringHandler.java (96%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigKeyringHelper.java (85%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigLoggingHandler.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigLoggingHelper.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigNavHelper.java (95%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigNetHandler.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigNetHelper.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigPeerHandler.java (97%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigPeerHelper.java (85%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigReseedHandler.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigReseedHelper.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigRestartBean.java (97%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigStatsHandler.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigStatsHelper.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigSummaryHandler.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigTunnelsHandler.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigTunnelsHelper.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigUIHandler.java (96%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ConfigUIHelper.java (95%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/EventLogHelper.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/FileDumpHelper.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/GraphHelper.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/HomeHelper.java (97%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/JobQueueHelper.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/LogsHelper.java (83%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/NetDbHelper.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/NetDbRenderer.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/OldConsoleHelper.java (97%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/PeerHelper.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ProfileOrganizerRenderer.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ProfilesHelper.java (98%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ProofHelper.java (94%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ReseedBundler.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ReseedGenerator.java (80%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/ReseedHandler.java (86%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/SearchHelper.java (97%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/StatHelper.java (96%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/StatsGenerator.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/SummaryBarRenderer.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/SummaryHelper.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/SybilRenderer.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/TunnelHelper.java (89%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/TunnelRenderer.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/UDPSorters.java (99%) rename apps/routerconsole/java/src/net/i2p/router/web/{ => helpers}/WriterOutputStream.java (93%) create mode 100644 apps/routerconsole/java/src/net/i2p/router/web/helpers/package.html diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml index cb7f48468..f1b25fa09 100644 --- a/apps/routerconsole/java/build.xml +++ b/apps/routerconsole/java/build.xml @@ -123,7 +123,7 @@ - + @@ -169,7 +169,7 @@ - + @@ -312,6 +312,7 @@ + @@ -387,8 +388,7 @@ - - + @@ -427,8 +427,7 @@ - - + diff --git a/apps/routerconsole/java/src/net/i2p/router/update/PluginUpdateRunner.java b/apps/routerconsole/java/src/net/i2p/router/update/PluginUpdateRunner.java index d7fc8d09f..5084c4860 100644 --- a/apps/routerconsole/java/src/net/i2p/router/update/PluginUpdateRunner.java +++ b/apps/routerconsole/java/src/net/i2p/router/update/PluginUpdateRunner.java @@ -16,11 +16,10 @@ import net.i2p.data.DataFormatException; import net.i2p.data.DataHelper; import net.i2p.data.SigningPublicKey; import net.i2p.router.RouterContext; -import net.i2p.router.web.ConfigClientsHelper; import net.i2p.router.web.ConfigUpdateHandler; -import net.i2p.router.web.LogsHelper; import net.i2p.router.web.Messages; import net.i2p.router.web.PluginStarter; +import net.i2p.router.web.RouterConsoleRunner; import net.i2p.update.*; import net.i2p.util.EepGet; import net.i2p.util.FileUtil; @@ -387,7 +386,7 @@ class PluginUpdateRunner extends UpdateRunner { _appName = appName; _newVersion = version; - String minVersion = ConfigClientsHelper.stripHTML(props, "min-i2p-version"); + String minVersion = PluginStarter.stripHTML(props, "min-i2p-version"); if (minVersion != null && VersionComparator.comp(CoreVersion.VERSION, minVersion) < 0) { to.delete(); @@ -395,7 +394,7 @@ class PluginUpdateRunner extends UpdateRunner { return; } - minVersion = ConfigClientsHelper.stripHTML(props, "min-java-version"); + minVersion = PluginStarter.stripHTML(props, "min-java-version"); if (minVersion != null && VersionComparator.comp(System.getProperty("java.version"), minVersion) < 0) { to.delete(); @@ -436,22 +435,22 @@ class PluginUpdateRunner extends UpdateRunner { statusDone("" + _t("Downloaded plugin version {0} is not newer than installed plugin", version) + ""); return; } - minVersion = ConfigClientsHelper.stripHTML(props, "min-installed-version"); + minVersion = PluginStarter.stripHTML(props, "min-installed-version"); if (minVersion != null && VersionComparator.comp(minVersion, oldVersion) > 0) { to.delete(); statusDone("" + _t("Plugin update requires installed plugin version {0} or higher", minVersion) + ""); return; } - String maxVersion = ConfigClientsHelper.stripHTML(props, "max-installed-version"); + String maxVersion = PluginStarter.stripHTML(props, "max-installed-version"); if (maxVersion != null && VersionComparator.comp(maxVersion, oldVersion) < 0) { to.delete(); statusDone("" + _t("Plugin update requires installed plugin version {0} or lower", maxVersion) + ""); return; } - oldVersion = LogsHelper.jettyVersion(); - minVersion = ConfigClientsHelper.stripHTML(props, "min-jetty-version"); + oldVersion = RouterConsoleRunner.jettyVersion(); + minVersion = PluginStarter.stripHTML(props, "min-jetty-version"); if (minVersion != null && VersionComparator.comp(minVersion, oldVersion) > 0) { to.delete(); @@ -465,7 +464,7 @@ class PluginUpdateRunner extends UpdateRunner { statusDone("" + _t("Plugin requires Jetty version {0} or lower", "8.9999") + ""); return; } - maxVersion = ConfigClientsHelper.stripHTML(props, "max-jetty-version"); + maxVersion = PluginStarter.stripHTML(props, "max-jetty-version"); if (maxVersion != null && VersionComparator.comp(maxVersion, oldVersion) < 0) { to.delete(); @@ -536,10 +535,10 @@ class PluginUpdateRunner extends UpdateRunner { // start everything unless it was disabled and not running before try { if (PluginStarter.startPlugin(_context, appName)) { - String linkName = ConfigClientsHelper.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(_context)); + String linkName = PluginStarter.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(_context)); if (linkName == null) - linkName = ConfigClientsHelper.stripHTML(props, "consoleLinkName"); - String linkURL = ConfigClientsHelper.stripHTML(props, "consoleLinkURL"); + linkName = PluginStarter.stripHTML(props, "consoleLinkName"); + String linkURL = PluginStarter.stripHTML(props, "consoleLinkURL"); String link; if (linkName != null && linkURL != null) link = "" + linkName + ' ' + version + ""; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/App.java b/apps/routerconsole/java/src/net/i2p/router/web/App.java new file mode 100644 index 000000000..ab46849f1 --- /dev/null +++ b/apps/routerconsole/java/src/net/i2p/router/web/App.java @@ -0,0 +1,19 @@ +package net.i2p.router.web; + +/** + * @since 0.9.33 moved from HomeHelper + */ +public class App { + public final String name; + public final String desc; + public final String url; + public final String icon; + + public App(String name, String desc, String url, String icon) { + this.name = name; + this.desc = desc; + this.url = url; + this.icon = icon; + } +} + diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java index 74ad861e1..87bdc9b2f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java @@ -18,6 +18,8 @@ public class CSSHelper extends HelperBase { public static final String PROP_UNIVERSAL_THEMING = "routerconsole.universal.theme"; public static final String PROP_THEME_NAME = "routerconsole.theme"; + /** @since 0.9.33 moved from ConfigUIHelper */ + public static final String PROP_THEME_PFX = PROP_THEME_NAME + '.'; public static final String DEFAULT_THEME = "light"; public static final String BASE_THEME_PATH = "/themes/console/"; private static final String FORCE = "classic"; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java index bd3705b98..7bfc470fe 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.util.List; import java.util.Properties; +import net.i2p.I2PAppContext; import net.i2p.app.ClientApp; import net.i2p.app.ClientAppManager; import net.i2p.app.ClientAppState; @@ -29,6 +30,7 @@ public class ConfigServiceHandler extends FormHandler { private static final String LISTENER_AVAILABLE = "3.2.0"; private static final String PROPERTIES_AVAILABLE = "3.2.0"; + private static final String LOCATION_AVAILABLE = "3.3.7"; /** * Register two shutdown hooks, one to rekey and/or tell the wrapper we are stopping, @@ -264,7 +266,7 @@ public class ConfigServiceHandler extends FormHandler { } catch (Throwable t) { addFormError("Warning: unable to contact the service manager - " + t.getMessage()); } - File wlog = LogsHelper.wrapperLogFile(_context); + File wlog = wrapperLogFile(_context); addFormNotice(_t("Threads dumped to {0}", wlog.getAbsolutePath())); } else if (_t("View console on startup").equals(_action)) { browseOnStartup(true); @@ -284,6 +286,37 @@ public class ConfigServiceHandler extends FormHandler { } } + /** + * Does not necessarily exist. + * + * @return non-null, doesn't necessarily exist + * @since 0.9.1, public since 0.9.27, moved from LogsHelper in 0.9.33 + */ + public static File wrapperLogFile(I2PAppContext ctx) { + File f = null; + if (ctx.hasWrapper()) { + String wv = System.getProperty("wrapper.version"); + if (wv != null && VersionComparator.comp(wv, LOCATION_AVAILABLE) >= 0) { + try { + f = WrapperManager.getWrapperLogFile(); + } catch (Throwable t) {} + } + } + if (f == null || !f.exists()) { + // RouterLaunch puts the location here if no wrapper + String path = System.getProperty("wrapper.logfile"); + if (path != null) { + f = new File(path); + } else { + // look in new and old places + f = new File(System.getProperty("java.io.tmpdir"), "wrapper.log"); + if (!f.exists()) + f = new File(ctx.getBaseDir(), "wrapper.log"); + } + } + return f; + } + private void installService() { try { Runtime.getRuntime().exec("install_i2p_service_winnt.bat"); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ContextHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ContextHelper.java index f6f036bc2..a6a220024 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ContextHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ContextHelper.java @@ -5,7 +5,7 @@ import java.util.List; import net.i2p.data.Hash; import net.i2p.router.RouterContext; -class ContextHelper { +public class ContextHelper { /** @throws IllegalStateException if no context available */ public static RouterContext getContext(String contextId) { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/GraphConstants.java b/apps/routerconsole/java/src/net/i2p/router/web/GraphConstants.java new file mode 100644 index 000000000..6cb6e3ff5 --- /dev/null +++ b/apps/routerconsole/java/src/net/i2p/router/web/GraphConstants.java @@ -0,0 +1,16 @@ +package net.i2p.router.web; + +/** + * Basic graph defaults + * + * @since 0.9.33 pulled out of GraphHelper + */ +public class GraphConstants { + + private GraphConstants() {} + + public static final int DEFAULT_X = 400; + public static final int DEFAULT_Y = 100; + public static final int MAX_X = 2048; + public static final int MAX_Y = 1024; +} diff --git a/apps/routerconsole/java/src/net/i2p/router/web/HelperBase.java b/apps/routerconsole/java/src/net/i2p/router/web/HelperBase.java index b6e710544..8515e4df1 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/HelperBase.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/HelperBase.java @@ -11,8 +11,10 @@ public abstract class HelperBase { protected RouterContext _context; protected Writer _out; - static final String PROP_ADVANCED = "routerconsole.advanced"; - static final String CHECKED = " checked=\"checked\" "; + /** @since public since 0.9.33, was package private */ + public static final String PROP_ADVANCED = "routerconsole.advanced"; + /** @since public since 0.9.33, was package private */ + public static final String CHECKED = " checked=\"checked\" "; /** * Configure this bean to query a particular router context diff --git a/apps/routerconsole/java/src/net/i2p/router/web/Messages.java b/apps/routerconsole/java/src/net/i2p/router/web/Messages.java index 196bc6ab8..e08eb41d7 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/Messages.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/Messages.java @@ -9,7 +9,8 @@ import net.i2p.util.Translate; public class Messages extends Translate { private static final String BUNDLE_NAME = "net.i2p.router.web.messages"; - static final String COUNTRY_BUNDLE_NAME = "net.i2p.router.countries.messages"; + /** @since public since 0.9.33, was package private */ + public static final String COUNTRY_BUNDLE_NAME = "net.i2p.router.countries.messages"; /** lang in routerconsole.lang property, else current locale */ public static String getString(String key, I2PAppContext ctx) { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NavHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/NavHelper.java index 9e1393c23..6d71d888f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NavHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/NavHelper.java @@ -7,7 +7,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import net.i2p.I2PAppContext; -import net.i2p.router.web.HomeHelper.App; +import net.i2p.router.web.App; public class NavHelper { private static final Map _apps = new ConcurrentHashMap(4); @@ -91,12 +91,12 @@ public class NavHelper { * For HomeHelper * @param ctx unused * @return non-null, possibly empty - * @since 0.9 + * @since 0.9, public since 0.9.33, was package private */ - static List getClientApps(I2PAppContext ctx) { + public static List getClientApps(I2PAppContext ctx) { if (_apps.isEmpty()) return Collections.emptyList(); - List rv = new ArrayList(_apps.size()); + List rv = new ArrayList(_apps.size()); for (Map.Entry e : _apps.entrySet()) { String name = e.getKey(); String path = e.getValue(); @@ -113,7 +113,7 @@ public class NavHelper { icon = "/themes/console/images/email.png"; else icon = "/themes/console/images/plugin.png"; - HomeHelper.App app = new HomeHelper.App(name, tip, path, icon); + App app = new App(name, tip, path, icon); rv.add(app); } return rv; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java index c33f0e926..3fa2adece 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java @@ -87,7 +87,10 @@ public class PluginStarter implements Runnable { _context = ctx; } - static boolean pluginsEnabled(I2PAppContext ctx) { + /** + * @since public since 0.9.33, was package private + */ + public static boolean pluginsEnabled(I2PAppContext ctx) { return ctx.getBooleanPropertyDefaultTrue("router.enablePlugins"); } @@ -106,9 +109,9 @@ public class PluginStarter implements Runnable { /** * threaded - * @since 0.8.13 + * @since 0.8.13, public since 0.9.33, was package private */ - static void updateAll(RouterContext ctx) { + public static void updateAll(RouterContext ctx) { Thread t = new I2PAppThread(new PluginUpdater(ctx), "PluginUpdater", true); t.start(); } @@ -316,7 +319,7 @@ public class PluginStarter implements Runnable { // For the following, we use the exact same translated strings as in PluginUpdateRunner // to avoid duplication - String minVersion = ConfigClientsHelper.stripHTML(props, "min-i2p-version"); + String minVersion = stripHTML(props, "min-i2p-version"); if (minVersion != null && VersionComparator.comp(CoreVersion.VERSION, minVersion) < 0) { String foo = "Plugin " + appName + " requires I2P version " + minVersion + " or higher"; @@ -326,7 +329,7 @@ public class PluginStarter implements Runnable { throw new Exception(foo); } - minVersion = ConfigClientsHelper.stripHTML(props, "min-java-version"); + minVersion = stripHTML(props, "min-java-version"); if (minVersion != null && VersionComparator.comp(System.getProperty("java.version"), minVersion) < 0) { String foo = "Plugin " + appName + " requires Java version " + minVersion + " or higher"; @@ -336,8 +339,8 @@ public class PluginStarter implements Runnable { throw new Exception(foo); } - String jVersion = LogsHelper.jettyVersion(); - minVersion = ConfigClientsHelper.stripHTML(props, "min-jetty-version"); + String jVersion = RouterConsoleRunner.jettyVersion(); + minVersion = stripHTML(props, "min-jetty-version"); if (minVersion != null && VersionComparator.comp(minVersion, jVersion) > 0) { String foo = "Plugin " + appName + " requires Jetty version " + minVersion + " or higher"; @@ -348,7 +351,7 @@ public class PluginStarter implements Runnable { } String blacklistVersion = jetty9Blacklist.get(appName); - String curVersion = ConfigClientsHelper.stripHTML(props, "version"); + String curVersion = stripHTML(props, "version"); if (blacklistVersion != null && VersionComparator.comp(curVersion, blacklistVersion) <= 0) { String foo = "Plugin " + appName + " requires Jetty version 8.9999 or lower"; @@ -358,7 +361,7 @@ public class PluginStarter implements Runnable { throw new Exception(foo); } - String maxVersion = ConfigClientsHelper.stripHTML(props, "max-jetty-version"); + String maxVersion = stripHTML(props, "max-jetty-version"); if (maxVersion != null && VersionComparator.comp(maxVersion, jVersion) < 0) { String foo = "Plugin " + appName + " requires Jetty version " + maxVersion + " or lower"; @@ -379,7 +382,7 @@ public class PluginStarter implements Runnable { String name = tfiles[i].getName(); if (tfiles[i].isDirectory() && (!Arrays.asList(STANDARD_THEMES).contains(tfiles[i]))) { // deprecated - ctx.router().setConfigSetting(ConfigUIHelper.PROP_THEME_PFX + name, tfiles[i].getAbsolutePath()); + ctx.router().setConfigSetting(CSSHelper.PROP_THEME_PFX + name, tfiles[i].getAbsolutePath()); // we don't need to save } } @@ -438,7 +441,7 @@ public class PluginStarter implements Runnable { } } // Check for iconfile in plugin.properties - String icfile = ConfigClientsHelper.stripHTML(props, "console-icon"); + String icfile = stripHTML(props, "console-icon"); if (icfile != null && !icfile.contains("..")) { StringBuilder buf = new StringBuilder(32); buf.append('/').append(appName); @@ -481,14 +484,14 @@ public class PluginStarter implements Runnable { } } // add summary bar link - String name = ConfigClientsHelper.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx)); + String name = stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx)); if (name == null) - name = ConfigClientsHelper.stripHTML(props, "consoleLinkName"); - String url = ConfigClientsHelper.stripHTML(props, "consoleLinkURL"); + name = stripHTML(props, "consoleLinkName"); + String url = stripHTML(props, "consoleLinkURL"); if (name != null && url != null && name.length() > 0 && url.length() > 0) { - String tip = ConfigClientsHelper.stripHTML(props, "consoleLinkTooltip_" + Messages.getLanguage(ctx)); + String tip = stripHTML(props, "consoleLinkTooltip_" + Messages.getLanguage(ctx)); if (tip == null) - tip = ConfigClientsHelper.stripHTML(props, "consoleLinkTooltip"); + tip = stripHTML(props, "consoleLinkTooltip"); NavHelper.registerApp(name, url, tip, iconfile); } @@ -546,9 +549,9 @@ public class PluginStarter implements Runnable { // remove summary bar link Properties props = pluginProperties(ctx, appName); - String name = ConfigClientsHelper.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx)); + String name = stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx)); if (name == null) - name = ConfigClientsHelper.stripHTML(props, "consoleLinkName"); + name = stripHTML(props, "consoleLinkName"); if (name != null && name.length() > 0) NavHelper.unregisterApp(name); @@ -557,8 +560,11 @@ public class PluginStarter implements Runnable { return true; } - /** @return true on success - caller should call stopPlugin() first */ - static boolean deletePlugin(RouterContext ctx, String appName) throws Exception { + /** + * @return true on success - caller should call stopPlugin() first + * @since public since 0.9.33, was package private + */ + public static boolean deletePlugin(RouterContext ctx, String appName) throws Exception { Log log = ctx.logManager().getLog(PluginStarter.class); File pluginDir = new File(ctx.getConfigDir(), PLUGIN_DIR + '/' + appName); if ((!pluginDir.exists()) || (!pluginDir.isDirectory())) { @@ -584,7 +590,7 @@ public class PluginStarter implements Runnable { for (int i = 0; i < tfiles.length; i++) { String name = tfiles[i].getName(); if (tfiles[i].isDirectory() && (!Arrays.asList(STANDARD_THEMES).contains(tfiles[i]))) { - removes.add(ConfigUIHelper.PROP_THEME_PFX + name); + removes.add(CSSHelper.PROP_THEME_PFX + name); if (name.equals(current)) changes.put(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); } @@ -1033,6 +1039,19 @@ public class PluginStarter implements Runnable { method.invoke(urlClassLoader, new Object[]{u}); } + /** + * Like in DataHelper but doesn't convert null to "" + * There's a lot worse things a plugin could do but... + * @since moved from ConfigClientsHelper in 0.9.33 + */ + public static String stripHTML(Properties props, String key) { + String orig = props.getProperty(key); + if (orig == null) return null; + String t1 = orig.replace('<', ' '); + String rv = t1.replace('>', ' '); + return rv; + } + /** * translate a string * @since 0.9.30 diff --git a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java index 777edac87..62bc71c19 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java @@ -288,6 +288,11 @@ public class RouterConsoleRunner implements RouterApp { return _server; } + /** @since 0.8.13, moved from LogsHelper in 0.9.33 */ + public static String jettyVersion() { + return Server.getVersion(); + } + private void startTrayApp() { // if no permissions, don't even try // isLaunchedAsService() always returns true on Linux diff --git a/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java b/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java index 4d5a0c979..275d237f0 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java @@ -13,6 +13,7 @@ import java.util.concurrent.Semaphore; import net.i2p.data.DataHelper; import net.i2p.router.RouterContext; +import static net.i2p.router.web.GraphConstants.*; import net.i2p.stat.Rate; import net.i2p.stat.RateStat; import net.i2p.util.FileUtil; @@ -79,8 +80,8 @@ public class StatSummarizer implements Runnable { } } - /** @since 0.8.7 */ - static boolean isDisabled() { + /** @since 0.8.7, public since 0.9.33, was package private */ + public static boolean isDisabled() { return _instance == null || _instance._isDisabled; } @@ -96,10 +97,14 @@ public class StatSummarizer implements Runnable { } } - /** list of SummaryListener instances */ - List getListeners() { return _listeners; } + /** + * List of SummaryListener instances + * @since public since 0.9.33, was package private + */ + public List getListeners() { return _listeners; } - static final String DEFAULT_DATABASES = "bw.sendRate.60000" + + /** @since public since 0.9.33, was package private */ + public static final String DEFAULT_DATABASES = "bw.sendRate.60000" + ",bw.recvRate.60000" + // ",tunnel.testSuccessTime.60000" + // ",udp.outboundActiveCount.60000" + @@ -174,7 +179,7 @@ public class StatSummarizer implements Runnable { } public boolean renderPng(Rate rate, OutputStream out) throws IOException { - return renderPng(rate, out, GraphHelper.DEFAULT_X, GraphHelper.DEFAULT_Y, + return renderPng(rate, out, DEFAULT_X, DEFAULT_Y, false, false, false, false, -1, 0, true); } @@ -220,14 +225,14 @@ public class StatSummarizer implements Runnable { private boolean locked_renderPng(Rate rate, OutputStream out, int width, int height, boolean hideLegend, boolean hideGrid, boolean hideTitle, boolean showEvents, int periodCount, int end, boolean showCredit) throws IOException { - if (width > GraphHelper.MAX_X) - width = GraphHelper.MAX_X; + if (width > MAX_X) + width = MAX_X; else if (width <= 0) - width = GraphHelper.DEFAULT_X; - if (height > GraphHelper.MAX_Y) - height = GraphHelper.MAX_Y; + width = DEFAULT_X; + if (height > MAX_Y) + height = MAX_Y; else if (height <= 0) - height = GraphHelper.DEFAULT_Y; + height = DEFAULT_Y; if (end < 0) end = 0; for (SummaryListener lsnr : _listeners) { @@ -321,14 +326,14 @@ public class StatSummarizer implements Runnable { if (txLsnr == null || rxLsnr == null) throw new IOException("no rates for combined graph"); - if (width > GraphHelper.MAX_X) - width = GraphHelper.MAX_X; + if (width > MAX_X) + width = MAX_X; else if (width <= 0) - width = GraphHelper.DEFAULT_X; - if (height > GraphHelper.MAX_Y) - height = GraphHelper.MAX_Y; + width = DEFAULT_X; + if (height > MAX_Y) + height = MAX_Y; else if (height <= 0) - height = GraphHelper.DEFAULT_Y; + height = DEFAULT_Y; txLsnr.renderPng(out, width, height, hideLegend, hideGrid, hideTitle, showEvents, periodCount, end, showCredit, rxLsnr, _t("Bandwidth usage")); return true; @@ -337,8 +342,9 @@ public class StatSummarizer implements Runnable { /** * @param specs statName.period,statName.period,statName.period * @return list of Rate objects + * @since public since 0.9.33, was package private */ - Set parseSpecs(String specs) { + public Set parseSpecs(String specs) { if (specs == null) return Collections.emptySet(); StringTokenizer tok = new StringTokenizer(specs, ","); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java index 269488389..26d5d18de 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java @@ -28,8 +28,9 @@ import org.jrobin.core.Sample; * * @since 0.6.1.13 */ -class SummaryListener implements RateSummaryListener { - static final String PROP_PERSISTENT = "routerconsole.graphPersistent"; +public class SummaryListener implements RateSummaryListener { + /** @since public since 0.9.33, was package private */ + public static final String PROP_PERSISTENT = "routerconsole.graphPersistent"; /** note that .jrb files are NOT compatible with .rrd files */ static final String RRD_DIR = "rrd"; private static final String RRD_PREFIX = "rrd-"; @@ -51,7 +52,8 @@ class SummaryListener implements RateSummaryListener { static final int PERIODS = 60 * 24; // 1440 private static final int MIN_ROWS = PERIODS; - static final int MAX_ROWS = 91 * MIN_ROWS; + /** @since public since 0.9.33, was package private */ + public static final int MAX_ROWS = 91 * MIN_ROWS; private static final long THREE_MONTHS = 91l * 24 * 60 * 60 * 1000; public SummaryListener(Rate r) { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryRenderer.java index 1c52b64d4..03f7e5435 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryRenderer.java @@ -18,6 +18,7 @@ import net.i2p.I2PAppContext; import net.i2p.data.DataHelper; import net.i2p.router.RouterContext; import net.i2p.router.util.EventLog; +import static net.i2p.router.web.GraphConstants.*; import net.i2p.util.Log; import net.i2p.util.SystemVersion; @@ -74,8 +75,8 @@ class SummaryRenderer { RrdGraphDef def = template.getRrdGraphDef(); def.setTimeSpan(start/1000, end/1000); // ignore the periods in the template // FIXME not clear how to get the height and width from the template - int width = GraphHelper.DEFAULT_X; - int height = GraphHelper.DEFAULT_Y; + int width = DEFAULT_X; + int height = DEFAULT_Y; def.setWidth(width); def.setHeight(height); @@ -97,7 +98,7 @@ class SummaryRenderer { *****/ } - public void render(OutputStream out) throws IOException { render(out, GraphHelper.DEFAULT_X, GraphHelper.DEFAULT_Y, + public void render(OutputStream out) throws IOException { render(out, DEFAULT_X, DEFAULT_Y, false, false, false, false, -1, 0, false); } /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java index 884a88cbc..f4042b253 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java @@ -52,8 +52,9 @@ public class WebAppStarter { * Prior to 0.9.28, was not guaranteed to throw on failure. * * @throws Exception just about anything, caller would be wise to catch Throwable + * @since public since 0.9.33, was package private */ - static void startWebApp(RouterContext ctx, ContextHandlerCollection server, + public static void startWebApp(RouterContext ctx, ContextHandlerCollection server, String appName, String warPath) throws Exception { File tmpdir = new SecureDirectory(ctx.getTempDir(), "jetty-work-" + appName + ctx.random().nextInt()); WebAppContext wac = addWebApp(ctx, server, appName, warPath, tmpdir); @@ -138,8 +139,9 @@ public class WebAppStarter { /** * Stop it and remove the context. * Throws just about anything, caller would be wise to catch Throwable + * @since public since 0.9.33, was package private */ - static void stopWebApp(String appName) { + public static void stopWebApp(String appName) { ContextHandler wac = getWebApp(appName); if (wac == null) return; @@ -156,7 +158,8 @@ public class WebAppStarter { } catch (IllegalStateException ise) {} } - static boolean isWebAppRunning(String appName) { + /** @since public since 0.9.33; was package private */ + public static boolean isWebAppRunning(String appName) { ContextHandler wac = getWebApp(appName); if (wac == null) return false; @@ -182,8 +185,11 @@ public class WebAppStarter { return null; } - /** see comments in ConfigClientsHandler */ - static ContextHandlerCollection getConsoleServer() { + /** + * See comments in ConfigClientsHandler + * @since public since 0.9.33, was package private + */ + public static ContextHandlerCollection getConsoleServer() { Server s = RouterConsoleRunner.getConsoleServer(); if (s == null) return null; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/BanlistRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/BanlistRenderer.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java index a137aff57..64a530a8c 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/BanlistRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; /* * free (adj.): unencumbered; not under the control of others * Written by jrandom in 2003 and released into the public domain @@ -20,6 +20,7 @@ import net.i2p.data.DataHelper; import net.i2p.data.Hash; import net.i2p.router.RouterContext; import net.i2p.router.Banlist; +import net.i2p.router.web.Messages; /** * Moved from Banlist.java diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CertHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/CertHelper.java similarity index 97% rename from apps/routerconsole/java/src/net/i2p/router/web/CertHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/CertHelper.java index 444188c49..4860a3d73 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/CertHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/CertHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.File; import java.io.IOException; @@ -6,6 +6,7 @@ import java.io.IOException; import net.i2p.data.DataHelper; import net.i2p.util.FileUtil; import net.i2p.router.crypto.FamilyKeyCrypto; +import net.i2p.router.web.HelperBase; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CodedIconRendererServlet.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/CodedIconRendererServlet.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/CodedIconRendererServlet.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/CodedIconRendererServlet.java index f85c3d488..de9d56282 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/CodedIconRendererServlet.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/CodedIconRendererServlet.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.File; import java.io.IOException; @@ -15,6 +15,7 @@ import javax.servlet.ServletResponse; import net.i2p.I2PAppContext; import net.i2p.data.Base64; +import net.i2p.router.web.NavHelper; import net.i2p.util.FileUtil; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigAdvancedHandler.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigAdvancedHandler.java index c66436216..c5c7cc921 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigAdvancedHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -10,6 +10,7 @@ import java.util.Set; import net.i2p.data.DataHelper; import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; +import net.i2p.router.web.FormHandler; /** * Handler to deal with form submissions from the advanced config form and act diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigAdvancedHelper.java similarity index 94% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigAdvancedHelper.java index fd258828c..e8bf299e3 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigAdvancedHelper.java @@ -1,9 +1,10 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.Map; import java.util.TreeMap; import net.i2p.data.DataHelper; +import net.i2p.router.web.HelperBase; public class ConfigAdvancedHelper extends HelperBase { static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant"; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java index a40c64531..8ee551541 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.BufferedOutputStream; import java.io.File; @@ -24,6 +24,15 @@ import net.i2p.router.startup.ClientAppConfig; import net.i2p.router.startup.LoadClientAppsJob; import net.i2p.router.update.ConsoleUpdateManager; import static net.i2p.update.UpdateType.*; +import net.i2p.router.web.ConfigUpdateHandler; +import net.i2p.router.web.ConsolePasswordManager; +import net.i2p.router.web.FormHandler; +import net.i2p.router.web.Messages; +import net.i2p.router.web.NewsHelper; +import net.i2p.router.web.PluginStarter; +import net.i2p.router.web.RouterConsoleRunner; +import net.i2p.router.web.UpdateHandler; +import net.i2p.router.web.WebAppStarter; import net.i2p.util.SecureFileOutputStream; import net.i2p.util.PortMapper; @@ -529,7 +538,7 @@ public class ConfigClientsHandler extends FormHandler { } // So that update() will post a status to the summary bar before we reload try { - Thread.sleep(1000); + Thread.sleep(5000); } catch (InterruptedException ie) {} } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java index 8602ac319..a6792e946 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.text.Collator; import java.text.SimpleDateFormat; @@ -18,6 +18,11 @@ import net.i2p.data.DataHelper; import net.i2p.router.client.ClientManagerFacadeImpl; import net.i2p.router.startup.ClientAppConfig; import net.i2p.router.startup.LoadClientAppsJob; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.Messages; +import net.i2p.router.web.PluginStarter; +import net.i2p.router.web.RouterConsoleRunner; +import net.i2p.router.web.WebAppStarter; import net.i2p.util.Addresses; public class ConfigClientsHelper extends HelperBase { @@ -389,10 +394,6 @@ public class ConfigClientsHelper extends HelperBase { * There's a lot worse things a plugin could do but... */ public static String stripHTML(Properties props, String key) { - String orig = props.getProperty(key); - if (orig == null) return null; - String t1 = orig.replace('<', ' '); - String rv = t1.replace('>', ' '); - return rv; + return PluginStarter.stripHTML(props, key); } } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigFamilyHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigFamilyHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java index 7efca8b74..755aedb64 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigFamilyHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.File; import java.io.InputStream; @@ -14,6 +14,7 @@ import java.util.Map; import net.i2p.crypto.CertUtil; import net.i2p.crypto.KeyStoreUtil; import net.i2p.router.crypto.FamilyKeyCrypto; +import net.i2p.router.web.FormHandler; import net.i2p.util.SecureDirectory; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigFamilyHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigFamilyHelper.java similarity index 82% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigFamilyHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigFamilyHelper.java index ede566ec6..1536d0ef9 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigFamilyHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigFamilyHelper.java @@ -1,6 +1,7 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import net.i2p.router.crypto.FamilyKeyCrypto; +import net.i2p.router.web.HelperBase; /** * @since 0.9.25 diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigHomeHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java similarity index 87% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigHomeHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java index f26b182a0..a653f057b 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigHomeHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.Collection; import java.util.HashSet; @@ -6,6 +6,8 @@ import java.util.Iterator; import java.util.Set; import net.i2p.data.DataHelper; +import net.i2p.router.web.App; +import net.i2p.router.web.FormHandler; /** * Simple home page configuration. @@ -52,7 +54,7 @@ public class ConfigHomeHandler extends FormHandler { return; } String config = _context.getProperty(prop, dflt); - Collection apps; + Collection apps; if ("3".equals(group)) apps = HomeHelper.buildSearchApps(config); else @@ -73,13 +75,13 @@ public class ConfigHomeHandler extends FormHandler { //url = DataHelper.escapeHTML(url).replace(",", ","); name = name.replace(",", "."); url = url.replace(",", "."); // fail - HomeHelper.App app = null; + App app = null; if ("1".equals(group)) - app = new HomeHelper.App(name, "", url, "/themes/console/images/eepsite.png"); + app = new App(name, "", url, "/themes/console/images/eepsite.png"); else if ("2".equals(group)) - app = new HomeHelper.App(name, "", url, "/themes/console/images/title_window.png"); + app = new App(name, "", url, "/themes/console/images/title_window.png"); else - app = new HomeHelper.App(name, "", url, "/themes/console/images/question.png"); + app = new App(name, "", url, "/themes/console/images/question.png"); apps.add(app); addFormNotice(_t("Added") + ": " + app.name); } else { @@ -94,8 +96,8 @@ public class ConfigHomeHandler extends FormHandler { k = k.substring(7); toDelete.add(k); } - for (Iterator iter = apps.iterator(); iter.hasNext(); ) { - HomeHelper.App app = iter.next(); + for (Iterator iter = apps.iterator(); iter.hasNext(); ) { + App app = iter.next(); if (toDelete.contains(app.name)) { iter.remove(); addFormNotice(_t("Removed") + ": " + app.name); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigKeyringHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java similarity index 96% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigKeyringHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java index b5930895b..f29b107b9 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigKeyringHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java @@ -1,8 +1,9 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import net.i2p.data.DataFormatException; import net.i2p.data.Hash; import net.i2p.data.SessionKey; +import net.i2p.router.web.FormHandler; import net.i2p.util.ConvertToHash; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigKeyringHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java similarity index 85% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigKeyringHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java index cf0a5be4b..869a36f2e 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigKeyringHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java @@ -1,8 +1,10 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.StringWriter; +import net.i2p.router.web.HelperBase; + public class ConfigKeyringHelper extends HelperBase { public ConfigKeyringHelper() {} diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigLoggingHandler.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigLoggingHandler.java index f574ab85a..5543883af 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigLoggingHandler.java @@ -1,10 +1,11 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.Properties; import net.i2p.data.DataHelper; +import net.i2p.router.web.FormHandler; import net.i2p.util.LogManager; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigLoggingHelper.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigLoggingHelper.java index 30bf9553a..3a78adc4c 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigLoggingHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.File; import java.util.List; @@ -7,6 +7,7 @@ import java.util.Set; import java.util.TreeSet; import net.i2p.data.DataHelper; +import net.i2p.router.web.HelperBase; import net.i2p.util.Log; public class ConfigLoggingHelper extends HelperBase { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNavHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNavHelper.java similarity index 95% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigNavHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNavHelper.java index 769c75f36..6c26d7af6 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNavHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNavHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.text.Collator; @@ -8,6 +8,10 @@ import java.util.Comparator; import java.util.List; import java.util.Locale; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.Messages; +import net.i2p.router.web.PluginStarter; + /** * Render the configuration menu at the top of all the config pages. * refactored from confignav.jsp to reduce size and make translation easier diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHandler.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHandler.java index 4ea02a815..bcac4198f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.ArrayList; import java.util.Collections; @@ -15,6 +15,7 @@ import net.i2p.router.transport.TransportManager; import net.i2p.router.transport.TransportUtil; import net.i2p.router.transport.udp.UDPTransport; import net.i2p.router.web.ConfigServiceHandler; +import net.i2p.router.web.FormHandler; import net.i2p.util.Addresses; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHelper.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHelper.java index 7127584c4..f1593d488 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.Collections; import java.util.HashSet; @@ -12,6 +12,7 @@ import net.i2p.router.Router; import net.i2p.router.transport.TransportManager; import net.i2p.router.transport.TransportUtil; import net.i2p.router.transport.udp.UDPTransport; +import net.i2p.router.web.HelperBase; import net.i2p.util.Addresses; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigPeerHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java similarity index 97% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigPeerHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java index 47f9e3f1b..1b29feb4d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigPeerHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java @@ -1,8 +1,9 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import net.i2p.data.Hash; import net.i2p.data.Base64; import net.i2p.router.peermanager.PeerProfile; +import net.i2p.router.web.FormHandler; /** * diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigPeerHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java similarity index 85% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigPeerHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java index fe532d470..49dce3f32 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigPeerHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java @@ -1,8 +1,10 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.StringWriter; +import net.i2p.router.web.HelperBase; + public class ConfigPeerHelper extends HelperBase { public ConfigPeerHelper() {} diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigReseedHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigReseedHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java index faa007552..bf88bd37d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigReseedHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.InputStream; import java.io.IOException; @@ -11,6 +11,8 @@ import java.util.Map; import net.i2p.router.networkdb.reseed.ReseedChecker; import net.i2p.router.networkdb.reseed.Reseeder; +import net.i2p.router.web.FormHandler; +import net.i2p.router.web.Messages; /** * @since 0.8.3 diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigReseedHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigReseedHelper.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigReseedHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigReseedHelper.java index 4cf8e3321..da124e20f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigReseedHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigReseedHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.ArrayList; import java.util.Collections; @@ -6,6 +6,7 @@ import java.util.List; import java.util.StringTokenizer; import net.i2p.router.networkdb.reseed.Reseeder; +import net.i2p.router.web.HelperBase; /** * @since 0.8.3 diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigRestartBean.java similarity index 97% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigRestartBean.java index 5b067a914..6c8218a29 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigRestartBean.java @@ -1,8 +1,11 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import net.i2p.data.DataHelper; import net.i2p.router.Router; import net.i2p.router.RouterContext; +import net.i2p.router.web.ConfigServiceHandler; +import net.i2p.router.web.ContextHelper; +import net.i2p.router.web.Messages; import net.i2p.util.RandomSource; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigStatsHandler.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigStatsHandler.java index b218a18f2..61cdd6e03 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigStatsHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.ArrayList; import java.util.HashMap; @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import java.util.StringTokenizer; +import net.i2p.router.web.FormHandler; import net.i2p.stat.StatManager; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigStatsHelper.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigStatsHelper.java index 1f155442a..8e7ba3faf 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigStatsHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.text.Collator; import java.util.ArrayList; @@ -11,6 +11,8 @@ import java.util.SortedSet; import java.util.StringTokenizer; import java.util.TreeMap; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.StatSummarizer; import net.i2p.stat.FrequencyStat; import net.i2p.stat.Rate; import net.i2p.stat.RateStat; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigSummaryHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigSummaryHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java index 4dc34fb9f..fdffba420 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigSummaryHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.HashSet; import java.util.Iterator; @@ -7,6 +7,9 @@ import java.util.Set; import java.util.TreeMap; import net.i2p.data.DataHelper; +import net.i2p.router.web.CSSHelper; +import net.i2p.router.web.FormHandler; + /** * Simple summary bar configuration. diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigTunnelsHandler.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigTunnelsHandler.java index bbc93dab2..b15d9f48d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigTunnelsHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.HashMap; import java.util.Map; @@ -6,6 +6,7 @@ import java.util.Map; import net.i2p.data.DataFormatException; import net.i2p.data.Hash; import net.i2p.router.TunnelPoolSettings; +import net.i2p.router.web.FormHandler; import net.i2p.util.Log; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java index 2a0e6b054..2bce1cb59 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.Properties; import java.util.Set; @@ -6,6 +6,7 @@ import java.util.Set; import net.i2p.data.DataHelper; import net.i2p.data.Destination; import net.i2p.router.TunnelPoolSettings; +import net.i2p.router.web.HelperBase; public class ConfigTunnelsHelper extends HelperBase { private static final String HOP = "hop"; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHandler.java similarity index 96% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHandler.java index 7b319237f..c1d0505aa 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHandler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.ArrayList; import java.util.HashMap; @@ -6,6 +6,11 @@ import java.util.List; import java.util.Map; import net.i2p.data.DataHelper; +import net.i2p.router.web.CSSHelper; +import net.i2p.router.web.ConsolePasswordManager; +import net.i2p.router.web.RouterConsoleRunner; +import net.i2p.router.web.FormHandler; + /** set the theme */ public class ConfigUIHandler extends FormHandler { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java similarity index 95% rename from apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java index 9c847664a..da73d70d5 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java @@ -1,10 +1,16 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.File; import java.util.Map; import java.util.Set; import java.util.TreeSet; +import net.i2p.router.web.CSSHelper; +import net.i2p.router.web.ConsolePasswordManager; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.Messages; +import net.i2p.router.web.RouterConsoleRunner; + public class ConfigUIHelper extends HelperBase { public String getSettings() { @@ -56,8 +62,6 @@ public class ConfigUIHelper extends HelperBase { return buf.toString(); } - static final String PROP_THEME_PFX = "routerconsole.theme."; - /** @return standard and user-installed themes, sorted (untranslated) */ private Set themeSet() { Set rv = new TreeSet(); @@ -75,8 +79,8 @@ public class ConfigUIHelper extends HelperBase { // user themes Set props = _context.getPropertyNames(); for (String prop : props) { - if (prop.startsWith(PROP_THEME_PFX) && prop.length() > PROP_THEME_PFX.length()) - rv.add(prop.substring(PROP_THEME_PFX.length())); + if (prop.startsWith(CSSHelper.PROP_THEME_PFX) && prop.length() > CSSHelper.PROP_THEME_PFX.length()) + rv.add(prop.substring(CSSHelper.PROP_THEME_PFX.length())); } return rv; } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/EventLogHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/EventLogHelper.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/EventLogHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/EventLogHelper.java index 02d88de9a..e7c0e4312 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/EventLogHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/EventLogHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.Writer; @@ -16,6 +16,8 @@ import java.util.TreeMap; import net.i2p.data.DataHelper; import net.i2p.router.util.EventLog; +import net.i2p.router.web.CSSHelper; +import net.i2p.router.web.FormHandler; import net.i2p.util.SystemVersion; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/FileDumpHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/FileDumpHelper.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/FileDumpHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/FileDumpHelper.java index 3d3a10034..be44d4c2f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/FileDumpHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/FileDumpHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.File; import java.io.FileInputStream; @@ -18,6 +18,8 @@ import java.util.jar.Manifest; import net.i2p.crypto.SHA256Generator; import net.i2p.data.DataHelper; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.PluginStarter; import net.i2p.util.FileUtil; import net.i2p.util.SystemVersion; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/GraphHelper.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/GraphHelper.java index 9dde3f8a1..30fd9678e 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/GraphHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.Serializable; @@ -11,6 +11,13 @@ import java.util.Set; import java.util.TreeSet; import net.i2p.data.DataHelper; +import net.i2p.router.web.CSSHelper; +import net.i2p.router.web.FormHandler; +import static net.i2p.router.web.GraphConstants.*; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.NavHelper; +import net.i2p.router.web.StatSummarizer; +import net.i2p.router.web.SummaryListener; import net.i2p.stat.Rate; /** @@ -34,13 +41,9 @@ public class GraphHelper extends FormHandler { private static final String PROP_PERIODS = "routerconsole.graphPeriods"; private static final String PROP_EVENTS = "routerconsole.graphEvents"; private static final String PROP_LEGEND = "routerconsole.graphHideLegend"; - public static final int DEFAULT_X = 400; - public static final int DEFAULT_Y = 100; private static final int DEFAULT_REFRESH = 5*60; private static final int DEFAULT_PERIODS = 60; private static final boolean DEFAULT_LEGEND = false; - static final int MAX_X = 2048; - static final int MAX_Y = 1024; private static final int MIN_X = 200; private static final int MIN_Y = 60; private static final int MIN_C = 20; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/HomeHelper.java similarity index 97% rename from apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/HomeHelper.java index 3e017e2ee..b9f191838 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/HomeHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/HomeHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.Serializable; import java.util.Collection; @@ -9,6 +9,11 @@ import java.util.TreeSet; import net.i2p.data.DataHelper; import net.i2p.router.RouterContext; +import net.i2p.router.web.App; +import net.i2p.router.web.ConfigUpdateHandler; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.Messages; +import net.i2p.router.web.NavHelper; import net.i2p.util.PortMapper; /** @@ -250,20 +255,6 @@ public class HomeHelper extends HelperBase { return buf.toString(); } - static class App { - public final String name; - public final String desc; - public final String url; - public final String icon; - - public App(String name, String desc, String url, String icon) { - this.name = name; - this.desc = desc; - this.url = url; - this.icon = icon; - } - } - /** ignore case, current locale */ private static class AppComparator implements Comparator, Serializable { public int compare(App l, App r) { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/JobQueueHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/JobQueueHelper.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/JobQueueHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/JobQueueHelper.java index 2dcd3eeff..a9e25cfe6 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/JobQueueHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/JobQueueHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.StringWriter; @@ -12,6 +12,7 @@ import java.util.List; import net.i2p.data.DataHelper; import net.i2p.router.Job; import net.i2p.router.JobStats; +import net.i2p.router.web.HelperBase; import net.i2p.util.ObjectCounter; public class JobQueueHelper extends HelperBase { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java similarity index 83% rename from apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java index f79910b0a..48a0f5183 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.BufferedReader; import java.io.File; @@ -11,25 +11,18 @@ import java.util.List; import net.i2p.I2PAppContext; import net.i2p.crypto.SigType; +import net.i2p.router.web.ConfigServiceHandler; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.RouterConsoleRunner; import net.i2p.util.FileUtil; -import net.i2p.util.VersionComparator; - -import org.eclipse.jetty.server.Server; -import org.tanukisoftware.wrapper.WrapperManager; public class LogsHelper extends HelperBase { - private static final String LOCATION_AVAILABLE = "3.3.7"; private static final String _jstlVersion = jstlVersion(); /** @since 0.8.12 */ public String getJettyVersion() { - return Server.getVersion(); - } - - /** @since 0.8.13 */ - public static String jettyVersion() { - return Server.getVersion(); + return RouterConsoleRunner.jettyVersion(); } /** @since 0.9.15 */ @@ -85,40 +78,9 @@ public class LogsHelper extends HelperBase { _context.logManager().flush(); return formatMessages(_context.logManager().getBuffer().getMostRecentCriticalMessages()); } - - /** - * Does not necessarily exist. - * - * @return non-null, doesn't necessarily exist - * @since 0.9.1, public since 0.9.27 - */ - public static File wrapperLogFile(I2PAppContext ctx) { - File f = null; - if (ctx.hasWrapper()) { - String wv = System.getProperty("wrapper.version"); - if (wv != null && VersionComparator.comp(wv, LOCATION_AVAILABLE) >= 0) { - try { - f = WrapperManager.getWrapperLogFile(); - } catch (Throwable t) {} - } - } - if (f == null || !f.exists()) { - // RouterLaunch puts the location here if no wrapper - String path = System.getProperty("wrapper.logfile"); - if (path != null) { - f = new File(path); - } else { - // look in new and old places - f = new File(System.getProperty("java.io.tmpdir"), "wrapper.log"); - if (!f.exists()) - f = new File(ctx.getBaseDir(), "wrapper.log"); - } - } - return f; - } public String getServiceLogs() { - File f = wrapperLogFile(_context); + File f = ConfigServiceHandler.wrapperLogFile(_context); String str; if (_context.hasWrapper()) { // platform encoding diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NetDbHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbHelper.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/NetDbHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbHelper.java index 31961b11c..802e68ba1 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NetDbHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbHelper.java @@ -1,8 +1,9 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import net.i2p.crypto.SigType; import net.i2p.data.DataHelper; +import net.i2p.router.web.HelperBase; public class NetDbHelper extends HelperBase { private String _routerPrefix; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java index 0cb6035eb..b8576c0b9 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; /* * free (adj.): unencumbered; not under the control of others * Written by jrandom in 2003 and released into the public domain @@ -36,6 +36,7 @@ import net.i2p.router.RouterContext; import net.i2p.router.TunnelPoolSettings; import net.i2p.router.util.HashDistance; // debug import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; +import net.i2p.router.web.Messages; import net.i2p.util.Log; import net.i2p.util.ObjectCounter; import net.i2p.util.Translate; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/OldConsoleHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/OldConsoleHelper.java similarity index 97% rename from apps/routerconsole/java/src/net/i2p/router/web/OldConsoleHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/OldConsoleHelper.java index 8ddf7b261..17ba10c91 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/OldConsoleHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/OldConsoleHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -10,6 +10,7 @@ import net.i2p.CoreVersion; import net.i2p.data.DataHelper; import net.i2p.data.Hash; import net.i2p.router.RouterVersion; +import net.i2p.router.web.HelperBase; public class OldConsoleHelper extends HelperBase { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PeerHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/PeerHelper.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/PeerHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/PeerHelper.java index 80b7a7ac9..d447757ce 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/PeerHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/PeerHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.Serializable; @@ -20,7 +20,8 @@ import net.i2p.router.transport.ntcp.NTCPConnection; import net.i2p.router.transport.ntcp.NTCPTransport; import net.i2p.router.transport.udp.PeerState; import net.i2p.router.transport.udp.UDPTransport; -import static net.i2p.router.web.UDPSorters.*; +import net.i2p.router.web.HelperBase; +import static net.i2p.router.web.helpers.UDPSorters.*; import net.i2p.util.SystemVersion; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java index aca298c2f..33cfc05bb 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.Serializable; @@ -15,6 +15,8 @@ import net.i2p.router.RouterContext; import net.i2p.router.peermanager.DBHistory; import net.i2p.router.peermanager.PeerProfile; import net.i2p.router.peermanager.ProfileOrganizer; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.Messages; import net.i2p.stat.Rate; import net.i2p.stat.RateAverages; import net.i2p.stat.RateStat; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ProfilesHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfilesHelper.java similarity index 98% rename from apps/routerconsole/java/src/net/i2p/router/web/ProfilesHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfilesHelper.java index e9a3eb531..b2a72dfaa 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ProfilesHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfilesHelper.java @@ -1,7 +1,9 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; +import net.i2p.router.web.HelperBase; + public class ProfilesHelper extends HelperBase { private int _full; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ProofHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProofHelper.java similarity index 94% rename from apps/routerconsole/java/src/net/i2p/router/web/ProofHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ProofHelper.java index 01ed5836a..47d3f55cc 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ProofHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProofHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.Date; @@ -6,6 +6,7 @@ import net.i2p.data.DataHelper; import net.i2p.data.router.RouterAddress; import net.i2p.data.router.RouterInfo; import net.i2p.data.Signature; +import net.i2p.router.web.HelperBase; /** * Sign a statement about this router. diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ReseedBundler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedBundler.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/ReseedBundler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedBundler.java index de94af720..7e5ab857d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ReseedBundler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedBundler.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; /* * free (adj.): unencumbered; not under the control of others * Written by jrandom in 2003 and released into the public domain diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ReseedGenerator.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedGenerator.java similarity index 80% rename from apps/routerconsole/java/src/net/i2p/router/web/ReseedGenerator.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedGenerator.java index 377f6276f..70d993aa5 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ReseedGenerator.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedGenerator.java @@ -1,8 +1,10 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.File; import java.io.IOException; +import net.i2p.router.web.HelperBase; + /** * Handler to create a i2preseed.zip file * @since 0.9.19 diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ReseedHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedHandler.java similarity index 86% rename from apps/routerconsole/java/src/net/i2p/router/web/ReseedHandler.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedHandler.java index 5d850355e..42b56cc78 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ReseedHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ReseedHandler.java @@ -1,6 +1,8 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import net.i2p.router.RouterContext; +import net.i2p.router.web.ContextHelper; +import net.i2p.router.web.HelperBase; /** * Handler to deal with reseed requests. diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SearchHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SearchHelper.java similarity index 97% rename from apps/routerconsole/java/src/net/i2p/router/web/SearchHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/SearchHelper.java index 4227e002c..63a80d096 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SearchHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SearchHelper.java @@ -1,9 +1,10 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.util.Map; import java.util.TreeMap; import net.i2p.data.DataHelper; +import net.i2p.router.web.HelperBase; /** * Helper for searches. diff --git a/apps/routerconsole/java/src/net/i2p/router/web/StatHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatHelper.java similarity index 96% rename from apps/routerconsole/java/src/net/i2p/router/web/StatHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/StatHelper.java index 6cfc7bdcf..7a0bf9ed4 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/StatHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatHelper.java @@ -1,10 +1,11 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.util.Set; import net.i2p.data.DataFormatException; import net.i2p.data.Hash; +import net.i2p.router.web.HelperBase; /** * Dump the peer profile data if given a full B64 peer string or prefix. diff --git a/apps/routerconsole/java/src/net/i2p/router/web/StatsGenerator.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatsGenerator.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/StatsGenerator.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/StatsGenerator.java index 271a96d55..97f15800f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/StatsGenerator.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatsGenerator.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.Writer; @@ -13,6 +13,7 @@ import java.util.TreeMap; import net.i2p.data.DataHelper; import net.i2p.router.RouterContext; +import net.i2p.router.web.Messages; import net.i2p.stat.Frequency; import net.i2p.stat.FrequencyStat; import net.i2p.stat.Rate; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java index 99a650fea..05936e89a 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.File; import java.io.IOException; @@ -16,6 +16,11 @@ import net.i2p.data.DataHelper; import net.i2p.router.RouterContext; import net.i2p.router.news.NewsEntry; import net.i2p.router.news.NewsManager; +import net.i2p.router.web.CSSHelper; +import net.i2p.router.web.Messages; +import net.i2p.router.web.NavHelper; +import net.i2p.router.web.NewsHelper; +import net.i2p.router.web.StatSummarizer; import net.i2p.util.PortMapper; import net.i2p.util.SystemVersion; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryHelper.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryHelper.java index 128e5760e..4596249aa 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryHelper.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.text.Collator; @@ -25,6 +25,9 @@ import net.i2p.router.TunnelPoolSettings; import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; import net.i2p.router.networkdb.reseed.ReseedChecker; import net.i2p.router.transport.TransportUtil; +import net.i2p.router.web.CSSHelper; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.NewsHelper; import net.i2p.stat.Rate; import net.i2p.stat.RateStat; import net.i2p.util.PortMapper; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SybilRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SybilRenderer.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/SybilRenderer.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/SybilRenderer.java index 3d1e6db0f..1617db76c 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SybilRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SybilRenderer.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.Serializable; @@ -31,6 +31,7 @@ import net.i2p.router.peermanager.DBHistory; import net.i2p.router.peermanager.PeerProfile; import net.i2p.router.tunnel.pool.TunnelPool; import net.i2p.router.util.HashDistance; +import net.i2p.router.web.Messages; import net.i2p.stat.Rate; import net.i2p.stat.RateAverages; import net.i2p.stat.RateStat; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/TunnelHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelHelper.java similarity index 89% rename from apps/routerconsole/java/src/net/i2p/router/web/TunnelHelper.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelHelper.java index c462c75d3..3e31942ce 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/TunnelHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelHelper.java @@ -1,8 +1,10 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.StringWriter; +import net.i2p.router.web.HelperBase; + public class TunnelHelper extends HelperBase { public TunnelHelper() {} diff --git a/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelRenderer.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelRenderer.java index 91c6404ef..5bf360dd9 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelRenderer.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.Serializable; @@ -18,6 +18,8 @@ import net.i2p.router.RouterContext; import net.i2p.router.TunnelInfo; import net.i2p.router.tunnel.HopConfig; import net.i2p.router.tunnel.pool.TunnelPool; +import net.i2p.router.web.HelperBase; +import net.i2p.router.web.Messages; import net.i2p.stat.RateStat; /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/UDPSorters.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/UDPSorters.java similarity index 99% rename from apps/routerconsole/java/src/net/i2p/router/web/UDPSorters.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/UDPSorters.java index 0a287282d..a7f376e06 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/UDPSorters.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/UDPSorters.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.Serializable; import java.util.Collections; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/WriterOutputStream.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/WriterOutputStream.java similarity index 93% rename from apps/routerconsole/java/src/net/i2p/router/web/WriterOutputStream.java rename to apps/routerconsole/java/src/net/i2p/router/web/helpers/WriterOutputStream.java index 0bc2baa66..5973e98ea 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/WriterOutputStream.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/WriterOutputStream.java @@ -1,4 +1,4 @@ -package net.i2p.router.web; +package net.i2p.router.web.helpers; import java.io.IOException; import java.io.OutputStream; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/package.html b/apps/routerconsole/java/src/net/i2p/router/web/helpers/package.html new file mode 100644 index 000000000..4d993801b --- /dev/null +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/package.html @@ -0,0 +1,24 @@ + + +

+Helpers and handlers for the router console user interface, +with these classes supporting the webapp in routerconsole.war. +All of these classes are packaged in routerconsole.war. +These classes are only accessible from the jsp files. +

+Most jsp pages in the console use a "Helper" or a "Renderer" class to +assist in generating the HTML. +For configuration pages that accept changes via POST, there +is additionally a "Handler" class to process the POST data. +Helpers usually extend HelperBase, and Handlers usually extend FormHandler. +

+This package was created in release 0.9.33 by moving +these classes from net.i2p.router.web to here, +and moving them from routerconsole.war to routerconsole.jar. +

+No classes contained here are part of a public API. +Subject to change. +Not for public use. +

+ + diff --git a/apps/routerconsole/java/src/net/i2p/router/web/package.html b/apps/routerconsole/java/src/net/i2p/router/web/package.html index 1926aa394..fcbec937f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/package.html +++ b/apps/routerconsole/java/src/net/i2p/router/web/package.html @@ -4,6 +4,23 @@ The router console user interface, implemented in routerconsole.jar, with these classes supporting the webapp in routerconsole.war. Entry point is RouterConsoleRunner, started from clients.config. +

+Most jsp pages in the console use a "Helper" or a "Renderer" class to +assist in generating the HTML. +For configuration pages that accept changes via POST, there +is additionally a "Handler" class to process the POST data. +Helpers usually extend HelperBase, +and Handlers usually extend FormHandler. +The base classes are in this package, but most Helpers, Handlers, and Renderers are in +the helpers package. +

+This package was split in release 0.9.33, with most of the helpers and handlers +moved to net.i2p.router.web.console, +and moving them from routerconsole.war to routerconsole.jar. +

+No classes contained here are part of a public API. +Subject to change. +Not for public use.

diff --git a/apps/routerconsole/jsp/certs.jsp b/apps/routerconsole/jsp/certs.jsp index 1eba5d700..37d6607b2 100644 --- a/apps/routerconsole/jsp/certs.jsp +++ b/apps/routerconsole/jsp/certs.jsp @@ -10,7 +10,7 @@ <%@include file="summary.jsi" %>

<%=intl._t("Certificates")%>

- + " /> <% certhelper.storeWriter(out); %> diff --git a/apps/routerconsole/jsp/config.jsp b/apps/routerconsole/jsp/config.jsp index c7cbac7e4..aba7eb471 100644 --- a/apps/routerconsole/jsp/config.jsp +++ b/apps/routerconsole/jsp/config.jsp @@ -12,13 +12,13 @@ <%@include file="summary.jsi" %> - + " />

<%=intl._t("I2P Bandwidth Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>
diff --git a/apps/routerconsole/jsp/configadvanced.jsp b/apps/routerconsole/jsp/configadvanced.jsp index 00820a098..9b2456aff 100644 --- a/apps/routerconsole/jsp/configadvanced.jsp +++ b/apps/routerconsole/jsp/configadvanced.jsp @@ -12,7 +12,7 @@ <%@include file="summary.jsi" %> - + " />

<%=intl._t("I2P Advanced Configuration")%>

@@ -20,7 +20,7 @@ <%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>
diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp index 73a8a1681..4be2a0958 100644 --- a/apps/routerconsole/jsp/configclients.jsp +++ b/apps/routerconsole/jsp/configclients.jsp @@ -17,14 +17,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; } <%@include file="summary.jsi" %> - + " /> " />

<%=intl._t("I2P Client Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>

<%=intl._t("Client Configuration")%>  diff --git a/apps/routerconsole/jsp/configfamily.jsp b/apps/routerconsole/jsp/configfamily.jsp index 905701a71..fda03052e 100644 --- a/apps/routerconsole/jsp/configfamily.jsp +++ b/apps/routerconsole/jsp/configfamily.jsp @@ -11,13 +11,13 @@ <%@include file="summary.jsi" %> - + " />

<%=intl._t("I2P Router Family Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>

<%=intl._t("Routers in the same family share a family key.")%> diff --git a/apps/routerconsole/jsp/confighome.jsp b/apps/routerconsole/jsp/confighome.jsp index b73a2bfa2..b210e137c 100644 --- a/apps/routerconsole/jsp/confighome.jsp +++ b/apps/routerconsole/jsp/confighome.jsp @@ -21,9 +21,9 @@ input.default {

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %> - + " />

<%=intl._t("Default Home Page")%>

diff --git a/apps/routerconsole/jsp/configi2cp.jsp b/apps/routerconsole/jsp/configi2cp.jsp index a4cee0ae6..32f279e45 100644 --- a/apps/routerconsole/jsp/configi2cp.jsp +++ b/apps/routerconsole/jsp/configi2cp.jsp @@ -17,14 +17,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; } <%@include file="summary.jsi" %> - + " /> " />

<%=intl._t("I2P Client Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>

<%=intl._t("Advanced Client Interface Configuration")%>

diff --git a/apps/routerconsole/jsp/configkeyring.jsp b/apps/routerconsole/jsp/configkeyring.jsp index 1985b42b0..be2c68cb2 100644 --- a/apps/routerconsole/jsp/configkeyring.jsp +++ b/apps/routerconsole/jsp/configkeyring.jsp @@ -14,9 +14,9 @@
<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %> - + " />

<%=intl._t("The router keyring is used to decrypt encrypted leaseSets.")%> diff --git a/apps/routerconsole/jsp/configlogging.jsp b/apps/routerconsole/jsp/configlogging.jsp index 778579145..2758dcc45 100644 --- a/apps/routerconsole/jsp/configlogging.jsp +++ b/apps/routerconsole/jsp/configlogging.jsp @@ -9,7 +9,7 @@ <%@include file="summaryajax.jsi" %> - + " /> <%@include file="summary.jsi" %> @@ -17,7 +17,7 @@

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %> diff --git a/apps/routerconsole/jsp/confignav.jsi b/apps/routerconsole/jsp/confignav.jsi index 81f3b0dc6..b550f81b3 100644 --- a/apps/routerconsole/jsp/confignav.jsi +++ b/apps/routerconsole/jsp/confignav.jsi @@ -3,7 +3,7 @@ * Included ~10 times, keep whitespace to a minimum */ %> - + " /> <% navHelper.storeWriter(out); %>
diff --git a/apps/routerconsole/jsp/confignet.jsp b/apps/routerconsole/jsp/confignet.jsp index a3ef7433f..951074dcc 100644 --- a/apps/routerconsole/jsp/confignet.jsp +++ b/apps/routerconsole/jsp/confignet.jsp @@ -11,13 +11,13 @@ <%@include file="summary.jsi" %> - + " />

<%=intl._t("I2P Network Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %> diff --git a/apps/routerconsole/jsp/configpeer.jsp b/apps/routerconsole/jsp/configpeer.jsp index 0a114e04b..1ef7f5413 100644 --- a/apps/routerconsole/jsp/configpeer.jsp +++ b/apps/routerconsole/jsp/configpeer.jsp @@ -11,9 +11,9 @@

<%=intl._t("I2P Peer Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %> - + " /> <% String peer = ""; if (request.getParameter("peer") != null) @@ -62,7 +62,7 @@

<%=intl._t("Banned Peers")%>

- + " /> <% profilesHelper.storeWriter(out); %> diff --git a/apps/routerconsole/jsp/configplugins.jsp b/apps/routerconsole/jsp/configplugins.jsp index 73a590c16..0231088ff 100644 --- a/apps/routerconsole/jsp/configplugins.jsp +++ b/apps/routerconsole/jsp/configplugins.jsp @@ -17,14 +17,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; } <%@include file="summary.jsi" %> - + " /> " />

<%=intl._t("Plugin Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>
<% diff --git a/apps/routerconsole/jsp/configreseed.jsp b/apps/routerconsole/jsp/configreseed.jsp index 5d9826867..8d1dc3775 100644 --- a/apps/routerconsole/jsp/configreseed.jsp +++ b/apps/routerconsole/jsp/configreseed.jsp @@ -11,13 +11,13 @@ <%@include file="summary.jsi" %> - + " />

<%=intl._t("I2P Reseeding Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>

diff --git a/apps/routerconsole/jsp/configservice.jsp b/apps/routerconsole/jsp/configservice.jsp index a56ab2086..4bcafcef5 100644 --- a/apps/routerconsole/jsp/configservice.jsp +++ b/apps/routerconsole/jsp/configservice.jsp @@ -83,7 +83,7 @@

<%=intl._t("Launch browser on router startup?")%>

- <%=intl._t("I2P's main configuration interface is this web console, so for your convenience I2P can launch a web browser on startup pointing at")%> + <%=intl._t("I2P's main configuration interface is this web.helpers, so for your convenience I2P can launch a web browser on startup pointing at")%> http://127.0.0.1:7657/ .


" > diff --git a/apps/routerconsole/jsp/configsidebar.jsp b/apps/routerconsole/jsp/configsidebar.jsp index 9ac596667..98fc3c6e5 100644 --- a/apps/routerconsole/jsp/configsidebar.jsp +++ b/apps/routerconsole/jsp/configsidebar.jsp @@ -21,12 +21,12 @@ input.default {
<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %> <% formhandler.setMovingAction(); %> - + " />

<%=intl._t("Refresh Interval")%>

diff --git a/apps/routerconsole/jsp/configstats.jsp b/apps/routerconsole/jsp/configstats.jsp index d0dc00add..f2d69e3bc 100644 --- a/apps/routerconsole/jsp/configstats.jsp +++ b/apps/routerconsole/jsp/configstats.jsp @@ -66,9 +66,9 @@ function toggleAll(category)
<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %> - + " />
diff --git a/apps/routerconsole/jsp/configtunnels.jsp b/apps/routerconsole/jsp/configtunnels.jsp index 273758979..9e7f0d024 100644 --- a/apps/routerconsole/jsp/configtunnels.jsp +++ b/apps/routerconsole/jsp/configtunnels.jsp @@ -11,12 +11,12 @@ <%@include file="summary.jsi" %> - + " />

<%=intl._t("I2P Tunnel Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>

<%=intl._t("The default settings work for most people.")%> diff --git a/apps/routerconsole/jsp/configui.jsp b/apps/routerconsole/jsp/configui.jsp index 10bc86121..deb6843c9 100644 --- a/apps/routerconsole/jsp/configui.jsp +++ b/apps/routerconsole/jsp/configui.jsp @@ -19,7 +19,7 @@ input.default { <%@include file="summary.jsi" %> - + " />

<%=uihelper._t("I2P UI Configuration")%>

@@ -27,7 +27,7 @@ input.default { <%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>

<%=uihelper._t("Router Console Theme")%>

diff --git a/apps/routerconsole/jsp/configwebapps.jsp b/apps/routerconsole/jsp/configwebapps.jsp index e349d1c53..10b7d2d6b 100644 --- a/apps/routerconsole/jsp/configwebapps.jsp +++ b/apps/routerconsole/jsp/configwebapps.jsp @@ -17,14 +17,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; } <%@include file="summary.jsi" %> - + " /> " />

<%=intl._t("WebApp Configuration")%>

<%@include file="confignav.jsi" %> - + <%@include file="formhandler.jsi" %>

<%=intl._t("WebApp Configuration")%>

diff --git a/apps/routerconsole/jsp/createreseed.jsp b/apps/routerconsole/jsp/createreseed.jsp index 605ed6100..2ee1fc0d3 100644 --- a/apps/routerconsole/jsp/createreseed.jsp +++ b/apps/routerconsole/jsp/createreseed.jsp @@ -1,4 +1,4 @@ -" /><% +" /><% /* * USE CAUTION WHEN EDITING * Trailing whitespace OR NEWLINE on the last line will cause diff --git a/apps/routerconsole/jsp/dumpprofile.jsp b/apps/routerconsole/jsp/dumpprofile.jsp index 7b0809743..8cc9dcda8 100644 --- a/apps/routerconsole/jsp/dumpprofile.jsp +++ b/apps/routerconsole/jsp/dumpprofile.jsp @@ -1,5 +1,5 @@ <%@page contentType="text/plain" -%>" />" /><% helper.storeWriter(out); diff --git a/apps/routerconsole/jsp/error500.jsp b/apps/routerconsole/jsp/error500.jsp index 8bed6ff9e..722c049b4 100644 --- a/apps/routerconsole/jsp/error500.jsp +++ b/apps/routerconsole/jsp/error500.jsp @@ -61,7 +61,7 @@

I2P version: <%=net.i2p.router.RouterVersion.FULL_VERSION%>
Java version: <%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%> (<%=System.getProperty("java.runtime.name")%> <%=System.getProperty("java.runtime.version")%>)
- + " /> Wrapper version: <%=System.getProperty("wrapper.version", "none")%>
diff --git a/apps/routerconsole/jsp/events.jsp b/apps/routerconsole/jsp/events.jsp index 85077a236..d92a6991c 100644 --- a/apps/routerconsole/jsp/events.jsp +++ b/apps/routerconsole/jsp/events.jsp @@ -6,7 +6,7 @@ <%@include file="css.jsi" %> <%=intl.title("events")%> - + " /> <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %> diff --git a/apps/routerconsole/jsp/formhandler.jsi b/apps/routerconsole/jsp/formhandler.jsi index b6091e80f..923158e04 100644 --- a/apps/routerconsole/jsp/formhandler.jsi +++ b/apps/routerconsole/jsp/formhandler.jsi @@ -6,7 +6,7 @@ * Included ~15 times, keep whitespace to a minimum * * Include this directly after the line: - * + * */ // This initializes the RouterContext - must be the first thing diff --git a/apps/routerconsole/jsp/graph.jsp b/apps/routerconsole/jsp/graph.jsp index de9cf9f3a..093971a5f 100644 --- a/apps/routerconsole/jsp/graph.jsp +++ b/apps/routerconsole/jsp/graph.jsp @@ -5,7 +5,7 @@ <%@include file="css.jsi" %> <%=intl.title("graphs")%> - + " /> <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %> diff --git a/apps/routerconsole/jsp/graphs.jsp b/apps/routerconsole/jsp/graphs.jsp index c4c61b6cb..235e33aa2 100644 --- a/apps/routerconsole/jsp/graphs.jsp +++ b/apps/routerconsole/jsp/graphs.jsp @@ -6,7 +6,7 @@ <%@include file="css.jsi" %> <%=intl.title("graphs")%> - + " /> <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %> diff --git a/apps/routerconsole/jsp/home.jsp b/apps/routerconsole/jsp/home.jsp index e625644c9..7ecb9f8c5 100644 --- a/apps/routerconsole/jsp/home.jsp +++ b/apps/routerconsole/jsp/home.jsp @@ -54,7 +54,7 @@ %>

- + " /> <% if (homehelper.shouldShowWelcome()) { %>
"> @@ -106,7 +106,7 @@ - + " /> diff --git a/apps/routerconsole/jsp/jars.jsp b/apps/routerconsole/jsp/jars.jsp index 77f8cea72..2286d975a 100644 --- a/apps/routerconsole/jsp/jars.jsp +++ b/apps/routerconsole/jsp/jars.jsp @@ -10,7 +10,7 @@ <%@include file="summary.jsi" %>

Jar File Dump

- + " />
diff --git a/apps/routerconsole/jsp/jobs.jsp b/apps/routerconsole/jsp/jobs.jsp index d7bc0a36f..f9f39371b 100644 --- a/apps/routerconsole/jsp/jobs.jsp +++ b/apps/routerconsole/jsp/jobs.jsp @@ -11,7 +11,7 @@ <%@include file="summary.jsi" %>

<%=intl._t("I2P Router Job Queue")%>

- + " /> <% jobQueueHelper.storeWriter(out); %> diff --git a/apps/routerconsole/jsp/logs.jsp b/apps/routerconsole/jsp/logs.jsp index e20912522..9a9069a47 100644 --- a/apps/routerconsole/jsp/logs.jsp +++ b/apps/routerconsole/jsp/logs.jsp @@ -30,7 +30,7 @@ - + " /> diff --git a/apps/routerconsole/jsp/netdb.jsp b/apps/routerconsole/jsp/netdb.jsp index 54e3ec26f..3b89c6b65 100644 --- a/apps/routerconsole/jsp/netdb.jsp +++ b/apps/routerconsole/jsp/netdb.jsp @@ -12,7 +12,7 @@ <%@include file="summary.jsi" %>

<%=intl._t("I2P Network Database")%>

- + " /> <% netdbHelper.storeWriter(out); diff --git a/apps/routerconsole/jsp/oldconsole.jsp b/apps/routerconsole/jsp/oldconsole.jsp index f1799f0a1..de6f9a9b8 100644 --- a/apps/routerconsole/jsp/oldconsole.jsp +++ b/apps/routerconsole/jsp/oldconsole.jsp @@ -13,7 +13,7 @@ <%@include file="summaryajax.jsi" %> <%@include file="summary.jsi" %> - + " /> <% conhelper.storeWriter(out); %>

I2P Router » Old Console

diff --git a/apps/routerconsole/jsp/peers.jsp b/apps/routerconsole/jsp/peers.jsp index 0c95ff8f1..bed58cc4c 100644 --- a/apps/routerconsole/jsp/peers.jsp +++ b/apps/routerconsole/jsp/peers.jsp @@ -12,7 +12,7 @@ <%@include file="summary.jsi" %>

<%=intl._t("I2P Network Peers")%>

- + " /> <% peerHelper.storeWriter(out); %> diff --git a/apps/routerconsole/jsp/profiles.jsp b/apps/routerconsole/jsp/profiles.jsp index bb31fdc59..0999e9f96 100644 --- a/apps/routerconsole/jsp/profiles.jsp +++ b/apps/routerconsole/jsp/profiles.jsp @@ -12,7 +12,7 @@ <%@include file="summary.jsi" %>

<%=intl._t("I2P Network Peer Profiles")%>

- + " /> <% profilesHelper.storeWriter(out); diff --git a/apps/routerconsole/jsp/proof.jsp b/apps/routerconsole/jsp/proof.jsp index c99c52eed..bf9079cbc 100644 --- a/apps/routerconsole/jsp/proof.jsp +++ b/apps/routerconsole/jsp/proof.jsp @@ -10,7 +10,7 @@ <%@include file="summary.jsi" %>

Proof of Ownership

- + " />

diff --git a/apps/routerconsole/jsp/search.jsp b/apps/routerconsole/jsp/search.jsp index e9db96dc0..1ef4f658a 100644 --- a/apps/routerconsole/jsp/search.jsp +++ b/apps/routerconsole/jsp/search.jsp @@ -5,7 +5,7 @@ if (request.getCharacterEncoding() == null) request.setCharacterEncoding("UTF-8"); %> - + " /> " /> " /> diff --git a/apps/routerconsole/jsp/stats.jsp b/apps/routerconsole/jsp/stats.jsp index 8b6d0ccfd..4bcce96c4 100644 --- a/apps/routerconsole/jsp/stats.jsp +++ b/apps/routerconsole/jsp/stats.jsp @@ -10,7 +10,7 @@ <%@include file="summaryajax.jsi" %> <%@include file="summary.jsi" %> - + " /> <% oldhelper.storeWriter(out); %> " /> diff --git a/apps/routerconsole/jsp/summaryframe.jsp b/apps/routerconsole/jsp/summaryframe.jsp index 290e37043..143ddf1b8 100644 --- a/apps/routerconsole/jsp/summaryframe.jsp +++ b/apps/routerconsole/jsp/summaryframe.jsp @@ -43,7 +43,7 @@ } catch(InterruptedException ie) {} } } - long timeleft = net.i2p.router.web.ConfigRestartBean.getRestartTimeRemaining(); + long timeleft = net.i2p.router.web.helpers.ConfigRestartBean.getRestartTimeRemaining(); long delay = 60; try { delay = Long.parseLong(d); } catch (NumberFormatException nfe) {} if (delay*1000 < timeleft + 5000) diff --git a/apps/routerconsole/jsp/tunnels.jsp b/apps/routerconsole/jsp/tunnels.jsp index a41e0a18a..1d36aa11b 100644 --- a/apps/routerconsole/jsp/tunnels.jsp +++ b/apps/routerconsole/jsp/tunnels.jsp @@ -11,7 +11,7 @@ <%@include file="summary.jsi" %>

<%=intl._t("I2P Tunnel Summary")%>

- + " /> <% tunnelHelper.storeWriter(out); %> diff --git a/apps/routerconsole/jsp/viewprofile.jsp b/apps/routerconsole/jsp/viewprofile.jsp index 98bfadd93..0ecf83fc5 100644 --- a/apps/routerconsole/jsp/viewprofile.jsp +++ b/apps/routerconsole/jsp/viewprofile.jsp @@ -20,7 +20,7 @@ } else { %> - + " /> <% stathelper.storeWriter(out); %> diff --git a/apps/routerconsole/jsp/viewwrapperlog.jsp b/apps/routerconsole/jsp/viewwrapperlog.jsp index 8ac9a70ca..f90e302cb 100644 --- a/apps/routerconsole/jsp/viewwrapperlog.jsp +++ b/apps/routerconsole/jsp/viewwrapperlog.jsp @@ -7,7 +7,7 @@ * Do not tag this file for translation. */ net.i2p.I2PAppContext ctx = net.i2p.I2PAppContext.getGlobalContext(); -java.io.File f = net.i2p.router.web.LogsHelper.wrapperLogFile(ctx); +java.io.File f = net.i2p.router.web.ConfigServiceHandler.wrapperLogFile(ctx); long length = f.length(); if (length <= 0 || !f.isFile()) { response.sendError(404, "Not Found"); diff --git a/apps/routerconsole/jsp/web.xml b/apps/routerconsole/jsp/web.xml index 68680810a..d840c8940 100644 --- a/apps/routerconsole/jsp/web.xml +++ b/apps/routerconsole/jsp/web.xml @@ -16,12 +16,12 @@ - net.i2p.router.web.CodedIconRendererServlet - net.i2p.router.web.CodedIconRendererServlet + net.i2p.router.web.helpers.CodedIconRendererServlet + net.i2p.router.web.helpers.CodedIconRendererServlet - net.i2p.router.web.CodedIconRendererServlet + net.i2p.router.web.helpers.CodedIconRendererServlet /Plugins/* diff --git a/apps/routerconsole/jsp/xhr1.jsi b/apps/routerconsole/jsp/xhr1.jsi index d6b9e62eb..bc33ab684 100644 --- a/apps/routerconsole/jsp/xhr1.jsi +++ b/apps/routerconsole/jsp/xhr1.jsi @@ -1,11 +1,11 @@ -<%@page import="net.i2p.router.web.SummaryHelper" %> +<%@page import="net.i2p.router.web.helpers.SummaryHelper" %> <% /* * Note: * This is included on every refresh, so keep whitespace etc. to a minimum. */ %> - + " /> " /> " /> @@ -24,7 +24,7 @@ * only need the reseedNonce property. */ %> - + <% /* diff --git a/build.xml b/build.xml index 0ad134301..4a782e429 100644 --- a/build.xml +++ b/build.xml @@ -747,7 +747,7 @@ - +
I2P version:<%=net.i2p.router.RouterVersion.FULL_VERSION%>
Java version:<%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%> (<%=System.getProperty("java.runtime.name")%> <%=System.getProperty("java.runtime.version")%>)
Wrapper version:<%=System.getProperty("wrapper.version", "none")%>