Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java,v
diff -u -r1.1 -r1.2
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java 23 Jan 2006 06:02:21 -0000 1.1
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java 24 Jan 2006 03:30:34 -0000 1.2
@@ -29,4 +29,6 @@
public static final String KEY_LESSON_ID = "lessonID";
public static final String KEY_STAFF = "staff";
public static final String KEY_LEARNER = "learners";
+ public static final String JOB_START_LESSON = "startScheduleLessonJob";
+ public static final String JOB_FINISH_LESSON = "finishScheduleLessonJob";
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml,v
diff -u -r1.6 -r1.7
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml 23 Jan 2006 06:02:21 -0000 1.6
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml 24 Jan 2006 03:30:34 -0000 1.7
@@ -96,6 +96,30 @@
+
+
+ org.lamsfoundation.lams.monitoring.service.StartScheduleLesson
+
+
+
+
+
+
+
+ org.lamsfoundation.lams.monitoring.service.FinishScheduleLesson
+
+
+
+
+
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/FinishScheduleLesson.java
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/Attic/FinishScheduleLesson.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/FinishScheduleLesson.java 24 Jan 2006 03:30:34 -0000 1.1
@@ -0,0 +1,48 @@
+/*
+ *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.monitoring.service;
+
+import org.apache.log4j.Logger;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+public class FinishScheduleLesson extends QuartzJobBean{
+ //---------------------------------------------------------------------
+ // Instance variables
+ //---------------------------------------------------------------------
+ private static Logger log = Logger.getLogger(OpenScheduleGateJob.class);
+ private IMonitoringService monitoringService;
+
+ //---------------------------------------------------------------------
+ // Inverse of control - method injection
+ //---------------------------------------------------------------------
+ /**
+ * @param monitoringService The monitoringService to set.
+ */
+ public void setMonitoringService(IMonitoringService monitoringService)
+ {
+ this.monitoringService = monitoringService;
+ }
+
+ protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
+ }
+}
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.27 -r1.28
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 23 Jan 2006 06:02:21 -0000 1.27
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 24 Jan 2006 03:30:34 -0000 1.28
@@ -21,6 +21,7 @@
package org.lamsfoundation.lams.monitoring.service;
import java.io.IOException;
+import java.util.Date;
import java.util.List;
import org.lamsfoundation.lams.learningdesign.Activity;
@@ -75,7 +76,7 @@
* @return
*/
public String createLesson(Integer creatorUserId,String lessionPackage);
-
+
/**
* Setup the lesson class and organization for a lesson according to the
* input from monitoring GUI interface.
@@ -97,8 +98,14 @@
* lesson.
*/
public void startLesson(long lessonId);
-
/**
+ *
+ * @param lessonId
+ * @param startDate the lesson start date and time.
+ * @see org.lamsfoundation.lams.monitoring.service#startLesson(long)
+ */
+ public void startLessonOnSchedule(long lessonId, Date startDate);
+ /**
* Force the learner to complete all the activities for current lesson.
* @param learnerProgressId the learner progress belongs to the user who
* will be force complete
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.35 -r1.36
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 23 Jan 2006 06:02:21 -0000 1.35
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 24 Jan 2006 03:30:34 -0000 1.36
@@ -388,8 +388,36 @@
return newLesson;
}
-
/**
+ * Start lesson
+ * @param lessonId
+ * @param startDate
+ */
+ public void startLessonOnSchedule(long lessonId, Date startDate){
+ JobDetail startLessonJob = getStartScheduleLessonJob();
+ //setup the message for scheduling job
+ startLessonJob.setName("startLessonOnSchedule");
+ startLessonJob.getJobDataMap().put(MonitoringConstants.KEY_LESSON_ID,new Long(lessonId));
+ //create customized triggers
+ Trigger startLessonTrigger = new SimpleTrigger("startLessonOnScheduleTrigger",
+ Scheduler.DEFAULT_GROUP,
+ startDate);
+ //start the scheduling job
+ try
+ {
+ scheduler.scheduleJob(startLessonJob, startLessonTrigger);
+ }
+ catch (SchedulerException e)
+ {
+ throw new MonitoringServiceException("Error occurred at " +
+ "[startLessonOnSchedule]- fail to start scheduling",e);
+ }
+
+ if(log.isDebugEnabled())
+ log.debug("Start lesson ["+lessonId+"] on schedule is configured");
+ }
+
+ /**
* @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#startlesson(long)
*/
public void startLesson(long lessonId)
@@ -1066,8 +1094,21 @@
{
return (JobDetail)applicationContext.getBean("openScheduleGateJob");
}
-
/**
+ *
+ * @return the bean that defines start lesson on schedule job.
+ */
+ private JobDetail getStartScheduleLessonJob() {
+ return (JobDetail)applicationContext.getBean(MonitoringConstants.JOB_START_LESSON);
+ }
+ /**
+ *
+ * @return the bean that defines start lesson on schedule job.
+ */
+ private JobDetail getFinishScheduleLessonJob() {
+ return (JobDetail)applicationContext.getBean(MonitoringConstants.JOB_FINISH_LESSON);
+ }
+ /**
* Returns the bean that defines the close schdule gate job.
*/
private JobDetail getCloseScheduleGateJob()
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/StartScheduleLesson.java
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/Attic/StartScheduleLesson.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/StartScheduleLesson.java 24 Jan 2006 03:30:34 -0000 1.1
@@ -0,0 +1,64 @@
+/*
+ *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.monitoring.service;
+
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+import org.lamsfoundation.lams.monitoring.MonitoringConstants;
+
+public class StartScheduleLesson extends QuartzJobBean{
+ //---------------------------------------------------------------------
+ // Instance variables
+ //---------------------------------------------------------------------
+ private static Logger log = Logger.getLogger(OpenScheduleGateJob.class);
+ private IMonitoringService monitoringService;
+
+ //---------------------------------------------------------------------
+ // Inverse of control - method injection
+ //---------------------------------------------------------------------
+ /**
+ * @param monitoringService The monitoringService to set.
+ */
+ public void setMonitoringService(IMonitoringService monitoringService)
+ {
+ this.monitoringService = monitoringService;
+ }
+
+ protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
+ //getting gate id set from scheduler
+ Map properties = context.getJobDetail().getJobDataMap();
+ long lessonId = ((Long)properties.get(MonitoringConstants.KEY_LESSON_ID)).longValue();
+
+ if(log.isDebugEnabled())
+ log.debug("Lesson ["+lessonId+"] is starting...");
+
+
+ monitoringService.startLesson(lessonId);
+
+ if(log.isDebugEnabled())
+ log.debug("Lesson ["+lessonId+"] started");
+ }
+}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/Attic/DummyMonitoringAction.java,v
diff -u -r1.10 -r1.11
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java 20 Jan 2006 00:42:50 -0000 1.10
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java 24 Jan 2006 03:30:34 -0000 1.11
@@ -23,6 +23,8 @@
package org.lamsfoundation.lams.monitoring.web;
import java.io.IOException;
+import java.util.Calendar;
+import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
@@ -206,7 +208,11 @@
// start the lesson.
this.monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
- monitoringService.startLesson(testLesson.getLessonId().longValue());
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(new Date());
+ cal.add(Calendar.MILLISECOND,5000);
+ monitoringService.startLessonOnSchedule(testLesson.getLessonId().longValue(),cal.getTime());
+// monitoringService.startLesson(testLesson.getLessonId().longValue());
return mapping.findForward(LESSON_STARTED_FORWARD);
}