Index: lams_admin/conf/xdoclet/web-security.xml =================================================================== RCS file: /usr/local/cvsroot/lams_admin/conf/xdoclet/web-security.xml,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_admin/conf/xdoclet/web-security.xml 17 Mar 2006 04:34:19 -0000 1.1 @@ -0,0 +1,20 @@ + + + + Secure Content + /* + + + ADMIN + SYSADMIN + + + + + + FORM + LAMS + + /login.jsp + + Index: lams_admin/conf/xdoclet/web-settings.xml =================================================================== RCS file: /usr/local/cvsroot/lams_admin/conf/xdoclet/web-settings.xml,v diff -u -r1.2 -r1.3 --- lams_admin/conf/xdoclet/web-settings.xml 21 Feb 2006 08:24:35 -0000 1.2 +++ lams_admin/conf/xdoclet/web-settings.xml 17 Mar 2006 04:34:19 -0000 1.3 @@ -2,7 +2,6 @@ Learning Activity Management System - javax.servlet.jsp.jstl.fmt.localizationContext org.lamsfoundation.lams.admin.applicationResources Index: lams_admin/src/java/org/lamsfoundation/lams/admin/applicationResources.properties =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/Attic/applicationResources.properties,v diff -u -r1.4 -r1.5 --- lams_admin/src/java/org/lamsfoundation/lams/admin/applicationResources.properties 23 Feb 2006 00:23:25 -0000 1.4 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/applicationResources.properties 17 Mar 2006 04:34:20 -0000 1.5 @@ -1,6 +1,10 @@ # Resources for parameter 'com.lamsinternational.lams.applicationResources' -#=========================labels===========================# +#=========================List jobs in Quartz===========================# +title.job.list = Jobs +lable.job.name= Job name +lable.job.start.date=Job start date +lable.job.description=Job description #=========================Error Messages===========================# error.authorisation=You are not authorised to do this. Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_admin/src/java/org/lamsfoundation/lams/admin/web/ApplicationResources.properties'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/ScheduledJobDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/ScheduledJobDTO.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/ScheduledJobDTO.java 17 Mar 2006 04:34:19 -0000 1.1 @@ -0,0 +1,54 @@ +/* + *Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * + *This program is free software; you can redistribute it and/or modify + *it under the terms of the GNU General Public License as published by + *the Free Software Foundation; either version 2 of the License, or + *(at your option) any later version. + * + *This program is distributed in the hope that it will be useful, + *but WITHOUT ANY WARRANTY; without even the implied warranty of + *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + *GNU General Public License for more details. + * + *You should have received a copy of the GNU General Public License + *along with this program; if not, write to the Free Software + *Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + *USA + * + *http://www.gnu.org/licenses/gpl.txt + */ +package org.lamsfoundation.lams.admin.web; + +import java.util.Date; +/** + * DTO class of quartz job object for displaying on screen. + * @author Steve.Ni + * + * @version $Revision: 1.1 $ + */ +public class ScheduledJobDTO { + + private String name; + private Date startDate; + private String description; + + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public Date getStartDate() { + return startDate; + } + public void setStartDate(Date startDate) { + this.startDate = startDate; + } +} Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/ScheduledJobListAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/ScheduledJobListAction.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/ScheduledJobListAction.java 17 Mar 2006 04:34:19 -0000 1.1 @@ -0,0 +1,97 @@ +/* + *Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * + *This program is free software; you can redistribute it and/or modify + *it under the terms of the GNU General Public License as published by + *the Free Software Foundation; either version 2 of the License, or + *(at your option) any later version. + * + *This program is distributed in the hope that it will be useful, + *but WITHOUT ANY WARRANTY; without even the implied warranty of + *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + *GNU General Public License for more details. + * + *You should have received a copy of the GNU General Public License + *along with this program; if not, write to the Free Software + *Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + *USA + * + *http://www.gnu.org/licenses/gpl.txt + */ +package org.lamsfoundation.lams.admin.web; + +import java.io.IOException; +import java.util.ArrayList; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.apache.struts.action.Action; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.quartz.JobDetail; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.quartz.Trigger; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; +/** + * + * @author Steve.Ni + * @version $Revision: 1.1 $ + * + * @struts:action path="/jobList" + * input=".admin.joblist" + * + * @struts:action-forward name="list" path=".admin.joblist" + */ +public class ScheduledJobListAction extends Action{ + + private static final Logger log = Logger.getLogger(ScheduledJobListAction.class); + /** + * Get all waitting queue jobs scheduled in Quartz table and display job name, job start time and + * description. The description will be in format "Lesson Name":"the lesson creator", or + * "The gate name":"The relatived lesson name". + * + * @param mapping The ActionMapping used to select this instance + * @param actionForm The optional ActionForm bean for this request (if any) + * @param request The HTTP request we are processing + * @param response The HTTP response we are creating + * + * @exception IOException if an input/output error occurs + * @exception ServletException if a servlet exception occurs + * + */ + public ActionForward execute(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) throws Exception{ + + WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext()); + Scheduler scheduler = (Scheduler) ctx.getBean("scheduler"); + ArrayList jobList = new ArrayList(); + try { + String[] jobNames = scheduler.getJobNames(Scheduler.DEFAULT_GROUP); + for (String name : jobNames) { + ScheduledJobDTO jobDto = new ScheduledJobDTO(); + JobDetail detail = scheduler.getJobDetail(name,Scheduler.DEFAULT_GROUP); + jobDto.setName(name); + jobDto.setDescription(detail.getDescription()); + Trigger[] triggers = scheduler.getTriggersOfJob(name,Scheduler.DEFAULT_GROUP); + for (Trigger trigger : triggers) { + jobDto.setStartDate(trigger.getStartTime()); + jobList.add(jobDto); + } + } + } catch (SchedulerException e) { + log.equals("Failed get job names:" + e.getMessage()); + } + + request.setAttribute("jobList",jobList); + return mapping.findForward("list"); + } + +} Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_admin/web/login.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_admin/web/WEB-INF/web.xml =================================================================== RCS file: /usr/local/cvsroot/lams_admin/web/WEB-INF/Attic/web.xml,v diff -u -r1.6 -r1.7 --- lams_admin/web/WEB-INF/web.xml 24 Feb 2006 08:08:43 -0000 1.6 +++ lams_admin/web/WEB-INF/web.xml 17 Mar 2006 04:34:19 -0000 1.7 @@ -222,24 +222,25 @@ - + + + Secure Content + /* + + + ADMIN + SYSADMIN + + - - - - - - - + + + FORM + LAMS + + /login.jsp + + - - - - - - - --> - Index: lams_admin/web/WEB-INF/struts/struts-config.xml =================================================================== RCS file: /usr/local/cvsroot/lams_admin/web/WEB-INF/struts/Attic/struts-config.xml,v diff -u -r1.6 -r1.7 --- lams_admin/web/WEB-INF/struts/struts-config.xml 27 Feb 2006 00:53:21 -0000 1.6 +++ lams_admin/web/WEB-INF/struts/struts-config.xml 17 Mar 2006 04:34:19 -0000 1.7 @@ -74,6 +74,18 @@ /> + + + + + + + + + + + Index: lams_admin/web/admin/joblist.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_admin/web/admin/Attic/joblist.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_admin/web/admin/joblist.jsp 17 Mar 2006 04:34:19 -0000 1.1 @@ -0,0 +1,38 @@ +<%@ page contentType="text/html; charset=iso-8859-1" language="java" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-function" prefix="fn" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Total jobs: ${fn:length(jobList)} + + + + + Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/MonitoringJob.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/MonitoringJob.java,v diff -u -r1.1 -r1.2 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/MonitoringJob.java 13 Mar 2006 05:52:15 -0000 1.1 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/MonitoringJob.java 17 Mar 2006 04:35:44 -0000 1.2 @@ -27,7 +27,14 @@ import org.quartz.SchedulerException; import org.springframework.context.ApplicationContext; import org.springframework.scheduling.quartz.QuartzJobBean; - +/** + * All Quartz Job Bean super classes in monitoring. It provides a simple helper method to + * get monitoringService. + * + * @author Steve.Ni + * + * @version $Revision$ + */ public abstract class MonitoringJob extends QuartzJobBean{ private static final String CONTEXT_NAME = "monitoringApplicationContext"; private static final String SERVICE_NAME = "monitoringService"; Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java,v diff -u -r1.40 -r1.41 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 8 Mar 2006 12:05:18 -0000 1.40 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 17 Mar 2006 04:35:44 -0000 1.41 @@ -30,6 +30,8 @@ import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java,v diff -u -r1.57 -r1.58 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 13 Mar 2006 05:52:15 -0000 1.57 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 17 Mar 2006 04:35:44 -0000 1.58 @@ -470,7 +470,7 @@ * Start lesson on schedule. * @param lessonId * @param startDate - * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#startLessonOnSchedule(long , Date) + * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#startLessonOnSchedule(long , Date, User) */ public void startLessonOnSchedule(long lessonId, Date startDate){ @@ -483,6 +483,9 @@ JobDetail startLessonJob = getStartScheduleLessonJob(); //setup the message for scheduling job startLessonJob.setName("startLessonOnSchedule:" + lessonId); + + startLessonJob.setDescription(requestedLesson.getLessonName()+":" + + (requestedLesson.getUser() == null?"":requestedLesson.getUser().getFullName())); startLessonJob.getJobDataMap().put(MonitoringConstants.KEY_LESSON_ID,new Long(lessonId)); //create customized triggers Trigger startLessonTrigger = new SimpleTrigger("startLessonOnScheduleTrigger:"+ lessonId, @@ -510,7 +513,7 @@ * Finish lesson on schedule. * @param lessonId * @param endDate - * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#finishLessonOnSchedule(long , Date) + * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#finishLessonOnSchedule(long , Date , User) */ public void finishLessonOnSchedule(long lessonId, Date endDate) { //we get the lesson want to finish @@ -522,6 +525,8 @@ JobDetail finishLessonJob = getFinishScheduleLessonJob(); //setup the message for scheduling job finishLessonJob.setName("finishLessonOnSchedule:"+lessonId); + finishLessonJob.setDescription(requestedLesson.getLessonName()+":" + + (requestedLesson.getUser() == null?"":requestedLesson.getUser().getFullName())); finishLessonJob.getJobDataMap().put(MonitoringConstants.KEY_LESSON_ID,new Long(lessonId)); //create customized triggers Trigger finishLessonTrigger = new SimpleTrigger("finishLessonOnScheduleTrigger:"+lessonId, @@ -576,7 +581,7 @@ //if it is schedule gate, we need to initialize the sheduler for it. if(activity.getActivityTypeId().intValue() == Activity.SCHEDULE_GATE_ACTIVITY_TYPE) { ScheduleGateActivity gateActivity = (ScheduleGateActivity) activityDAO.getActivityByActivityId(activity.getActivityId()); - runGateScheduler(gateActivity,lessonStartTime); + runGateScheduler(gateActivity,lessonStartTime,requestedLesson.getLessonName()); } //update lesson status } @@ -1412,7 +1417,7 @@ * @param scheduleGate the gate that needs to be scheduled. */ private void runGateScheduler(ScheduleGateActivity scheduleGate, - Date lessonStartTime) + Date lessonStartTime, String lessonName) { if(log.isDebugEnabled()) @@ -1421,9 +1426,11 @@ JobDetail closeScheduleGateJob = getCloseScheduleGateJob(); //setup the message for scheduling job openScheduleGateJob.setName("openGate:" + scheduleGate.getActivityId()); + openScheduleGateJob.setDescription(scheduleGate.getTitle()+":"+lessonName); openScheduleGateJob.getJobDataMap().put("gateId",scheduleGate.getActivityId()); closeScheduleGateJob.setName("closeGate"); closeScheduleGateJob.getJobDataMap().put("gateId",scheduleGate.getActivityId()); + closeScheduleGateJob.setDescription(scheduleGate.getTitle()+":"+lessonName); //create customized triggers Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java,v diff -u -r1.21 -r1.22 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java 27 Feb 2006 04:59:26 -0000 1.21 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java 17 Mar 2006 04:35:44 -0000 1.22 @@ -27,12 +27,10 @@ import java.text.DateFormat; import java.text.ParseException; import java.util.Date; -import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; @@ -42,14 +40,10 @@ import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; -import org.lamsfoundation.lams.usermanagement.Role; -import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.UserManagementService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.lamsfoundation.lams.web.action.LamsDispatchAction; -import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; @@ -720,5 +714,7 @@ request.setAttribute(NUM_DELETED, Integer.toString(numDeleted)); return mapping.findForward(PREVIEW_DELETED_REPORT_SCREEN); } + + }