package de.superx.spring.config; import static org.quartz.SimpleScheduleBuilder.simpleSchedule; import java.util.List; import javax.sql.DataSource; import org.apache.log4j.Logger; import org.quartz.JobDataMap; import org.quartz.JobKey; import org.quartz.ScheduleBuilder; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.springframework.batch.core.configuration.JobLocator; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import de.superx.rest.EtlJobApi; import de.superx.rest.model.job.Component; import de.superx.servlet.SuperXManager; import de.superx.spring.batch.job.BiQuartzBatchJob; @org.springframework.stereotype.Component public class BiApplicationContextInit { Logger logger = Logger.getLogger(BiApplicationContextInit.class); private boolean dbFunctionsLoaded = false; @EventListener void contextRefreshedEvent(ContextRefreshedEvent cre) { ApplicationContext ctx = cre.getApplicationContext(); DataSource ds = ctx.getBean(DataSource.class); if (SuperXManager.checkDatabaseEmpty(ds)) { logger.warn("eduetl db empty. Not installing module functions."); return; } logger.info("Installing module functions:"); if (SuperXManager.isHis1 && !dbFunctionsLoaded) { EtlJobApi jobApi = ctx.getBean(EtlJobApi.class); List components = jobApi.getAllComponentAndConnectorDetails(); for (Component component : components) { if (component.isInstalled()) { logger.info("Installing module funtions for " + component.getName()); jobApi.installModuleFunctions(component.getAbbreviation()); } } logger.info("Installing module funtions finished."); dbFunctionsLoaded = true; } } }