diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java index c1aa060533ef50f270f524e4d745bfea12da9300..f031b0e6fef5041bc0434fbef7e77252a5cca237 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java @@ -23,6 +23,9 @@ import net.i2p.util.UIMessages; public class LogsHelper extends HelperBase { + // cache so we only load once + Attributes att; + private static final String _jstlVersion = jstlVersion(); private static final int MAX_WRAPPER_LINES = 250; @@ -206,23 +209,39 @@ public class LogsHelper extends HelperBase { rv[2] = DataHelper.escapeHTML(f.getName()).replace(" ", "%20"); return rv; } - + /** * @since 0.9.35 */ public String getBuiltBy() { - File libDir = _context.getLibDir(); - File f = new File(libDir, "i2p.jar"); - Attributes att = FileDumpHelper.attributes(f); + return getAtt("Built-By"); + } + + /** + * @since 0.9.58 + */ + public String getBuildDate() { + return getAtt("Build-Date"); + } + + /** + * @since 0.9.58 pulled out from above + */ + private String getAtt(String a) { + if (att == null) { + File libDir = _context.getLibDir(); + File f = new File(libDir, "i2p.jar"); + att = FileDumpHelper.attributes(f); + } if (att != null) { - String s = FileDumpHelper.getAtt(att, "Built-By"); + String s = FileDumpHelper.getAtt(att, a); if (s != null) { return s; } } return "Undefined"; } - + private final static String NL = System.getProperty("line.separator"); /** formats in forward order */ diff --git a/apps/routerconsole/jsp/logs.jsp b/apps/routerconsole/jsp/logs.jsp index 781e2f51af7a82a3cfd0efe04141736bff1aa590..1d1d65b946ea5350a32174e7abcafc596263bb19 100644 --- a/apps/routerconsole/jsp/logs.jsp +++ b/apps/routerconsole/jsp/logs.jsp @@ -54,7 +54,8 @@ %><tr><td><b>Encoding:</b></td><td><%=System.getProperty("file.encoding")%></td></tr> <tr><td><b>Charset:</b></td><td><%=java.nio.charset.Charset.defaultCharset().name()%></td></tr> <tr><td><b>Service:</b></td><td><%=net.i2p.util.SystemVersion.isService()%></td></tr> -<tr><td><b>Built By:</b></td><td><jsp:getProperty name="logsHelper" property="builtBy" /></tbody></table> +<tr><td><b>Built:</b></td><td><jsp:getProperty name="logsHelper" property="buildDate" /></td></tr> +<tr><td><b>Built By:</b></td><td><jsp:getProperty name="logsHelper" property="builtBy" /></td></tr></tbody></table> <h3 class="tabletitle"><%=intl._t("Critical Logs")%><% String consoleNonce = net.i2p.router.web.CSSHelper.getNonce();