Skip to content
Snippets Groups Projects
BigDataServer.java 1.69 KiB
Newer Older
  • Learn to ignore specific revisions
  • package bdv.server;
    
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    import java.util.HashMap;
    
    
    import mpicbg.spim.data.SpimDataException;
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    
    
    import org.eclipse.jetty.server.Server;
    
    import org.eclipse.jetty.server.handler.HandlerCollection;
    import org.eclipse.jetty.util.log.Log;
    
    
    public class BigDataServer
    {
    
    	static HashMap< String, String > dataSet = new HashMap<>();
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    
    
    	private static final org.eclipse.jetty.util.log.Logger LOG = Log.getLogger( BigDataServer.class );
    
    	public static void main( final String[] args ) throws Exception
    	{
    
    		final String fn = args.length > 0 ? args[ 0 ] : "/Users/moon/Projects/git-projects/BigDataViewer/data/HisYFP-SPIM.xml";
    
    		dataSet.put( "HisYFP-SPIM", fn );
    
    
    		final int port = args.length > 1 ? Integer.parseInt( args[ 1 ] ) : 8080;
    
    		System.setProperty( "org.eclipse.jetty.util.log.class", "org.eclipse.jetty.util.log.StdErrLog" );
    
    		final Server server = new Server( port );
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    		final String baseURL = "http://" + server.getURI().getHost() + ":" + port;
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    		final HandlerCollection handlers = createHandlers( baseURL, dataSet );
    
    		handlers.addHandler( new ManagerHandler( baseURL, server, handlers ) );
    
    		LOG.info( "Set handler: " + handlers );
    		server.setHandler( handlers );
    		LOG.info( "BigDataServer starting" );
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    	static private HandlerCollection createHandlers( final String baseURL, final HashMap< String, String > dataSet ) throws SpimDataException
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    		final HandlerCollection handlers = new HandlerCollection( true );
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    		for ( final String key : dataSet.keySet() )
    
    Tobias Pietzsch's avatar
    Tobias Pietzsch committed
    			final String context = "/" + key;
    			final CellHandler ctx = new CellHandler( baseURL + context + "/", dataSet.get( key ) );
    
    			ctx.setContextPath( context );
    			handlers.addHandler( ctx );
    		}
    
    		return handlers;
    	}