package fi.iki.mkuokkanen.seda.api; import static com.google.common.base.Preconditions.checkNotNull; import javax.inject.Inject; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.HandlerList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import fi.iki.mkuokkanen.seda.Service; /** * WebSocket server. Combines all the components together. * * @author mkuokkanen */ public class SedaServer implements Service { private static Logger logger = LoggerFactory.getLogger(SedaServer.class); private final Server server; /** * Combines Jetty Server to Connector and handlers. * * @param server * @param connector * @param handlers */ @Inject public SedaServer(Server server, Connector connector, HandlerList handlers) { this.server = checkNotNull(server); server.addConnector(checkNotNull(connector)); server.setHandler(checkNotNull(handlers)); } @Override public void start() { logger.info("start() - websocket api"); try { server.start(); } catch (Exception e) { logger.error("error", e); } } @Override public void stop() { logger.info("stop() - websocket api"); try { server.stop(); } catch (Exception e) { logger.error("error", e); } } }