package com.sap.hana.cloud.samples.benefits.service; import java.io.IOException; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.sap.hana.cloud.samples.benefits.csv.dataimport.BenefitsDataImporter; import com.sap.hana.cloud.samples.benefits.persistence.BenefitDAO; import com.sap.hana.cloud.samples.benefits.persistence.manager.EntityManagerFactoryProvider; import com.sap.hana.cloud.samples.benefits.persistence.manager.EntityManagerProvider; public class AppServletContextListener implements ServletContextListener { private static final String BENEFITS_CSV_PATH = "/benefits.csv"; //$NON-NLS-1$ private static Logger logger = LoggerFactory.getLogger(AppServletContextListener.class); @Override public void contextDestroyed(ServletContextEvent arg0) { EntityManagerFactoryProvider.getInstance().close(); } @Override public void contextInitialized(ServletContextEvent servletContext) { try { EntityManagerProvider.getInstance().initEntityManagerProvider(); initBenefits(); } finally { EntityManagerProvider.getInstance().closeEntityManager(); } } private void initBenefits() { final BenefitDAO benefitDAO = new BenefitDAO(); if (benefitDAO.getAll().size() == 0) { final BenefitsDataImporter benefitImporter = new BenefitsDataImporter(); try { benefitImporter.importDataFromCSV(BENEFITS_CSV_PATH); } catch (IOException e) { logger.error("Could not insert benefits data into DB", e); //$NON-NLS-1$ } } } }