From cfaf76be07755e73ed5ca910a0eddca537fe49aa Mon Sep 17 00:00:00 2001 From: HongKee Moon <hkmoon@me.com> Date: Thu, 5 Feb 2015 14:55:10 +0100 Subject: [PATCH] Add "Number of datasets" and "Total size of datasets" in manager context --- src/main/java/bdv/server/ManagerHandler.java | 42 +++++++++++++++----- src/main/resources/templates/manager.st | 8 ++++ 2 files changed, 39 insertions(+), 11 deletions(-) diff --git a/src/main/java/bdv/server/ManagerHandler.java b/src/main/java/bdv/server/ManagerHandler.java index 2377776..afef94c 100644 --- a/src/main/java/bdv/server/ManagerHandler.java +++ b/src/main/java/bdv/server/ManagerHandler.java @@ -15,6 +15,7 @@ import org.eclipse.jetty.util.log.Log; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.net.URISyntaxException; @@ -34,6 +35,12 @@ public class ManagerHandler extends ContextHandler private final ConnectorStatistics connectorStats; + private String contexts = null; + + private int noDataSets = 0; + + private long sizeDataSets = 0; + public ManagerHandler( final String baseURL, final Server server, final ConnectorStatistics connectorStats, final StatisticsHandler statHandler, ContextHandlerCollection handlers ) throws IOException, URISyntaxException { this.baseURL = baseURL; @@ -105,28 +112,41 @@ public class ManagerHandler extends ContextHandler t.setAttribute( "openConnections", connectorStats.getConnectionsOpen() ); t.setAttribute( "maxOpenConnections", connectorStats.getConnectionsOpenMax() ); - t.setAttribute( "contexts", getContexts() ); + getContexts(); + + t.setAttribute( "contexts", contexts ); + + t.setAttribute( "noDataSets", noDataSets ); + t.setAttribute( "sizeDataSets", getByteSizeString( sizeDataSets ) ); t.setAttribute( "statHtml", statHandler.toStatsHTML() ); return t.toString(); } - private String getContexts() + private void getContexts() { - StringBuilder sb = new StringBuilder(); - for ( final Handler handler : server.getChildHandlersByClass( CellHandler.class ) ) + if ( contexts == null ) { - CellHandler contextHandler = null; - if ( handler instanceof CellHandler ) + noDataSets = 0; + sizeDataSets = 0; + + StringBuilder sb = new StringBuilder(); + for ( final Handler handler : server.getChildHandlersByClass( CellHandler.class ) ) { - sb.append( "<tr>\n<th>" ); - contextHandler = ( CellHandler ) handler; - sb.append( contextHandler.getContextPath() + "</th>\n<td>" ); - sb.append( contextHandler.getXmlFile() + "</td>\n</tr>\n" ); + CellHandler contextHandler = null; + if ( handler instanceof CellHandler ) + { + sb.append( "<tr>\n<th>" ); + contextHandler = ( CellHandler ) handler; + sb.append( contextHandler.getContextPath() + "</th>\n<td>" ); + sb.append( contextHandler.getXmlFile() + "</td>\n</tr>\n" ); + noDataSets++; + sizeDataSets += new File( contextHandler.getXmlFile().replace( ".xml", ".h5" ) ).length(); + } } + contexts = sb.toString(); } - return sb.toString(); } private void deploy( final String datasetName, final String fileLocation, final Request baseRequest, final HttpServletResponse response ) throws IOException diff --git a/src/main/resources/templates/manager.st b/src/main/resources/templates/manager.st index 38ab1b4..aa0abf2 100644 --- a/src/main/resources/templates/manager.st +++ b/src/main/resources/templates/manager.st @@ -43,6 +43,14 @@ This page is refreshed in every 5 secs.<br/> <th>Max open connections:</th> <td>$maxOpenConnections$</td> </tr> + <tr> + <th>Number of datasets:</th> + <td>$noDataSets$</td> + </tr> + <tr> + <th>Total size of datasets:</th> + <td>$sizeDataSets$</td> + </tr> </table> <hr> -- GitLab