package nl.whitehorses.wls.backing; import commonj.timers.Timer; import commonj.timers.TimerManager; import javax.faces.event.ActionEvent; import javax.naming.InitialContext; import javax.naming.NamingException; import nl.whitehorses.wls.schedular.Batch1; import nl.whitehorses.wls.schedular.Batch2; import javax.faces.context.FacesContext; import javax.servlet.ServletContext; public class TimerBean { private InitialContext ic = null; private TimerManager tm = null; private Timer batchRun1Timer = null; public Boolean batchRun1TimerIsRunning = false; private Timer batchRun2Timer = null; public Boolean batchRun2TimerIsRunning = false; public TimerBean() { try { ic = new InitialContext(); tm = (TimerManager)ic.lookup("java:comp/env/tm/TimerManager"); FacesContext ctx = FacesContext.getCurrentInstance(); ServletContext servletContext = (ServletContext) ctx.getExternalContext().getContext(); batchRun1Timer = (Timer)servletContext.getAttribute("batch1"); batchRun2Timer = (Timer)servletContext.getAttribute("batch2"); batchRun1TimerIsRunning = (Boolean)servletContext.getAttribute("batch1Running"); batchRun2TimerIsRunning = (Boolean)servletContext.getAttribute("batch2Running"); System.out.println("init end"); } catch (NamingException e) { e.printStackTrace(); } } public void timerManager(ActionEvent actionEvent) { // Add event code here... if ( tm.isSuspended() ) { tm.resume(); } else { tm.suspend(); } } public void Batch1(ActionEvent actionEvent) { // Add event code here... if ( batchRun1TimerIsRunning ) { batchRun1Timer.cancel(); batchRun1TimerIsRunning = false; } else { batchRun1Timer = tm.schedule(new Batch1(), 0, 10 * 1000); batchRun1TimerIsRunning = true; } } public void Batch2(ActionEvent actionEvent) { // Add event code here... if ( batchRun2TimerIsRunning ) { batchRun2Timer.cancel(); batchRun2TimerIsRunning = false; } else { batchRun2Timer = tm.schedule(new Batch2(), 0, 10 * 1000); batchRun2TimerIsRunning = true; } } public String getTmStatus () { if ( tm.isSuspended() ) { return "TimerManager is stopped"; } else { return "TimerManager is running"; } } public String getBatch1Status () { Long time = batchRun1Timer.getScheduledExecutionTime(); java.util.Date date = new java.util.Date(time); if ( batchRun1TimerIsRunning ) { return "Batch1 scheduled time "+date.toString(); } { return "Batch1 stopped"; } } public String getBatch2Status () { Long time = batchRun2Timer.getScheduledExecutionTime(); java.util.Date date = new java.util.Date(time); if ( batchRun2TimerIsRunning ) { return "Batch2 scheduled time "+date.toString(); } { return "Batch2 stopped"; } } public Timer getBatchRun1Timer(){ return batchRun1Timer; } public void setBatchRun1Timer(Timer batchRun1Timer ){ this.batchRun1Timer = batchRun1Timer; } public Timer getBatchRun2Timer(){ return batchRun2Timer; } public void setBatchRun2timer(Timer batchRun2Timer ){ this.batchRun2Timer = batchRun2Timer; } }