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.19 -r1.20 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml 31 May 2006 12:39:50 -0000 1.19 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml 2 Jun 2006 07:54:15 -0000 1.20 @@ -43,6 +43,7 @@ + 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.51 -r1.52 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 31 May 2006 07:14:35 -0000 1.51 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 2 Jun 2006 07:54:15 -0000 1.52 @@ -33,6 +33,7 @@ import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.learningdesign.exception.LearningDesignProcessorException; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.lesson.service.LessonServiceException; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; @@ -389,7 +390,7 @@ * @param groupingActivity * @param groups list of group information. */ - public void performChosenGrouping(GroupingActivity groupingActivity, List groups); + public void performChosenGrouping(GroupingActivity groupingActivity, List groups) throws LessonServiceException; //--------------------------------------------------------------------- // Preview Methods 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.74 -r1.75 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 1 Jun 2006 22:57:48 -0000 1.74 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 2 Jun 2006 07:54:15 -0000 1.75 @@ -56,13 +56,15 @@ import org.lamsfoundation.lams.learningdesign.dao.ITransitionDAO; import org.lamsfoundation.lams.learningdesign.dto.ProgressActivityDTO; import org.lamsfoundation.lams.learningdesign.exception.LearningDesignProcessorException; +import org.lamsfoundation.lams.learningdesign.service.ILearningDesignService; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.LessonClass; import org.lamsfoundation.lams.lesson.dao.ILessonClassDAO; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.lesson.dto.LessonDetailsDTO; import org.lamsfoundation.lams.lesson.service.ILessonService; +import org.lamsfoundation.lams.lesson.service.LessonServiceException; import org.lamsfoundation.lams.monitoring.MonitoringConstants; import org.lamsfoundation.lams.tool.ToolSession; import org.lamsfoundation.lams.tool.exception.DataMissingException; @@ -133,7 +135,8 @@ private Scheduler scheduler; private ApplicationContext applicationContext; private MessageService messageService; - + private ILearningDesignService learningDesignService; + //--------------------------------------------------------------------- // Inversion of Control Methods - Method injection //--------------------------------------------------------------------- @@ -256,11 +259,15 @@ this.scheduler = scheduler; } + public void setLearningDesignService(ILearningDesignService learningDesignService) { + this.learningDesignService = learningDesignService; + } + //--------------------------------------------------------------------- // Service Methods //--------------------------------------------------------------------- - /** Checks whether the user is a staff member for the lesson or the creator of the lesson. + /** Checks whether the user is a staff member for the lesson or the creator of the lesson. * If not, throws a UserAccessDeniedException exception */ private void checkOwnerOrStaffMember(Integer userId, Lesson lesson, String actionDescription) { User user = userManagementService.getUserById(userId); @@ -774,9 +781,11 @@ //group does not exist if(grouping.isRandomGrouping()){ //for random grouping, create then complete it. Continue - learnerService.performGrouping(lessonId, groupActivity); -// grouping = groupActivity.getCreateGrouping(); -// myGroup = grouping.getGroupBy(learner); + try { + lessonService.performGrouping(lessonId, groupActivity,learner); + } catch (LessonServiceException e) { + stopReason = "Force complete stop at non-grouped grouping activity [" + groupActivity + "] due to exception "+e.getMessage(); + } learnerService.completeActivity(learner.getUserId(),activity,lessonId); log.debug("Grouping activity [" + activity.getActivityId() + "] is completed."); }else{ @@ -1136,9 +1145,10 @@ } /** - * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#performChosenGrouping(GroupingActivity,java.util.List) + * @throws LessonServiceException + * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#performChosenGrouping(GroupingActivity,java.util.List) */ - public void performChosenGrouping(GroupingActivity groupingActivity, List groups) { + public void performChosenGrouping(GroupingActivity groupingActivity, List groups) throws LessonServiceException { Grouping grouping = groupingActivity.getCreateGrouping(); if(!grouping.isChosenGrouping()){ @@ -1174,7 +1184,7 @@ } log.debug("Performing grouping for " + groupName + "..."); - grouping.doGrouping(groupName,learners); + lessonService.performChosenGrouping(groupingActivity,learners); log.debug("Finish grouping for " + groupName); }