@@ -0,0 +1,1651 @@
+package water.rp;%0A%0A%0Aimport org.eclipse.jetty.server.Connector;%0Aimport org.eclipse.jetty.server.Handler;%0Aimport org.eclipse.jetty.server.Server;%0Aimport org.eclipse.jetty.server.handler.HandlerCollection;%0Aimport org.eclipse.jetty.server.handler.HandlerWrapper;%0Aimport org.eclipse.jetty.server.nio.SelectChannelConnector;%0Aimport org.eclipse.jetty.servlet.ServletContextHandler;%0Aimport water.JettyHTTPD;%0Aimport water.api.DatasetServlet;%0Aimport water.api.NpsBinServlet;%0Aimport water.api.PostFileServlet;%0Aimport water.api.RequestServer;%0A%0A%0Apublic class WaveJetty extends JettyHTTPD %7B%0A%0A  protected void startHttp() throws Exception %7B%0A    setServer(new Server());%0A    Connector ws = new SelectChannelConnector();%0A    ws.setHost(getIp());%0A    ws.setPort(getPort());%0A    createServer(ws);%0A  %7D%0A%0A  @Override public void registerHandlers(HandlerWrapper handlerWrapper) %7B%0A    ServletContextHandler context = new ServletContextHandler(3);%0A    context.setContextPath(%22/%22);%0A    context.addServlet(WaveServlet.class, %22/wave%22);%0A    context.addServlet(NpsBinServlet.class, %22/3/NodePersistentStorage.bin/*%22);%0A    context.addServlet(PostFileServlet.class, %22/3/PostFile.bin%22);%0A    context.addServlet(PostFileServlet.class, %22/3/PostFile%22);%0A    context.addServlet(DatasetServlet.class, %22/3/DownloadDataset%22);%0A    context.addServlet(DatasetServlet.class, %22/3/DownloadDataset.bin%22);%0A    context.addServlet(RequestServer.class, %22/%22);%0A%0A%0A    HandlerCollection hc = new HandlerCollection();%0A    hc.setHandlers(new Handler%5B%5D%7Bnew JettyHTTPD.GateHandler(), new JettyHTTPD.AuthenticationHandler(), new JettyHTTPD.ExtensionHandler1(), context%7D);%0A    handlerWrapper.setHandler(hc);%0A  %7D%0A%0A%7D%0A

use SelectChannelConnector over SocketConnector for non blocking IO (required by websocket)