Index: lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java =================================================================== diff -u -r078ffcc5cce6214e179857ace04486fa04a7e3a2 -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java (.../PedagogicalPlannerAction.java) (revision 078ffcc5cce6214e179857ace04486fa04a7e3a2) +++ lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java (.../PedagogicalPlannerAction.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -125,6 +125,7 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.converters.reflection.SunUnsafeReflectionProvider; +import com.thoughtworks.xstream.security.AnyTypePermission; /** * Action managing Pedagogical Planner base page and non-tool activities. @@ -1181,6 +1182,7 @@ PedagogicalPlannerSequenceNode node = getPedagogicalPlannerDAO().getByUid(nodeUid); // exporting XML XStream designXml = new XStream(new SunUnsafeReflectionProvider()); + designXml.addPermission(AnyTypePermission.ANY); // do not serialize node's owner designXml.omitField(PedagogicalPlannerSequenceNode.class, "user"); designXml.toXML(node, nodeFile); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java =================================================================== diff -u -r2e5d858e9dd95ddc9aa092c307b2039c9cb62930 -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision 2e5d858e9dd95ddc9aa092c307b2039c9cb62930) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -142,6 +142,7 @@ import com.thoughtworks.xstream.converters.reflection.SunUnsafeReflectionProvider; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; +import com.thoughtworks.xstream.security.AnyTypePermission; /** * Export tool content service bean. @@ -482,6 +483,7 @@ // exporting XML XStream designXml = new XStream(new SunUnsafeReflectionProvider()); + designXml.addPermission(AnyTypePermission.ANY); designXml.toXML(ldDto, ldFile); ldFile.close(); @@ -556,6 +558,7 @@ // serialize tool xml into local file. XStream toolXml = new XStream(new SunUnsafeReflectionProvider()); + toolXml.addPermission(AnyTypePermission.ANY); FileConverter fileConverter = null; if (!fileHandleClassList.isEmpty()) { fileConverter = new FileConverter(toolXml); @@ -902,6 +905,7 @@ Object toolPOJO = null; // change xml to Tool POJO XStream toolXml = new XStream(new SunUnsafeReflectionProvider()); + toolXml.addPermission(AnyTypePermission.ANY); FileConverter fileConverter = null; if (!fileHandleClassList.isEmpty()) { fileConverter = new FileConverter(toolXml); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java =================================================================== diff -u -r2352106404856bbcfa8691a51b31e58dcb531db3 -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java (.../ToolContentVersionFilter.java) (revision 2352106404856bbcfa8691a51b31e58dcb531db3) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java (.../ToolContentVersionFilter.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -20,6 +20,7 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.converters.reflection.SunUnsafeReflectionProvider; +import com.thoughtworks.xstream.security.AnyTypePermission; /** * Super class for all Import content Version Filter. The child class method must follow name conversion. @@ -158,6 +159,7 @@ if (StringUtils.equals(root.getName(), added.ownerClass.getName())) { Writer eleWriter = new StringWriter(); XStream eleX = new XStream(new SunUnsafeReflectionProvider()); + eleX.addPermission(AnyTypePermission.ANY); eleX.toXML(added.defaultValue, eleWriter); SAXBuilder eleBuilder = new SAXBuilder(); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java =================================================================== diff -u -rdb599324881fb550c8645c904483d48ffe9f237d -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision db599324881fb550c8645c904483d48ffe9f237d) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -91,6 +91,7 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.converters.reflection.SunUnsafeReflectionProvider; +import com.thoughtworks.xstream.security.AnyTypePermission; /** * @author Andrey Balan @@ -1338,6 +1339,7 @@ } // exporting XML XStream designXml = new XStream(new SunUnsafeReflectionProvider()); + designXml.addPermission(AnyTypePermission.ANY); String resultedXml = designXml.toXML(questionsToExport); response.setContentType("application/x-download"); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaAdminAction.java =================================================================== diff -u -ra4a61e7b65ede7f903eb08521a9455685ef9283d -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaAdminAction.java (.../QaAdminAction.java) (revision a4a61e7b65ede7f903eb08521a9455685ef9283d) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaAdminAction.java (.../QaAdminAction.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -58,6 +58,7 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.converters.reflection.SunUnsafeReflectionProvider; +import com.thoughtworks.xstream.security.AnyTypePermission; /** * Handles the admin page for question and answer which includes the settings @@ -303,6 +304,7 @@ // exporting XML XStream designXml = new XStream(new SunUnsafeReflectionProvider()); + designXml.addPermission(AnyTypePermission.ANY); String exportXml = designXml.toXML(exportCategories); response.setContentType("application/x-download"); @@ -370,6 +372,7 @@ try { String xml = new String(adminForm.getImportFile().getFileData()); XStream conversionXml = new XStream(new SunUnsafeReflectionProvider()); + conversionXml.addPermission(AnyTypePermission.ANY); SortedSet exportCategories = (SortedSet) conversionXml.fromXML(xml); qaService.deleteAllWizardCategories(); Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/IMindmapService.java =================================================================== diff -u -rbe07c35c372d904a65581d98660e73f3b13b69db -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/IMindmapService.java (.../IMindmapService.java) (revision be07c35c372d904a65581d98660e73f3b13b69db) +++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/IMindmapService.java (.../IMindmapService.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -36,6 +36,9 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.MessageService; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.converters.reflection.SunUnsafeReflectionProvider; + /** * Defines the services available to the web layer from the Mindmap Service */ @@ -94,15 +97,15 @@ public List getAuthorRootNodeByMindmapId(Long mindmapId); public List getAuthorRootNodeBySessionId(Long sessionId); - + public List getAuthorRootNodeByMindmapSession(Long mindmapId, Long toolSessionId); public List getRootNodeByMindmapIdAndUserId(Long mindmapId, Long userId); public List getRootNodeByMindmapIdAndSessionId(Long mindmapId, Long sessionId); public List getMindmapNodeByParentId(Long parentId, Long mindmapId); - + public List getMindmapNodeByParentIdMindmapIdSessionId(Long parentId, Long mindmapId, Long sessionId); public List getMindmapNodeByUniqueId(Long uniqueId, Long mindmapId); @@ -129,7 +132,9 @@ public MindmapRequest getRequestByUniqueId(Long uniqueId, Long userId, Long mindmapId, Long globalId); public Long getLastGlobalIdByMindmapId(Long mindmapId, Long sessionId); - + // Outputs public int getNumNodes(Long learnerId, Long toolSessionId); -} + + public XStream getXStream(); +} \ No newline at end of file Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java =================================================================== diff -u -r708bd4d049ae0a59d70c964ef2f864d2b7a352e6 -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java (.../MindmapService.java) (revision 708bd4d049ae0a59d70c964ef2f864d2b7a352e6) +++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java (.../MindmapService.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -69,6 +69,9 @@ import org.lamsfoundation.lams.tool.mindmap.util.MindmapException; import org.lamsfoundation.lams.tool.mindmap.util.xmlmodel.NodeConceptModel; import org.lamsfoundation.lams.tool.mindmap.util.xmlmodel.NodeModel; +import org.lamsfoundation.lams.tool.mindmap.util.xmlmodel.NotifyRequestModel; +import org.lamsfoundation.lams.tool.mindmap.util.xmlmodel.NotifyResponseModel; +import org.lamsfoundation.lams.tool.mindmap.util.xmlmodel.PollResponseModel; import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; @@ -90,6 +93,8 @@ private static Logger logger = Logger.getLogger(MindmapService.class.getName()); + private final XStream xstream = new XStream(new SunUnsafeReflectionProvider()); + private IMindmapDAO mindmapDAO = null; private IMindmapSessionDAO mindmapSessionDAO = null; private IMindmapUserDAO mindmapUserDAO = null; @@ -107,6 +112,12 @@ public MindmapService() { super(); + + xstream.addPermission(AnyTypePermission.ANY); + xstream.alias("branch", NodeModel.class); + xstream.alias("response", NotifyResponseModel.class); + xstream.alias("action", NotifyRequestModel.class); + xstream.alias("pollResponse", PollResponseModel.class); } /* Methods from ToolSessionManager */ @@ -516,8 +527,6 @@ NodeModel currentNodeModel = getMindmapXMLFromDatabase(rootMindmapNode.getNodeId(), mindmap.getUid(), rootNodeModel, null); - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("branch", NodeModel.class); mindmapContent = xstream.toXML(currentNodeModel); } @@ -559,10 +568,6 @@ if (mindmapContent != null) { MindmapUser mindmapUser = null; - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - // allow parsing all classes - xstream.addPermission(AnyTypePermission.ANY); - xstream.alias("branch", NodeModel.class); NodeModel rootNodeModel = (NodeModel) xstream.fromXML(mindmapContent); NodeConceptModel nodeConceptModel = rootNodeModel.getConcept(); List branches = rootNodeModel.getBranch(); @@ -1061,4 +1066,8 @@ saveMindmapNode(null, rootMindmapNode, 2l, childNodeName1, "ffffff", null, content, null); saveMindmapNode(null, rootMindmapNode, 3l, childNodeName2, "ffffff", null, content, null); } -} + + public XStream getXStream() { + return xstream; + } +} \ No newline at end of file Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/AuthoringAction.java =================================================================== diff -u -ra4a61e7b65ede7f903eb08521a9455685ef9283d -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision a4a61e7b65ede7f903eb08521a9455685ef9283d) +++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -106,9 +106,9 @@ String rootNodeName = mindmapService.getMindmapMessageService().getMessage("node.root.defaultName"); String childNodeName1 = mindmapService.getMindmapMessageService().getMessage("node.child1.defaultName"); String childNodeName2 = mindmapService.getMindmapMessageService().getMessage("node.child2.defaultName"); - - MindmapNode rootMindmapNode = - mindmapService.saveMindmapNode(null, null, 1l, rootNodeName, "ffffff", null, mindmap, null); + + MindmapNode rootMindmapNode = mindmapService.saveMindmapNode(null, null, 1l, rootNodeName, "ffffff", null, + mindmap, null); mindmapService.saveOrUpdateMindmapNode(rootMindmapNode); mindmapService.saveMindmapNode(null, rootMindmapNode, 2l, childNodeName1, "ffffff", null, mindmap, null); mindmapService.saveMindmapNode(null, rootMindmapNode, 3l, childNodeName2, "ffffff", null, mindmap, null); @@ -126,23 +126,24 @@ String mindmapContentPath = Configuration.get(ConfigurationKeys.SERVER_URL) + "tool/lamind10/authoring.do?dispatch=setMindmapContent%26mindmapId=" + mindmap.getUid(); request.setAttribute("mindmapContentPath", mindmapContentPath); - - String localizationPath = Configuration.get(ConfigurationKeys.SERVER_URL) + - "tool/lamind10/authoring.do?dispatch=setLocale"; + + String localizationPath = Configuration.get(ConfigurationKeys.SERVER_URL) + + "tool/lamind10/authoring.do?dispatch=setLocale"; request.setAttribute("localizationPath", localizationPath); - + String currentMindmapUser = mindmapService.getMindmapMessageService().getMessage("node.instructor.label"); request.setAttribute("currentMindmapUser", currentMindmapUser); String mindmapType = "images/mindmap_singleuser.swf"; request.setAttribute("mindmapType", mindmapType); - + // Set up the authForm. AuthoringForm authForm = (AuthoringForm) form; updateAuthForm(authForm, mindmap); // Set up sessionMap - SessionMap map = createSessionMap(mindmap, getAccessMode(request), contentFolderID, toolContentID); + SessionMap map = createSessionMap(mindmap, getAccessMode(request), contentFolderID, + toolContentID); authForm.setSessionMapID(map.getSessionID()); // add the sessionMap to HTTPSession. @@ -165,23 +166,21 @@ HttpServletResponse response) { Long mindmapId = WebUtil.readLongParam(request, "mindmapId", false); - + List mindmapNodeList = mindmapService.getAuthorRootNodeByMindmapId(mindmapId); if (mindmapNodeList != null && mindmapNodeList.size() > 0) { MindmapNode rootMindmapNode = (MindmapNode) mindmapNodeList.get(0); String rootMindmapUser = mindmapService.getMindmapMessageService().getMessage("node.instructor.label"); - NodeModel rootNodeModel = new NodeModel(new NodeConceptModel(rootMindmapNode.getUniqueId(), rootMindmapNode - .getText(), rootMindmapNode.getColor(), rootMindmapUser, 1)); + NodeModel rootNodeModel = new NodeModel(new NodeConceptModel(rootMindmapNode.getUniqueId(), + rootMindmapNode.getText(), rootMindmapNode.getColor(), rootMindmapUser, 1)); NodeModel currentNodeModel = mindmapService.getMindmapXMLFromDatabase(rootMindmapNode.getNodeId(), mindmapId, rootNodeModel, null); - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("branch", NodeModel.class); - String mindmapContent = xstream.toXML(currentNodeModel); - + String mindmapContent = mindmapService.getXStream().toXML(currentNodeModel); + try { response.setContentType("text/xml"); response.setCharacterEncoding("utf-8"); @@ -193,7 +192,7 @@ return null; } - + /** * Returns the serialized XML of the Mindmap Nodes from Database * @@ -205,7 +204,7 @@ */ public ActionForward setLocale(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - + try { response.setContentType("text/xml"); response.setCharacterEncoding("utf-8"); @@ -238,7 +237,7 @@ // update mindmap content using form inputs. ToolAccessMode mode = (ToolAccessMode) map.get(AuthoringAction.KEY_MODE); updateMindmap(mindmap, authForm, mode); - + // set the update date mindmap.setUpdateDate(new Date()); @@ -261,14 +260,13 @@ MindmapUser mindmapUser = mindmapService.getUserByUID(mindmap.getCreateBy()); // Saving Mindmap data to XML - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("branch", NodeModel.class); - NodeModel rootNodeModel = (NodeModel) xstream.fromXML(mindmapContent); + NodeModel rootNodeModel = (NodeModel) mindmapService.getXStream().fromXML(mindmapContent); NodeConceptModel nodeConceptModel = rootNodeModel.getConcept(); List branches = rootNodeModel.getBranch(); // saving root Node into database - MindmapNode rootMindmapNode = (MindmapNode) mindmapService.getAuthorRootNodeByMindmapId(mindmap.getUid()).get(0); + MindmapNode rootMindmapNode = (MindmapNode) mindmapService.getAuthorRootNodeByMindmapId(mindmap.getUid()) + .get(0); rootMindmapNode = mindmapService.saveMindmapNode(rootMindmapNode, null, nodeConceptModel.getId(), nodeConceptModel.getText(), nodeConceptModel.getColor(), mindmapUser, mindmap, null); Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/LearningAction.java =================================================================== diff -u -ra4a61e7b65ede7f903eb08521a9455685ef9283d -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/LearningAction.java (.../LearningAction.java) (revision a4a61e7b65ede7f903eb08521a9455685ef9283d) +++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/LearningAction.java (.../LearningAction.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -77,8 +77,7 @@ * @author Ruslan Kazakov * @version 1.0.1 * - * @struts.action path="/learning" parameter="dispatch" scope="request" - * name="learningForm" + * @struts.action path="/learning" parameter="dispatch" scope="request" name="learningForm" * @struts.action-forward name="mindmap" path="tiles:/learning/main" * @struts.action-forward name="submissionDeadline" path="tiles:/learning/submissionDeadline" * @struts.action-forward name="defineLater" path="tiles:/learning/defineLater" @@ -91,24 +90,25 @@ private IMindmapService mindmapService; /** - * Default action on page load. Clones Mindmap Nodes for each Learner in - * single-user mode. Uses shared (runtime created in CopyToolContent method) - * Mindmap Nodes in multi-user mode. + * Default action on page load. Clones Mindmap Nodes for each Learner in single-user mode. Uses shared (runtime + * created in CopyToolContent method) Mindmap Nodes in multi-user mode. * * @param mapping * @param form * @param request * @param response * @return null */ + @Override public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LearningForm learningForm = (LearningForm) form; // 'toolSessionID' and 'mode' parameters are expected to be present. // TODO need to catch exceptions and handle errors. - ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, MODE_OPTIONAL); + ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, + LearningAction.MODE_OPTIONAL); Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); @@ -149,8 +149,8 @@ mindmapService.saveOrUpdateMindmap(mindmap); } - LearningWebUtil.putActivityPositionInRequestByToolSessionId(toolSessionID, request, getServlet() - .getServletContext()); + LearningWebUtil.putActivityPositionInRequestByToolSessionId(toolSessionID, request, + getServlet().getServletContext()); // check if there is submission deadline Date submissionDeadline = mindmap.getSubmissionDeadline(); @@ -198,13 +198,14 @@ // mindmapType Parameter String mindmapType = null; - if (mindmap.isLockOnFinished() && mindmapUser.isFinishedActivity()) + if (mindmap.isLockOnFinished() && mindmapUser.isFinishedActivity()) { mindmapType = "images/mindmap_locked.swf"; - else { - if (mindmap.isMultiUserMode() == true) + } else { + if (mindmap.isMultiUserMode() == true) { mindmapType = "images/mindmap_multiuser.swf"; - else + } else { mindmapType = "images/mindmap_singleuser.swf"; + } } request.setAttribute("mindmapType", mindmapType); @@ -216,8 +217,8 @@ // notifyServer Parameter String notifyServerParam = Configuration.get(ConfigurationKeys.SERVER_URL) - + "tool/lamind10/learning.do?dispatch=notifyServerAction%26mindmapId=" + mindmap.getUid() - + "%26userId=" + mindmapUser.getUid() + "%26sessionId=" + mindmapSession.getSessionId(); + + "tool/lamind10/learning.do?dispatch=notifyServerAction%26mindmapId=" + mindmap.getUid() + "%26userId=" + + mindmapUser.getUid() + "%26sessionId=" + mindmapSession.getSessionId(); request.setAttribute("notifyServerParam", notifyServerParam); String localizationPath = Configuration.get(ConfigurationKeys.SERVER_URL) @@ -242,18 +243,18 @@ // clonning Mindmap Nodes for every new user List rootNodeList = mindmapService.getRootNodeByMindmapIdAndUserId(mindmap.getUid(), mindmapUser.getUid()); - if (rootNodeList == null || rootNodeList.size() == 0) { - MindmapNode fromMindmapNode = (MindmapNode) mindmapService.getAuthorRootNodeByMindmapId( - mindmap.getUid()).get(0); + if ((rootNodeList == null) || (rootNodeList.size() == 0)) { + MindmapNode fromMindmapNode = (MindmapNode) mindmapService + .getAuthorRootNodeByMindmapId(mindmap.getUid()).get(0); cloneMindmapNodesForRuntime(fromMindmapNode, null, mindmap, mindmap, mindmapUser, mindmapSession); } } else { // clonning Mindmap Nodes for every new session List rootNodeList = mindmapService.getAuthorRootNodeBySessionId(toolSessionID); - if (rootNodeList == null || rootNodeList.size() == 0) { - MindmapNode fromMindmapNode = (MindmapNode) mindmapService.getAuthorRootNodeByMindmapId( - mindmap.getUid()).get(0); + if ((rootNodeList == null) || (rootNodeList.size() == 0)) { + MindmapNode fromMindmapNode = (MindmapNode) mindmapService + .getAuthorRootNodeByMindmapId(mindmap.getUid()).get(0); cloneMindmapNodesForRuntime(fromMindmapNode, null, mindmap, mindmap, null, mindmapSession); } @@ -274,15 +275,15 @@ * @param toContent * @param user */ - public void cloneMindmapNodesForRuntime(MindmapNode fromMindmapNode, MindmapNode toMindmapNode, - Mindmap fromContent, Mindmap toContent, MindmapUser user, MindmapSession session) { + public void cloneMindmapNodesForRuntime(MindmapNode fromMindmapNode, MindmapNode toMindmapNode, Mindmap fromContent, + Mindmap toContent, MindmapUser user, MindmapSession session) { toMindmapNode = mindmapService.saveMindmapNode(null, toMindmapNode, fromMindmapNode.getUniqueId(), fromMindmapNode.getText(), fromMindmapNode.getColor(), user, toContent, session); - List childMindmapNodes = mindmapService.getMindmapNodeByParentId(fromMindmapNode.getNodeId(), fromContent - .getUid()); + List childMindmapNodes = mindmapService.getMindmapNodeByParentId(fromMindmapNode.getNodeId(), + fromContent.getUid()); - if (childMindmapNodes != null && childMindmapNodes.size() > 0) { + if ((childMindmapNodes != null) && (childMindmapNodes.size() > 0)) { for (Iterator iterator = childMindmapNodes.iterator(); iterator.hasNext();) { MindmapNode childMindmapNode = (MindmapNode) iterator.next(); cloneMindmapNodesForRuntime(childMindmapNode, toMindmapNode, fromContent, toContent, user, session); @@ -291,8 +292,7 @@ } /** - * Gets the Notify Requests (Actions) from Flash and returns proper Notify - * Responses + * Gets the Notify Requests (Actions) from Flash and returns proper Notify Responses * * @param mapping * @param form @@ -310,9 +310,7 @@ MindmapSession mindmapSession = mindmapService.getSessionBySessionId(toolSessionId); - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("action", NotifyRequestModel.class); - NotifyRequestModel notifyRequestModel = (NotifyRequestModel) xstream.fromXML(requestAction); + NotifyRequestModel notifyRequestModel = (NotifyRequestModel) mindmapService.getXStream().fromXML(requestAction); int requestType = notifyRequestModel.getType(); // if request was previously created @@ -329,10 +327,10 @@ MindmapNode mindmapNode = null; List mindmapNodeList = mindmapService.getMindmapNodeByUniqueIdSessionId(notifyRequestModel.getNodeID(), mindmapId, toolSessionId); - if (mindmapNodeList != null && mindmapNodeList.size() > 0) { + if ((mindmapNodeList != null) && (mindmapNodeList.size() > 0)) { mindmapNode = (MindmapNode) mindmapNodeList.get(0); } else { - log.error("notifyServerAction(): Error finding node!"); + LearningAction.log.error("notifyServerAction(): Error finding node!"); return null; } @@ -350,7 +348,7 @@ List childNodes = mindmapService.getMindmapNodeByParentIdMindmapIdSessionId(curNode.getNodeId(), mindmapId, toolSessionId); - if (childNodes == null || childNodes.size() == 0) // check if node has any children + if ((childNodes == null) || (childNodes.size() == 0)) // check if node has any children { mindmapService.deleteNodeByUniqueMindmapUser(notifyRequestModel.getNodeID(), mindmapId, userId, toolSessionId); @@ -375,8 +373,8 @@ mindmapService.getNodeLastUniqueIdByMindmapUidSessionId(mindmapId, toolSessionId) + 1; mindmapService.saveMindmapNode(null, mindmapNode, uniqueId, nodeConceptModel.getText(), - nodeConceptModel.getColor(), mindmapService.getUserByUID(userId), mindmapService - .getMindmapByUid(mindmapId), mindmapSession); + nodeConceptModel.getColor(), mindmapService.getUserByUID(userId), + mindmapService.getMindmapByUid(mindmapId), mindmapSession); mindmapRequest = saveMindmapRequest(mindmapRequest, requestType, notifyRequestModel, userId, mindmapId, uniqueId, toolSessionId); @@ -409,11 +407,12 @@ } } } else { - if (requestType == 1) - notifyResponse = generateNotifyResponse(1, mindmapRequest.getGlobalId(), mindmapRequest - .getNodeChildId()); - else + if (requestType == 1) { + notifyResponse = generateNotifyResponse(1, mindmapRequest.getGlobalId(), + mindmapRequest.getNodeChildId()); + } else { notifyResponse = generateNotifyResponse(1, mindmapRequest.getGlobalId(), null); + } } try { @@ -463,18 +462,15 @@ NotifyResponseModel nodeResponseModel = new NotifyResponseModel(); nodeResponseModel.setOk(ok); nodeResponseModel.setId(id); - if (data != null) + if (data != null) { nodeResponseModel.setData(data); + } - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("response", NotifyResponseModel.class); - - return xstream.toXML(nodeResponseModel); + return mindmapService.getXStream().toXML(nodeResponseModel); } /** - * Returns lists of Poll Requests (Actions) on Mindmap Nodes made by other - * learners + * Returns lists of Poll Requests (Actions) on Mindmap Nodes made by other learners * * @param mapping * @param form @@ -501,15 +497,16 @@ NodeConceptModel nodeConceptModel = null; MindmapNode rootMindmapNode = null; - if (requestType != 0 && requestType != 1) { + if ((requestType != 0) && (requestType != 1)) { //List nodesList = mindmapService.getMindmapNodeByUniqueId(mindmapRequest.getNodeId(), mindmapId); - List nodesList = mindmapService.getMindmapNodeByUniqueIdSessionId(mindmapRequest.getNodeId(), - mindmapId, toolSessionId); + List nodesList = mindmapService.getMindmapNodeByUniqueIdSessionId(mindmapRequest.getNodeId(), mindmapId, + toolSessionId); - if (nodesList != null && nodesList.size() > 0) + if ((nodesList != null) && (nodesList.size() > 0)) { rootMindmapNode = (MindmapNode) nodesList.get(0); - else - log.error("pollServerAction(): Error finding node while changing text or color!"); + } else { + LearningAction.log.error("pollServerAction(): Error finding node while changing text or color!"); + } } MindmapNode mindmapNode = null; @@ -518,10 +515,11 @@ List nodesList = mindmapService.getMindmapNodeByUniqueIdSessionId(mindmapRequest.getNodeChildId(), mindmapId, toolSessionId); - if (nodesList != null && nodesList.size() > 0) + if ((nodesList != null) && (nodesList.size() > 0)) { mindmapNode = (MindmapNode) nodesList.get(0); - else - log.error("pollServerAction(): Error finding node while creating a node!"); + } else { + LearningAction.log.error("pollServerAction(): Error finding node while creating a node!"); + } } // delete node @@ -537,10 +535,11 @@ nodeConceptModel.setColor(mindmapNode.getColor()); MindmapUser mindmapUser = mindmapNode.getUser(); - if (mindmapUser != null) + if (mindmapUser != null) { nodeConceptModel.setCreator(mindmapUser.getFirstName() + " " + mindmapUser.getLastName()); - else + } else { nodeConceptModel.setCreator("Student"); + } notifyRequestModel = new NotifyRequestModel(mindmapRequest.getGlobalId(), mindmapRequest.getNodeId(), mindmapRequest.getType(), null, null, nodeConceptModel); @@ -559,10 +558,7 @@ pollResponseModel.addNotifyRequest(notifyRequestModel); } - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("action", NotifyRequestModel.class); - xstream.alias("pollResponse", PollResponseModel.class); - String pollResponse = xstream.toXML(pollResponseModel); + String pollResponse = mindmapService.getXStream().toXML(pollResponseModel); try { response.setContentType("text/xml"); @@ -594,20 +590,22 @@ MindmapUser mindmapUser = mindmapService.getUserByUID(userId); List mindmapNodeList = null; - if (mindmap.isMultiUserMode()) // is multi-user + if (mindmap.isMultiUserMode()) { mindmapNodeList = mindmapService.getAuthorRootNodeByMindmapSession(mindmapId, toolSessionId); - else + } else { mindmapNodeList = mindmapService.getRootNodeByMindmapIdAndUserId(mindmapId, userId); + } - if (mindmapNodeList != null && mindmapNodeList.size() > 0) { + if ((mindmapNodeList != null) && (mindmapNodeList.size() > 0)) { MindmapNode rootMindmapNode = (MindmapNode) mindmapNodeList.get(0); String mindmapUserName = null; - if (rootMindmapNode.getUser() == null) + if (rootMindmapNode.getUser() == null) { mindmapUserName = mindmapService.getMindmapMessageService().getMessage("node.instructor.label"); - else + } else { mindmapUserName = rootMindmapNode.getUser().getFirstName() + " " + rootMindmapNode.getUser().getLastName(); + } int edit = 1; if (rootMindmapNode.getUser() == mindmapUser) { @@ -616,28 +614,28 @@ edit = 0; } - NodeModel rootNodeModel = new NodeModel(new NodeConceptModel(rootMindmapNode.getUniqueId(), rootMindmapNode - .getText(), rootMindmapNode.getColor(), mindmapUserName, edit)); + NodeModel rootNodeModel = new NodeModel(new NodeConceptModel(rootMindmapNode.getUniqueId(), + rootMindmapNode.getText(), rootMindmapNode.getColor(), mindmapUserName, edit)); NodeModel currentNodeModel = mindmapService.getMindmapXMLFromDatabase(rootMindmapNode.getNodeId(), mindmapId, rootNodeModel, mindmapUser); - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("branch", NodeModel.class); - String mindmapContent = xstream.toXML(currentNodeModel); + String mindmapContent = mindmapService.getXStream().toXML(currentNodeModel); // Saving lastActionID Long lastActionId = mindmapService.getLastGlobalIdByMindmapId(mindmap.getUid(), toolSessionId); //mindmap.setLastActionId(lastActionId); // adding lastActionId - if (mindmap.isMultiUserMode()) - if (mindmap.isLockOnFinished() && !mindmapUser.isFinishedActivity()) + if (mindmap.isMultiUserMode()) { + if (mindmap.isLockOnFinished() && !mindmapUser.isFinishedActivity()) { mindmapContent = "\n" + mindmapContent + "\n" + lastActionId + "\n"; - else if (!mindmap.isLockOnFinished()) + } else if (!mindmap.isLockOnFinished()) { mindmapContent = "\n" + mindmapContent + "\n" + lastActionId + "\n"; + } + } try { response.setContentType("text/xml"); @@ -676,15 +674,13 @@ public void saveMindmapXML(Mindmap mindmap, MindmapUser mindmapUser, String mindmapContent, MindmapSession mindmapSession) { // Saving Mindmap data to XML - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("branch", NodeModel.class); - NodeModel rootNodeModel = (NodeModel) xstream.fromXML(mindmapContent); + NodeModel rootNodeModel = (NodeModel) mindmapService.getXStream().fromXML(mindmapContent); NodeConceptModel nodeConceptModel = rootNodeModel.getConcept(); List branches = rootNodeModel.getBranch(); // saving root Node into database - MindmapNode rootMindmapNode = (MindmapNode) mindmapService.getRootNodeByMindmapIdAndUserId(mindmap.getUid(), - mindmapUser.getUid()).get(0); + MindmapNode rootMindmapNode = (MindmapNode) mindmapService + .getRootNodeByMindmapIdAndUserId(mindmap.getUid(), mindmapUser.getUid()).get(0); rootMindmapNode = mindmapService.saveMindmapNode(rootMindmapNode, null, nodeConceptModel.getId(), nodeConceptModel.getText(), nodeConceptModel.getColor(), mindmapUser, mindmap, mindmapSession); @@ -770,19 +766,22 @@ request.setAttribute("reflectTitle", mindmap.getTitle()); request.setAttribute("reflectInstructions", mindmap.getReflectInstructions()); - if (mindmap.isLockOnFinished() && mindmapUser.isFinishedActivity()) + if (mindmap.isLockOnFinished() && mindmapUser.isFinishedActivity()) { request.setAttribute("contentEditable", false); - else + } else { request.setAttribute("contentEditable", true); + } // Saving Mindmap Nodes - if (!mindmap.isMultiUserMode()) + if (!mindmap.isMultiUserMode()) { saveMindmapXML(mindmap, mindmapUser, learningForm.getMindmapContent(), mindmapSession); + } // Reflection NotebookEntry entry = mindmapService.getEntry(mindmapUser.getEntryUID()); - if (entry != null) + if (entry != null) { request.setAttribute("reflectEntry", entry.getEntry()); + } LearningWebUtil.putActivityPositionInRequestByToolSessionId(mindmapSession.getSessionId(), request, getServlet().getServletContext()); @@ -813,8 +812,9 @@ // Retrieve the session and content MindmapSession mindmapSession = mindmapService.getSessionBySessionId(toolSessionID); - if (mindmapSession == null) + if (mindmapSession == null) { throw new MindmapException("Cannot retrieve session with toolSessionID" + toolSessionID); + } Mindmap mindmap = mindmapSession.getMindmap(); @@ -825,8 +825,8 @@ if (entry == null) { // create new entry Long entryUID = mindmapService.createNotebookEntry(toolSessionID, - CoreNotebookConstants.NOTEBOOK_TOOL, MindmapConstants.TOOL_SIGNATURE, mindmapUser - .getUserId().intValue(), learningForm.getEntryText()); + CoreNotebookConstants.NOTEBOOK_TOOL, MindmapConstants.TOOL_SIGNATURE, + mindmapUser.getUserId().intValue(), learningForm.getEntryText()); mindmapUser.setEntryUID(entryUID); mindmapService.saveOrUpdateMindmapUser(mindmapUser); } else { @@ -836,16 +836,18 @@ mindmapService.updateEntry(entry); } } else { - if (!mindmap.isMultiUserMode() && !StringUtils.isBlank(learningForm.getMindmapContent())) + if (!mindmap.isMultiUserMode() && !StringUtils.isBlank(learningForm.getMindmapContent())) { saveMindmapXML(mindmap, mindmapUser, learningForm.getMindmapContent(), mindmapSession); + } } } else { - log.error("finishActivity(): couldn't find MindmapUser is null " + " and toolSessionID: " + toolSessionID); + LearningAction.log.error( + "finishActivity(): couldn't find MindmapUser is null " + " and toolSessionID: " + toolSessionID); } - ToolSessionManager sessionMgrService = MindmapServiceProxy.getMindmapSessionManager(getServlet() - .getServletContext()); + ToolSessionManager sessionMgrService = MindmapServiceProxy + .getMindmapSessionManager(getServlet().getServletContext()); String nextActivityUrl; try { Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/MonitoringAction.java =================================================================== diff -u -ra4a61e7b65ede7f903eb08521a9455685ef9283d -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision a4a61e7b65ede7f903eb08521a9455685ef9283d) +++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -154,10 +154,9 @@ .getText(), rootMindmapNode.getColor(), mindmapUserName)); NodeModel currentNodeModel = mindmapService.getMindmapXMLFromDatabase(rootMindmapNode.getNodeId(), mindmapId, rootNodeModel, null); - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("branch", NodeModel.class); - String mindmapContent = xstream.toXML(currentNodeModel); + String mindmapContent = mindmapService.getXStream().toXML(currentNodeModel); + try { response.setContentType("text/xml"); response.setCharacterEncoding("utf-8"); @@ -299,9 +298,8 @@ if (!mindmap.isMultiUserMode()) { // Saving Mindmap data to XML - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("branch", NodeModel.class); - NodeModel rootNodeModel = (NodeModel) xstream.fromXML(mindmapContent); + + NodeModel rootNodeModel = (NodeModel) mindmapService.getXStream().fromXML(mindmapContent); NodeConceptModel nodeConceptModel = rootNodeModel.getConcept(); List branches = rootNodeModel.getBranch(); Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/servlets/ExportServlet.java =================================================================== diff -u -ra4a61e7b65ede7f903eb08521a9455685ef9283d -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 --- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision a4a61e7b65ede7f903eb08521a9455685ef9283d) +++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) @@ -176,9 +176,7 @@ NodeModel currentNodeModel = mindmapService.getMindmapXMLFromDatabase(rootMindmapNode.getNodeId(), mindmap.getUid(), rootNodeModel, mindmapUser); - XStream xstream = new XStream(new SunUnsafeReflectionProvider()); - xstream.alias("branch", NodeModel.class); - String mindmapContent = xstream.toXML(currentNodeModel); + String mindmapContent = mindmapService.getXStream().toXML(currentNodeModel); try { File mindmapFile = new File(path);