package com.cloudera.sa.node360.playarea;
import com.cloudera.sa.node360.service.HBaseService;
import com.cloudera.sa.node360.web.servlet.*;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HConstants;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.webapp.WebAppContext;
import java.io.IOException;
/**
* Created by ted.malaska on 6/12/15.
*/
public class JettyMain {
public static void main(String args[]) throws Exception {
if (args.length == 0) {
System.out.println("JettyMain {port} {zookeeperQuorum}");
}
try {
Configuration config = HBaseConfiguration.create();
config.addResource("/etc/hbase/conf/hbase-site.xml");
config.set(HConstants.ZOOKEEPER_QUORUM, args[1]);
//config.set(HConstants.ZOOKEEPER_CLIENT_PORT, "2181");
HBaseService hbaseService = new HBaseService(config);
Server server = new Server(Integer.parseInt(args[0]));
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/fe");
webapp.setResourceBase("./webapp");
webapp.setWelcomeFiles(new String[]{"index.html"});
Context servletContext = new Context();
servletContext.setContextPath("/be");
servletContext.addServlet(GraphTsvServlet.class, "/graph.tsv");
servletContext.addServlet(FileGetterServlet.class, "/file/*");
servletContext.addServlet(NodeAutoCompleteServlet.class, "/auto/*");
servletContext.addServlet(GraphNodeJsonServlet.class, "/nodeGraph/*");
servletContext.addServlet(NodeHomeDashBoardInfoServlet.class, "/nodeDash/*");
server.setHandlers(new Handler[]{webapp, servletContext});
System.out.println("-");
GraphTsvServlet.setHBaseService(hbaseService);
FileGetterServlet.setHBaseService(hbaseService);
NodeAutoCompleteServlet.setHBaseService(hbaseService);
GraphNodeJsonServlet.setHBaseService(hbaseService);
NodeHomeDashBoardInfoServlet.setHBaseService(hbaseService);
server.start();
server.join();
} finally {
System.out.println("Step 7: Shut Down");
}
}
}