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.
*
* - 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()
*
- 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.
*/
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);