Setup target tool url with tool session id parameter based on the tool * activity and learner.
* Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java,v diff -u -r1.16 -r1.17 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java 7 Feb 2006 23:24:56 -0000 1.16 +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java 20 Feb 2006 05:31:00 -0000 1.17 @@ -22,6 +22,7 @@ import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Set; import org.apache.log4j.Logger; @@ -175,7 +176,7 @@ } /** - * Make a copy of all tools content which belongs to this learning design. + * Calls the tool to copy the content for an activity. Used when copying a learning design. * * @param toolActivity the tool activity defined in the design. * @throws DataMissingException, ToolException @@ -206,6 +207,22 @@ } /** + * Ask a tool to delete a tool content. If any related tool session data exists then it should + * be deleted. + * + * @param toolActivity the tool activity defined in the design. + * @throws ToolException + */ + public void notifyToolToDeleteContent(ToolActivity toolActivity) throws ToolException + { + //TODO we need to the classpath check once all tools done. + if (isToolOnClasspath(toolActivity)) + { + ToolContentManager contentManager = (ToolContentManager) findToolService(toolActivity); + contentManager.removeToolContent(toolActivity.getToolContentId(),true); + } + } + /** * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#updateToolSession(org.lamsfoundation.lams.tool.ToolSession) */ public void updateToolSession(ToolSession toolSession) @@ -214,6 +231,44 @@ } /** + * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#getToolSessionsByLesson(org.lamsfoundation.lams.lesson.Lesson) + */ + public List getToolSessionsByLesson(Lesson lesson) + { + return toolSessionDAO.getToolSessionsByLesson(lesson); + } + + + /** + * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#deleteToolSession(org.lamsfoundation.lams.tool.ToolSession) + */ + public void deleteToolSession(ToolSession toolSession) + { + if ( toolSession == null ) { + log.error("deleteToolSession: unable to delete tool session as tool session is null."); + return; + } + + // call the tool to remove the session details + ToolSessionManager sessionManager = (ToolSessionManager) findToolService(toolSession.getToolActivity()); + + try { + sessionManager.removeToolSession(toolSession.getToolSessionId()); + } catch (DataMissingException e) { + log.error("Unable to delete tool data for tool session "+toolSession.getToolSessionId() + +" as toolSession does not exist",e); + } catch (ToolException e) { + log.error("Unable to delete tool data for tool session "+toolSession.getToolSessionId() + +" as tool threw an exception",e); + } + + // now remove the tool session from the core tables. + toolSessionDAO.removeToolSession(toolSession); + + } + + + /** * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#getLearnerToolURLByMode(org.lamsfoundation.lams.learningdesign.ToolActivity, org.lamsfoundation.lams.usermanagement.User, org.lamsfoundation.lams.tool.ToolAccessMode) */ public String getLearnerToolURLByMode(ToolActivity activity, Index: lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java,v diff -u -r1.6 -r1.7 --- lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java 27 Jan 2006 04:35:53 -0000 1.6 +++ lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java 20 Feb 2006 05:31:00 -0000 1.7 @@ -31,6 +31,8 @@ public static String LICENSE_TICKET_FILE="TicketFile"; + public static String PREVIEW_CLEANUP_NUM_DAYS="CleanupPreviewOlderThanDays"; + /** Number of milliseconds before a user is considered "inactive". "Anonymous" sessions * are ended after this period (ie ones that haven't ever access one of the clients ) */ public static String INACTIVE_TIME="UserInactiveTimeout"; Index: lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java,v diff -u -r1.5 -r1.6 --- lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java 31 Jan 2006 12:53:19 -0000 1.5 +++ lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java 20 Feb 2006 05:31:00 -0000 1.6 @@ -171,5 +171,7 @@ public static final String LESSON_NAME = "lessonName"; public static final String LESSON_START_DATETIME = "lessonStartDateTime"; + /** Crash Dump Specific Tags */ + public static final String CRASH_DUMP_BATCH="crashDataBatch"; } Index: lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractStoreWDDXPacketServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractStoreWDDXPacketServlet.java,v diff -u -r1.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractStoreWDDXPacketServlet.java 23 Jan 2006 07:09:20 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/web/servlet/AbstractStoreWDDXPacketServlet.java 20 Feb 2006 05:31:00 -0000 1.5 @@ -88,7 +88,7 @@ packet = getBody(request); if ( log.isDebugEnabled() ) { - log.debug("Request "+request.getRequestURI()+" received packet "+packet); + log.debug("Request "+request.getRequestURI()+" received packet length "+packet); } if(containsNulls(packet)){ @@ -151,27 +151,27 @@ { int tempContentLength = req.getContentLength(); InputStream sis = req.getInputStream(); - byte[] content = new byte[1024*4]; +/* byte[] content = new byte[1024*4]; OutputStream bos = new ByteArrayOutputStream(tempContentLength>0 ? tempContentLength : 200); int len; while((len = sis.read(content)) != -1){ bos.write(content,0,len); } return bos.toString(); - -// BufferedReader buff = new BufferedReader(new InputStreamReader(sis)); -// -// StringBuffer tempStrBuf = new StringBuffer( tempContentLength>0 ? tempContentLength : 200 ); -// String tempStr; -// tempStr = buff.readLine(); -// while ( tempStr != null ) -// { -// tempStrBuf.append(tempStr); -// tempStr = buff.readLine(); -// } -// -// return(tempStrBuf.toString()); + */ + BufferedReader buff = new BufferedReader(new InputStreamReader(sis)); + StringBuffer tempStrBuf = new StringBuffer( tempContentLength>0 ? tempContentLength : 200 ); + String tempStr; + tempStr = buff.readLine(); + while ( tempStr != null ) + { + tempStrBuf.append(tempStr); + tempStr = buff.readLine(); + } + + return(tempStrBuf.toString()); + /* BufferedReader tempReader = req.getReader(); int tempContentLength = req.getContentLength();