Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rd546f3e078cc837796ee088801c8e656cf8ec41c -r66c453cb9ccc5964de6f0919b493345e29c37229 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml =================================================================== diff -u -r5009e72ce26a04aa0654d6a6a53eb177c99f42d8 -r66c453cb9ccc5964de6f0919b493345e29c37229 --- lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml (.../lessonApplicationContext.xml) (revision 5009e72ce26a04aa0654d6a6a53eb177c99f42d8) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml (.../lessonApplicationContext.xml) (revision 66c453cb9ccc5964de6f0919b493345e29c37229) @@ -35,7 +35,6 @@ true - PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java =================================================================== diff -u -r5009e72ce26a04aa0654d6a6a53eb177c99f42d8 -r66c453cb9ccc5964de6f0919b493345e29c37229 --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision 5009e72ce26a04aa0654d6a6a53eb177c99f42d8) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision 66c453cb9ccc5964de6f0919b493345e29c37229) @@ -36,34 +36,24 @@ /** * Access the general lesson details and access to grouping. * - * A lesson has three different "lists" of learners. + * A lesson has two different "lists" of learners. *
    *
  1. The learners who are in the learner group attached to the lesson. This is fixed * when the lesson is started and is a list of all the learners who could ever participate in * to the lesson. This is available via lesson.getAllLearners() *
  2. The learners who have started the lesson. They may or may not be logged in currently, * or if they are logged in they may or may not be doing this lesson. This is available * via getActiveLessonLearners(). - *
  3. The learners who are currently logged in and doing this lesson. This is available - * via getLoggedInLessonLearners(). Note - learners in this list may actually have left but - * we don't know unless they use the actual logout/exit buttons. - * + *
+ * + * There used to be a list of all the learners who were logged into a lesson. This has been + * removed as we do not need the functionality at present. If this is required later it should + * be combined with the user's shared session logic and will need to purge users who haven't + * done anything for a while - otherwise a user whose PC has crashed and then never returns + * to a lesson will staying in the cache forever. */ public interface ILessonService { - /** - * Cache the user in the list of "currently logged in users" - */ - public abstract void cacheLessonUser(Lesson lesson, User learner); - - /** - * Remove the user from the list of "currently logged in users" - */ - public abstract void removeLessonUserFromCache(Lesson lesson, User learner); - - /** Get all the learners who are currently using the lesson */ - public abstract Collection getLoggedInLessonLearners(Long lessonId); - /** Get all the learners who have started the lesson. They may not be currently online.*/ public abstract List getActiveLessonLearners(Long lessonId); Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java =================================================================== diff -u -r9e266179c987af5028400429c1df6a29924bfa7f -r66c453cb9ccc5964de6f0919b493345e29c37229 --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 9e266179c987af5028400429c1df6a29924bfa7f) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 66c453cb9ccc5964de6f0919b493345e29c37229) @@ -24,27 +24,19 @@ /* $$Id$$ */ package org.lamsfoundation.lams.lesson.service; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; import java.util.List; -import java.util.Set; import org.apache.log4j.Logger; -import org.lamsfoundation.lams.learningdesign.Group; import org.lamsfoundation.lams.learningdesign.Grouper; import org.lamsfoundation.lams.learningdesign.Grouping; import org.lamsfoundation.lams.learningdesign.GroupingActivity; -import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO; import org.lamsfoundation.lams.learningdesign.dao.IGroupingDAO; import org.lamsfoundation.lams.learningdesign.exception.GroupingException; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.lesson.dto.LessonDTO; import org.lamsfoundation.lams.lesson.dto.LessonDetailsDTO; import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; @@ -59,23 +51,22 @@ *
  • The learners who have started the lesson. They may or may not be logged in currently, * or if they are logged in they may or may not be doing this lesson. This is available * via getActiveLessonLearners(). - *
  • The learners who are currently logged in and doing this lesson. This is available - * via getLoggedInLessonLearners(). Note - learners in this list may actually have left but - * we don't know unless they use the actual logout/exit buttons. + * + * + * There used to be a list of all the learners who were logged into a lesson. This has been + * removed as we do not need the functionality at present. If this is required later it should + * be combined with the user's shared session logic and will need to purge users who haven't + * done anything for a while - otherwise a user whose PC has crashed and then never returns + * to a lesson will staying in the cache forever. * */ -/* TODO improve caching of current learners. - * The caching is based on the LearnerDataManager cache written by Jacky Fang - * but it has been moved out of the servlet context to this singleton. - */ public class LessonService implements ILessonService { private static Logger log = Logger.getLogger(LessonService.class); private ILessonDAO lessonDAO; private IGroupingDAO groupingDAO; private MessageService messageService; - private HashMap lessonMaps = new HashMap(); // contains maps of lesson users /* ******* Spring injection methods ***************************************/ public void setLessonDAO(ILessonDAO lessonDAO) { @@ -94,55 +85,6 @@ /* *********** Service methods ***********************************************/ /* (non-Javadoc) - * @see org.lamsfoundation.lams.lesson.service.ILessonService#cacheLessonUser(org.lamsfoundation.lams.lesson.Lesson, org.lamsfoundation.lams.usermanagement.User) - */ - public void cacheLessonUser(Lesson lesson, User learner) - { - synchronized (lesson) - { - //retrieve the map for this lesson - HashMap lessonUsersMap = lessonMaps.get(lesson.getLessonId()); - //create new if never created before - if (lessonUsersMap == null) { - lessonUsersMap = new HashMap(); - lessonMaps.put(lesson.getLessonId(),lessonUsersMap); - } - if (!lessonUsersMap.containsKey(learner.getUserId())) { - lessonUsersMap.put(learner.getUserId(), learner); - } - } - } - - /* (non-Javadoc) - * @see org.lamsfoundation.lams.lesson.service.ILessonService#removeLessonUserFromCache(org.lamsfoundation.lams.lesson.Lesson, org.lamsfoundation.lams.usermanagement.User) - */ - public void removeLessonUserFromCache(Lesson lesson, User learner) - { - synchronized (lesson) - { - HashMap lessonUsersMap = lessonMaps.get(lesson.getLessonId()); - if (lessonUsersMap != null) { - lessonUsersMap.remove(learner.getUserId()); - if (lessonUsersMap.size()==0) { - // no one active in lesson? get rid of lesson from cache - lessonMaps.remove(lesson.getLessonId()); - } - } - } - } - - /* (non-Javadoc) - * @see org.lamsfoundation.lams.lesson.service.ILessonService#getLoggedInLessonLearners(java.lang.Long) - */ - public Collection getLoggedInLessonLearners(Long lessonId) - { - HashMap lessonUsersMap = lessonMaps.get(lessonId); - if ( lessonUsersMap != null ) - return lessonUsersMap.values(); - return new ArrayList(); - } - - /* (non-Javadoc) * @see org.lamsfoundation.lams.lesson.service.ILessonService#getActiveLessonLearners(java.lang.Long) */ public List getActiveLessonLearners(Long lessonId) Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -r45d69b4410d4b912d7f5b0720e5a33bc63d572f5 -r66c453cb9ccc5964de6f0919b493345e29c37229 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 45d69b4410d4b912d7f5b0720e5a33bc63d572f5) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 66c453cb9ccc5964de6f0919b493345e29c37229) @@ -257,7 +257,6 @@ learnerProgressDAO.updateLearnerProgress(learnerProgress); } - lessonService.cacheLessonUser(lesson, learner); return learnerProgress; } @@ -441,7 +440,6 @@ if ( progress != null ) { progress.setRestarting(true); learnerProgressDAO.updateLearnerProgress(progress); - lessonService.removeLessonUserFromCache(progress.getLesson(),progress.getUser()); } else { String error = "Learner Progress "+progressId+" does not exist. Cannot exit lesson successfully."; log.error(error);