Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyAnsContent.hbm.xml =================================================================== diff -u --- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyAnsContent.hbm.xml (revision 0) +++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyAnsContent.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyContent.hbm.xml =================================================================== diff -u --- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyContent.hbm.xml (revision 0) +++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyContent.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueContent.hbm.xml =================================================================== diff -u --- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueContent.hbm.xml (revision 0) +++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueContent.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueType.hbm.xml =================================================================== diff -u --- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueType.hbm.xml (revision 0) +++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueType.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueUsr.hbm.xml =================================================================== diff -u --- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueUsr.hbm.xml (revision 0) +++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueUsr.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveySession.hbm.xml =================================================================== diff -u --- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveySession.hbm.xml (revision 0) +++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveySession.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyUsrResp.hbm.xml =================================================================== diff -u --- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyUsrResp.hbm.xml (revision 0) +++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyUsrResp.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_learning/lib/lams/lams-tool-survey.jar =================================================================== diff -u Binary files differ Index: lams_learning/lib/lams/lams.jar =================================================================== diff -u -r0e9942a1cb3517b16f9cf75267fbea94371b621f -rf73c3d7878d6f6c013a43da96353e4e0983e1a61 Binary files differ Index: lams_learning/lib/lams/src/lams-src.zip =================================================================== diff -u -r29932d4b94bba030634340a4e4548626d1a694f7 -rf73c3d7878d6f6c013a43da96353e4e0983e1a61 Binary files differ Index: lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java =================================================================== diff -u -r36c2ed010b8a3893b895d781be1a219f2380e62d -rf73c3d7878d6f6c013a43da96353e4e0983e1a61 --- lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision 36c2ed010b8a3893b895d781be1a219f2380e62d) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -87,18 +87,19 @@ * Method determines the start point for a learner when they begin a Lesson. * @param learner the User who is starting the Lesson. * @param lesson the Lesson the learner is starting. - * @return Progress - the VO that contains the data needed to send * @throws ProgressException if the start point cannot be calculated successfully. */ - public LearnerProgress getStartPoint(User learner, Lesson lesson, - LearnerProgress progress) throws ProgressException + public void setUpStartPoint(User learner, Lesson lesson, + LearnerProgress progress) throws ProgressException { LearningDesign ld = lesson.getLearningDesign(); + progress.setCurrentActivity(ld.getFirstActivity()); + progress.setNextActivity(ld.getFirstActivity()); - return progress; + progress.setProgressState(ld.getFirstActivity(),LearnerProgress.ACTIVITY_ATTEMPTED); } } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java =================================================================== diff -u -r36c2ed010b8a3893b895d781be1a219f2380e62d -rf73c3d7878d6f6c013a43da96353e4e0983e1a61 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java (.../ILearnerService.java) (revision 36c2ed010b8a3893b895d781be1a219f2380e62d) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java (.../ILearnerService.java) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -27,6 +27,7 @@ import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.LearnerProgress; +import org.lamsfoundation.lams.tool.service.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.User; /** * @@ -61,7 +62,7 @@ * @param lessionID identifies the Lesson to start * @throws LearnerServiceException in case of problems. */ - public LearnerProgress joinLesson(User learner, Lesson lesson) throws ProgressException; + public LearnerProgress joinLesson(User learner, Lesson lesson) throws ProgressException,LamsToolServiceException; /** Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -r0e9942a1cb3517b16f9cf75267fbea94371b621f -rf73c3d7878d6f6c013a43da96353e4e0983e1a61 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 0e9942a1cb3517b16f9cf75267fbea94371b621f) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -41,6 +41,8 @@ import org.lamsfoundation.lams.tool.ToolSession; import org.lamsfoundation.lams.tool.dao.IToolSessionDAO; +import org.lamsfoundation.lams.tool.service.ILamsToolService; +import org.lamsfoundation.lams.tool.service.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.User; /** * This class is a facade over the Learning middle tier. @@ -55,7 +57,7 @@ private ILessonDAO lessonDAO; private ProgressEngine progressEngine; private IToolSessionDAO toolSessionDAO; - + private ILamsToolService lamsToolService; private ActionMappings actionMappings; //--------------------------------------------------------------------- // Inversion of Control Methods - Constructor injection @@ -92,6 +94,13 @@ this.learnerProgressDAO = learnerProgressDAO; } + /** + * @param lamsToolService The lamsToolService to set. + */ + public void setLamsToolService(ILamsToolService lamsToolService) + { + this.lamsToolService = lamsToolService; + } //--------------------------------------------------------------------- // Service Methods //--------------------------------------------------------------------- @@ -116,9 +125,10 @@ * Joins a User to a new lesson as a learner * @param learner the Learner * @param lessionID identifies the Lesson to start + * @throws LamsToolServiceException * @throws LearnerServiceException in case of problems. */ - public LearnerProgress joinLesson(User learner, Lesson lesson) throws ProgressException + public LearnerProgress joinLesson(User learner, Lesson lesson) throws ProgressException, LamsToolServiceException { LearnerProgress learnerProgress = learnerProgressDAO.getLearnerProgressByLearner(learner,lesson); @@ -127,7 +137,7 @@ //create a new learner progress for new learner learnerProgress = new LearnerProgress(learner,lesson); - progressEngine.getStartPoint(learner, lesson,learnerProgress); + progressEngine.setUpStartPoint(learner, lesson,learnerProgress); learnerProgressDAO.saveLearnerProgress(learnerProgress); } @@ -207,8 +217,9 @@ * session doesn't exist, we create a new tool session instance. * * @param learnerProgress the learner progress we are processing. + * @throws LamsToolServiceException */ - private void createToolSessionsIfNecessary(LearnerProgress learnerProgress) + private void createToolSessionsIfNecessary(LearnerProgress learnerProgress) throws LamsToolServiceException { if(learnerProgress.getNextActivity()==null) throw new LearnerServiceException("Error occurs in [" + @@ -240,7 +251,7 @@ else targetSession = toolSessionDAO.getToolSessionByGroup(toolActivity.getGroupFor(learnerProgress.getUser()), toolActivity); - return targetSession!=null?true:false; + return targetSession!=null?false:true; } /** @@ -253,14 +264,14 @@ * * @param toolActivity * @param learner + * @throws LamsToolServiceException */ - private void createToolSessionFor(ToolActivity toolActivity,User learner) + private void createToolSessionFor(ToolActivity toolActivity,User learner) throws LamsToolServiceException { - ToolSession toolSession = toolActivity.createToolSessionForActivity(learner); - + ToolSession toolSession = lamsToolService.createToolSession(learner,toolActivity); + toolActivity.getToolSessions().add(toolSession); - toolSessionDAO.saveToolSession(toolSession); + lamsToolService.notifyToolsToCreateSession(toolSession.getToolSessionId(), toolActivity); } - } Index: lams_learning/test/java/WEB-INF/spring/learningApplicationContext.xml =================================================================== diff -u -r11c5be112ae49dc43d2bd32e7d9556921a0cff64 -rf73c3d7878d6f6c013a43da96353e4e0983e1a61 --- lams_learning/test/java/WEB-INF/spring/learningApplicationContext.xml (.../learningApplicationContext.xml) (revision 11c5be112ae49dc43d2bd32e7d9556921a0cff64) +++ lams_learning/test/java/WEB-INF/spring/learningApplicationContext.xml (.../learningApplicationContext.xml) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -18,6 +18,7 @@ + Index: lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java =================================================================== diff -u -r0e9942a1cb3517b16f9cf75267fbea94371b621f -rf73c3d7878d6f6c013a43da96353e4e0983e1a61 --- lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision 0e9942a1cb3517b16f9cf75267fbea94371b621f) +++ lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61) @@ -23,9 +23,14 @@ import org.lamsfoundation.lams.AbstractLamsTestCase; import org.lamsfoundation.lams.learning.progress.ProgressException; +import org.lamsfoundation.lams.learningdesign.ToolActivity; +import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.lesson.dao.ILearnerProgressDAO; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; +import org.lamsfoundation.lams.lesson.dao.hibernate.LearnerProgressDAO; import org.lamsfoundation.lams.lesson.dao.hibernate.LessonDAO; +import org.lamsfoundation.lams.tool.service.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; @@ -40,16 +45,18 @@ private ILearnerService learnerService; private IUserManagementService usermanageService; private ILessonDAO lessonDao; + private ILearnerProgressDAO learnerProgressDao; //--------------------------------------------------------------------- // Testing Data - Constants //--------------------------------------------------------------------- - private final Integer TEST_USER_ID = new Integer(1); + private final Integer TEST_USER_ID = new Integer(2); private final Long Test_Lesson_ID = new Long(1); //--------------------------------------------------------------------- // Testing Data - Instance Variables //--------------------------------------------------------------------- private User testUser; private Lesson testLesson; + private LearnerProgress testProgress; /* * @see TestCase#setUp() */ @@ -59,6 +66,7 @@ learnerService = (ILearnerService)this.context.getBean("learnerService"); usermanageService = (IUserManagementService)this.context.getBean("userManagementService"); lessonDao = (LessonDAO)this.context.getBean("lessonDAO"); + learnerProgressDao = (LearnerProgressDAO)this.context.getBean("learnerProgressDAO"); testUser = usermanageService.getUserById(TEST_USER_ID); testLesson = lessonDao.getLesson(Test_Lesson_ID); @@ -85,11 +93,28 @@ return new String[] { "/WEB-INF/spring/learningApplicationContext.xml", "/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml", "/org/lamsfoundation/lams/tool/toolApplicationContext.xml", + "/org/lamsfoundation/lams/tool/survey/dataAccessContext.xml", + "/org/lamsfoundation/lams/tool/survey/surveyApplicationContext.xml", "applicationContext.xml"}; } - public void testJoinLesson() throws ProgressException + + public void testJoinLesson() throws ProgressException,LamsToolServiceException { learnerService.joinLesson(testUser,testLesson); + + testProgress=learnerProgressDao.getLearnerProgressByLearner(testUser,testLesson); + + assertNotNull(testProgress); + assertNotNull("verify next activity",testProgress.getNextActivity()); + assertEquals("verify id of next activity-survey",20,testProgress.getNextActivity().getActivityId().longValue()); + assertNotNull("verify current activity",testProgress.getCurrentActivity()); + assertEquals("verify id of current activity-survey",20,testProgress.getCurrentActivity().getActivityId().longValue()); + assertEquals("verify attempted activity",1,testProgress.getAttemptedActivities().size()); + assertEquals("verify completed activity",0,testProgress.getCompletedActivities().size()); + assertNotNull("verify correspondent tool session for next activity", + ((ToolActivity)testProgress.getNextActivity()).getToolSessions()); + assertEquals("verify number of tool sessions created",1, + ((ToolActivity)testProgress.getNextActivity()).getToolSessions().size()); assertTrue(true); }