package cz.cvut.fel.adaptiverestfulapi.example; import cz.cvut.fel.adaptiverestfulapi.core.ApplicationContext; import cz.cvut.fel.adaptiverestfulapi.meta.InspectionException; import cz.cvut.fel.adaptiverestfulapi.meta.Inspector; import cz.cvut.fel.adaptiverestfulapi.meta.configuration.Configuration; import cz.cvut.fel.adaptiverestfulapi.meta.model.Model; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class ApplicationContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { ApplicationContext ctx = ApplicationContext.getInstance(); try { PersistenceContext.getInstance().init(); ExampleData.generate(PersistenceContext.getInstance().getManager()); } catch (Exception e) { throw new RuntimeException(e); } if (!ctx.isInitialized()) { Inspector inspector = new Inspector(); inspector.setModeler(new ModelListener()); inspector.addConfigurator(new ConfigurationListener()); try { Model model = inspector.model("cz.cvut.fel.adaptiverestfulapi.example.model"); Configuration configuration = inspector.configuration(model); ApplicationContext.initialize(model, configuration); } catch (InspectionException e) { throw new RuntimeException(e); } } } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { try { PersistenceContext.getInstance().destroy(); } catch (Exception e) { throw new RuntimeException(e); } } }