package org.leolo.rail; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; import java.net.UnknownHostException; import org.apache.activemq.transport.stomp.StompConnection; import org.apache.activemq.transport.stomp.StompFrame; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.impl.StdSchedulerFactory; public class NRDataDamon { private Logger log = LogManager.getLogger(getClass()); NetowrkRailProcessingThread nrpt; public static void main(String [] args) { Logger log = LogManager.getLogger(NRDataDamon.class); ConfigurationManager.getInstance().forEach((k,v)->{ if(k.toString().endsWith(".pwd")) { log.info("{} : {}", k , "****"); }else { log.info("{} : {}", k, v); } }); log.info("Opening database connection"); DatabaseManager.getInstance().testPool(); log.info("Database connected"); try { Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); scheduler.start(); } catch (SchedulerException e) { // TODO Auto-generated catch block e.printStackTrace(); } NRDataDamon ndd = new NRDataDamon(); try { ndd.init(); ndd.run(); } catch (Exception e) { log.error(e.getMessage(), e); System.exit(-1); } } public void init() throws Exception { nrpt = new NetowrkRailProcessingThread(); nrpt.init(); nrpt.start(); } public void run() throws Exception{ while(true) { if(!nrpt.isAlive()) { log.warn("Network Rail processing thread died. Restarting..."); nrpt = new NetowrkRailProcessingThread(); nrpt.init(); nrpt.start(); } try { Thread.sleep(2500); }catch(InterruptedException e) { log.error(e.getMessage(), e); } } } }