package org.sakaiproject.tool.app.scheduler; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import org.quartz.InterruptableJob; import org.quartz.JobExecutionContext; import org.quartz.UnableToInterruptJobException; public class JobExecutionContextWrapperBean { private JobExecutionContext jec; private boolean isKillable = false; private SchedulerTool parentTool; public JobExecutionContextWrapperBean () { } public JobExecutionContextWrapperBean (SchedulerTool parentTool, JobExecutionContext jec) { this.jec = jec; this.parentTool = parentTool; } /* (non-Javadoc) * @see org.sakaiproject.component.app.scheduler.JobExecutionContextWrapper#getJec() */ public JobExecutionContext getJec() { return jec; } /* (non-Javadoc) * @see org.sakaiproject.component.app.scheduler.JobExecutionContextWrapper#setJec(org.quartz.JobExecutionContext) */ public void setJec(JobExecutionContext jec) { this.jec = jec; } /* (non-Javadoc) * @see org.sakaiproject.component.app.scheduler.JobExecutionContextWrapper#isKillable() */ public boolean getIsKillable() { return isKillable; } /* (non-Javadoc) * @see org.sakaiproject.component.app.scheduler.JobExecutionContextWrapper#setKillable(boolean) */ public void setIsKillable(boolean isKillable) { this.isKillable = isKillable; } public String processActionKill() { if (getIsKillable()) { InterruptableJob job = (InterruptableJob)jec.getJobInstance(); try { job.interrupt(); } catch (UnableToInterruptJobException e) { // TODO Auto-generated catch block e.printStackTrace(); } FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, parentTool.rb.getFormattedMessage("kill_message", new String[] {jec.getJobDetail().getName()}), null)); } return "runningJobs"; } }