@RequestMapping("/listCurrentScheduledJobs") public ModelMap listScheduledJobs(HttpServletRequest request, HttpServletResponse response) throws SchedulerException { Locale locale = LocaleResolver.getLocale(request); ResourceBundleProvider.updateLocale(locale); ModelMap gridMap = new ModelMap(); String[] triggerNames; boolean showMoreLink = false; if (request.getParameter("showMoreLink") != null) { showMoreLink = Boolean.parseBoolean(request.getParameter("showMoreLink").toString()); } else { showMoreLink = true; } request.setAttribute("showMoreLink", showMoreLink + ""); // request.setAttribute("studySubjectId",studySubjectId); /*SubjectIdSDVFactory tableFactory = new SubjectIdSDVFactory(); * @RequestParam("studySubjectId") int studySubjectId,*/ request.setAttribute("imagePathPrefix", "../"); ArrayList<String> pageMessages = (ArrayList<String>) request.getAttribute("pageMessages"); if (pageMessages == null) { pageMessages = new ArrayList<String>(); } request.setAttribute("pageMessages", pageMessages); List<JobExecutionContext> listCurrentJobs = new ArrayList<JobExecutionContext>(); listCurrentJobs = scheduler.getCurrentlyExecutingJobs(); Iterator<JobExecutionContext> itCurrentJobs = listCurrentJobs.iterator(); List<String> currentJobList = new ArrayList<String>(); while (itCurrentJobs.hasNext()) { JobExecutionContext temp = itCurrentJobs.next(); currentJobList.add(temp.getTrigger().getJobName() + temp.getTrigger().getGroup()); } String[] triggerGroups = scheduler.getTriggerGroupNames(); List<SimpleTrigger> simpleTriggers = new ArrayList<SimpleTrigger>(); int index1 = 0; for (String triggerGroup : triggerGroups) { logger.debug("Group: " + triggerGroup + " contains the following triggers"); triggerNames = scheduler.getTriggerNames(triggerGroup); for (String triggerName : triggerNames) { int state = scheduler.getTriggerState(triggerName, triggerGroup); logger.debug("- " + triggerName); if (state != Trigger.STATE_PAUSED) { simpleTriggers.add( index1, (SimpleTrigger) scheduler.getTrigger(triggerName, triggerGroup)); index1++; } } } List<ScheduledJobs> jobsScheduled = new ArrayList<ScheduledJobs>(); int index = 0; for (SimpleTrigger st : simpleTriggers) { boolean isExecuting = currentJobList.contains(st.getJobName() + st.getGroup()); ScheduledJobs jobs = new ScheduledJobs(); ExtractPropertyBean epBean = null; if (st.getJobDataMap() != null) { epBean = (ExtractPropertyBean) st.getJobDataMap().get(EP_BEAN); } if (epBean != null) { StringBuilder checkbox = new StringBuilder(); checkbox.append("<input style='margin-right: 5px' type='checkbox'/>"); StringBuilder actions = new StringBuilder("<table><tr><td>"); if (isExecuting) { actions.append(" "); } else { String contextPath = request.getContextPath(); StringBuilder jsCodeString = new StringBuilder("this.form.method='GET'; this.form.action='") .append(contextPath) .append("/pages/cancelScheduledJob") .append("';") .append("this.form.theJobName.value='") .append(st.getJobName()) .append("';") .append("this.form.theJobGroupName.value='") .append(st.getJobGroup()) .append("';") .append("this.form.theTriggerName.value='") .append(st.getName()) .append("';") .append("this.form.theTriggerGroupName.value='") .append(st.getGroup()) .append("';") .append("this.form.submit();"); actions .append("<td><input type=\"submit\" class=\"button\" value=\"Cancel Job\" ") .append("name=\"cancelJob\" onclick=\"") .append(jsCodeString.toString()) .append("\" />"); } actions.append("</td></tr></table>"); jobs.setCheckbox(checkbox.toString()); jobs.setDatasetId(epBean.getDatasetName()); String fireTime = st.getStartTime() != null ? longFormat(locale).format(st.getStartTime()) : ""; jobs.setFireTime(fireTime); if (st.getNextFireTime() != null) { jobs.setScheduledFireTime(longFormat(locale).format(st.getNextFireTime())); } jobs.setExportFileName(epBean.getExportFileName()[0]); jobs.setAction(actions.toString()); jobs.setJobStatus(isExecuting ? "Currently Executing" : "Scheduled"); jobsScheduled.add(index, jobs); index++; } } logger.debug("totalRows" + index); request.setAttribute("totalJobs", index); request.setAttribute("jobs", jobsScheduled); TableFacade facade = scheduledJobTableFactory.createTable(request, response); String sdvMatrix = facade.render(); gridMap.addAttribute(SCHEDULED_TABLE_ATTRIBUTE, sdvMatrix); return gridMap; }