Skip to content
Snippets Groups Projects
Commit e148512c authored by HongKee Moon's avatar HongKee Moon
Browse files

Add Templates for /manager

parent 245f084d
Branches
Tags
No related merge requests found
package bdv.server; package bdv.server;
import java.util.HashMap;
import mpicbg.spim.data.SpimDataException; import mpicbg.spim.data.SpimDataException;
import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.ConnectorStatistics; import org.eclipse.jetty.server.ConnectorStatistics;
...@@ -14,6 +12,8 @@ import org.eclipse.jetty.server.handler.StatisticsHandler; ...@@ -14,6 +12,8 @@ import org.eclipse.jetty.server.handler.StatisticsHandler;
import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.util.thread.QueuedThreadPool;
import java.util.HashMap;
public class BigDataServer public class BigDataServer
{ {
static HashMap< String, String > dataSet = new HashMap<>(); static HashMap< String, String > dataSet = new HashMap<>();
......
package bdv.server; package bdv.server;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mpicbg.spim.data.SpimDataException;
import net.imglib2.img.basictypeaccess.volatiles.array.VolatileShortArray;
import net.imglib2.realtransform.AffineTransform3D;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.jdom2.Document;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import bdv.img.cache.CacheHints; import bdv.img.cache.CacheHints;
import bdv.img.cache.LoadingStrategy; import bdv.img.cache.LoadingStrategy;
import bdv.img.cache.VolatileCell; import bdv.img.cache.VolatileCell;
...@@ -29,8 +11,22 @@ import bdv.img.remote.RemoteImageLoaderMetaData; ...@@ -29,8 +11,22 @@ import bdv.img.remote.RemoteImageLoaderMetaData;
import bdv.spimdata.SequenceDescriptionMinimal; import bdv.spimdata.SequenceDescriptionMinimal;
import bdv.spimdata.SpimDataMinimal; import bdv.spimdata.SpimDataMinimal;
import bdv.spimdata.XmlIoSpimDataMinimal; import bdv.spimdata.XmlIoSpimDataMinimal;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import mpicbg.spim.data.SpimDataException;
import net.imglib2.img.basictypeaccess.volatiles.array.VolatileShortArray;
import net.imglib2.realtransform.AffineTransform3D;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.jdom2.Document;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
public class CellHandler extends ContextHandler public class CellHandler extends ContextHandler
{ {
...@@ -149,7 +145,6 @@ public class CellHandler extends ContextHandler ...@@ -149,7 +145,6 @@ public class CellHandler extends ContextHandler
throw new ServletException( e ); throw new ServletException( e );
} }
// final SAXBuilder sax = new SAXBuilder(); // final SAXBuilder sax = new SAXBuilder();
// Document doc; // Document doc;
// try // try
...@@ -179,4 +174,9 @@ public class CellHandler extends ContextHandler ...@@ -179,4 +174,9 @@ public class CellHandler extends ContextHandler
// ow.write( new XMLOutputter().outputString( doc ) ); // ow.write( new XMLOutputter().outputString( doc ) );
// ow.close(); // ow.close();
} }
public String getXmlFile()
{
return xmlFile;
}
} }
package bdv.server; package bdv.server;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mpicbg.spim.data.SpimDataException; import mpicbg.spim.data.SpimDataException;
import org.antlr.stringtemplate.StringTemplate;
import org.antlr.stringtemplate.StringTemplateGroup;
import org.eclipse.jetty.server.ConnectorStatistics; import org.eclipse.jetty.server.ConnectorStatistics;
import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Request;
...@@ -22,6 +17,7 @@ import javax.servlet.http.HttpServletRequest; ...@@ -22,6 +17,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.net.URISyntaxException;
import java.text.DecimalFormat; import java.text.DecimalFormat;
public class ManagerHandler extends ContextHandler public class ManagerHandler extends ContextHandler
...@@ -38,7 +34,7 @@ public class ManagerHandler extends ContextHandler ...@@ -38,7 +34,7 @@ public class ManagerHandler extends ContextHandler
private final ConnectorStatistics connectorStats; private final ConnectorStatistics connectorStats;
public ManagerHandler( String baseURL, Server server, ConnectorStatistics connectorStats, StatisticsHandler statHandler, ContextHandlerCollection handlers ) public ManagerHandler( String baseURL, Server server, ConnectorStatistics connectorStats, StatisticsHandler statHandler, ContextHandlerCollection handlers ) throws IOException, URISyntaxException
{ {
this.baseURL = baseURL; this.baseURL = baseURL;
this.server = server; this.server = server;
...@@ -92,34 +88,45 @@ public class ManagerHandler extends ContextHandler ...@@ -92,34 +88,45 @@ public class ManagerHandler extends ContextHandler
final PrintWriter ow = response.getWriter(); final PrintWriter ow = response.getWriter();
ow.write( "<HTML>\n<HEAD><META HTTP-EQUIV=\"refresh\" CONTENT=\"5\"></HEAD>\n<BODY>" ); ow.write( getHtml() );
ow.close();
}
private String getHtml()
{
// manager.st should be under {WorkingFolder}/templates/
StringTemplateGroup templates =
new StringTemplateGroup( "manager", "templates" );
ow.write( "This page is refreshed in every 5 secs.<br/>\n" ); StringTemplate t = templates.getInstanceOf( "manager" );
ow.write( "<br/>\n" );
ow.write( "Bytes sent total: " + getByteSizeString( statHandler.getResponsesBytesTotal() ) + "<br/>\n" );
// Refer: http://download.eclipse.org/jetty/9.2.6.v20141205/apidocs/org/eclipse/jetty/server/ConnectorStatistics.html t.setAttribute( "bytesSent", getByteSizeString( statHandler.getResponsesBytesTotal() ) );
ow.write( String.format( "%,d Message/sec<br/>%n", connectorStats.getMessagesOutPerSecond() ) ); t.setAttribute( "msgPerSec", connectorStats.getMessagesOutPerSecond() );
t.setAttribute( "openConnections", connectorStats.getConnectionsOpen() );
t.setAttribute( "maxOpenConnections", connectorStats.getConnectionsOpenMax() );
ow.write( String.format( "Open connections = %,d<br/>%n", connectorStats.getConnectionsOpen() ) ); t.setAttribute( "contexts", getContexts() );
ow.write( String.format( "Max open connections = %,d<br/>%n", connectorStats.getConnectionsOpenMax() ) );
ow.write( "<H1> Datasets: </H1>\n" ); t.setAttribute( "statHtml", statHandler.toStatsHTML() );
for ( final Handler handler : server.getChildHandlersByClass( CellHandler.class ) ) return t.toString();
}
private String getContexts()
{
StringBuilder sb = new StringBuilder();
for ( Handler handler : server.getChildHandlersByClass( CellHandler.class ) )
{ {
CellHandler contextHandler = null; CellHandler contextHandler = null;
if ( handler instanceof CellHandler ) if ( handler instanceof CellHandler )
{ {
sb.append( "<tr>\n<th>" );
contextHandler = ( CellHandler ) handler; contextHandler = ( CellHandler ) handler;
ow.write( contextHandler.getContextPath() + "<BR/>" ); sb.append( contextHandler.getContextPath() + "</th>\n<td>" );
sb.append( contextHandler.getXmlFile() + "</td>\n</tr>\n" );
} }
} }
return sb.toString();
ow.write( statHandler.toStatsHTML() );
ow.write( "</BODY>" );
ow.close();
} }
private void deploy( final String datasetName, final String fileLocation, final Request baseRequest, final HttpServletResponse response ) throws IOException private void deploy( final String datasetName, final String fileLocation, final Request baseRequest, final HttpServletResponse response ) throws IOException
......
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="refresh" content="5"/>
<title>BigDataServer</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
</head>
<body class="tundra">
This page is refreshed in every 5 secs.<br/>
<div class="contentelement">
<h1>$title$</h1>
<hr>
<table cellspacing="2">
<tr>
<th>Bytes sent total:</th>
<td>$bytesSent$</td>
</tr>
<tr>
<th>Messages per second:</th>
<td>$msgPerSec$</td>
</tr>
<tr>
<th>Open connections:</th>
<td>$openConnections$</td>
</tr>
<tr>
<th>Max open connections:</th>
<td>$maxOpenConnections$</td>
</tr>
</table>
<hr>
<h1> Datasets: </h1>
<table cellspacing="2">
$contexts$
</table>
<hr>
<table cellspacing="2">
<tr>
<td>
$statHtml$
</td>
</tr>
</table>
</div>
</body>
</html>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment