package fi.iki.mkuokkanen.seda; import javax.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import fi.iki.mkuokkanen.seda.api.SedaServer; import fi.iki.mkuokkanen.seda.queue.Queue; import fi.iki.mkuokkanen.seda.queue.QueueIn; import fi.iki.mkuokkanen.seda.queue.QueueOut; import fi.iki.mkuokkanen.seda.timed.EventScheduler; /** * Main Application to start server. */ public class ServerApp implements Service { private static Logger logger = LoggerFactory.getLogger(ServerApp.class); private final SedaServer api; private final Queue inQ; private final Queue outQ; private final EventScheduler scheduler; /** * Default constructor. * * @param api * @param inQueue * @param outQueue * @param scheduler */ @Inject public ServerApp( SedaServer api, QueueIn inQueue, QueueOut outQueue, EventScheduler scheduler) { this.api = api; this.inQ = inQueue; this.outQ = outQueue; this.scheduler = scheduler; } @Override public void start() { logger.info("start() - app"); inQ.start(); outQ.start(); api.start(); scheduler.start(); } @Override public void stop() { logger.info("stop() - app"); scheduler.stop(); api.stop(); outQ.stop(); inQ.stop(); } }