package org.skywalking.apm.collector.worker.httpserver;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.skywalking.apm.collector.actor.ClusterWorkerContext;
import org.skywalking.apm.collector.worker.config.HttpConfig;
import java.net.InetSocketAddress;
/**
* @author pengys5
*/
public enum HttpServer {
INSTANCE;
private Logger logger = LogManager.getFormatterLogger(HttpServer.class);
public void boot(ClusterWorkerContext clusterContext) throws Exception {
Server server = new Server(new InetSocketAddress(HttpConfig.Http.HOSTNAME, Integer.valueOf(HttpConfig.Http.PORT)));
String contextPath = HttpConfig.Http.CONTEXTPATH;
ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
servletContextHandler.setContextPath(contextPath);
logger.info("http server root context path: %s", contextPath);
ServletsCreator.INSTANCE.boot(servletContextHandler, clusterContext);
server.setHandler(servletContextHandler);
server.start();
server.join();
}
}