package org.artificer.server; import org.artificer.events.EventProducer; import org.artificer.events.EventProducerFactory; import org.artificer.repository.RepositoryProviderFactory; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; /** * Listener for deploy/undeploy events. */ public class ArtificerLifeCycle implements ServletContextListener { /** * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent) */ @Override public void contextInitialized(ServletContextEvent sce) { // TODO make this async RepositoryProviderFactory.persistenceManager().startup(); for (EventProducer eventProducer : EventProducerFactory.getEventProducers()) { eventProducer.startup(); } } /** * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent) */ @Override public void contextDestroyed(ServletContextEvent sce) { RepositoryProviderFactory.persistenceManager().shutdown(); for (EventProducer eventProducer : EventProducerFactory.getEventProducers()) { eventProducer.shutdown(); } } }