package com.pearson.statsagg.network.http; import com.pearson.statsagg.network.JettyServer; import com.pearson.statsagg.utilities.core_utils.StackTrace; import com.pearson.statsagg.web_api.OpenTsdb_Put; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Jeffrey Schmidt */ public class JettyOpenTsdb implements JettyServer { private static final Logger logger = LoggerFactory.getLogger(JettyOpenTsdb.class.getName()); private final int port_; private final int stopServerTimeout_; private Server jettyServer_ = null; public JettyOpenTsdb(int port, int stopServerTimeout) { port_ = port; stopServerTimeout_ = stopServerTimeout; } public void startServer() { jettyServer_ = new Server(port_); jettyServer_.setStopAtShutdown(true); jettyServer_.setStopTimeout(stopServerTimeout_); ServletHandler handler = new ServletHandler(); jettyServer_.setHandler(handler); handler.addServletWithMapping(OpenTsdb_Put.class, "/api/put"); try { jettyServer_.start(); } catch (Exception e) { logger.error(e.toString() + System.lineSeparator() + StackTrace.getStringFromStackTrace(e)); } } @Override public void stopServer() { try { jettyServer_.stop(); jettyServer_ = null; } catch (Exception e) { logger.error(e.toString() + System.lineSeparator() + StackTrace.getStringFromStackTrace(e)); } } }