Index: lams_build/3rdParty.userlibraries =================================================================== diff -u -r3dbf966d900adefc34cdad501d3c392118451cd9 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_build/3rdParty.userlibraries (.../3rdParty.userlibraries) (revision 3dbf966d900adefc34cdad501d3c392118451cd9) +++ lams_build/3rdParty.userlibraries (.../3rdParty.userlibraries) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -7,8 +7,6 @@ - - Index: lams_build/build.xml =================================================================== diff -u -r5d9ae40d59b2063b0340880b1d0e81ea4fe7956d -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_build/build.xml (.../build.xml) (revision 5d9ae40d59b2063b0340880b1d0e81ea4fe7956d) +++ lams_build/build.xml (.../build.xml) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -439,34 +439,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - Index: lams_build/conf/j2ee/jboss-deployment-structure.xml =================================================================== diff -u -r3dbf966d900adefc34cdad501d3c392118451cd9 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_build/conf/j2ee/jboss-deployment-structure.xml (.../jboss-deployment-structure.xml) (revision 3dbf966d900adefc34cdad501d3c392118451cd9) +++ lams_build/conf/j2ee/jboss-deployment-structure.xml (.../jboss-deployment-structure.xml) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -19,9 +19,7 @@ - - Index: lams_build/lib/axis/axis-ant.jar =================================================================== diff -u -r4fbc112855721842d04da0b37a3ed41723cf89fa -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d Binary files differ Index: lams_build/lib/axis/axis.jar =================================================================== diff -u -r4fbc112855721842d04da0b37a3ed41723cf89fa -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d Binary files differ Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_build/lib/axis/axis.module.xml'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_build/lib/axis/wsdl4j-1.5.1.jar =================================================================== diff -u -r4fbc112855721842d04da0b37a3ed41723cf89fa -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d Binary files differ Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_build/lib/axis/wsdl4j.module.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_build/lib/cglib/cglib.module.xml'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_build/lib/cglib/cglib_jboss404GA.jar =================================================================== diff -u -r192445ffb5cbc6f54a697a4ff8bff121d05eb6ef -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d Binary files differ Index: lams_build/lib/lams/lams-central.jar =================================================================== diff -u -r3dbf966d900adefc34cdad501d3c392118451cd9 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d Binary files differ Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r3dbf966d900adefc34cdad501d3c392118451cd9 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d Binary files differ Index: lams_build/liblist.txt =================================================================== diff -u -r3dbf966d900adefc34cdad501d3c392118451cd9 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_build/liblist.txt (.../liblist.txt) (revision 3dbf966d900adefc34cdad501d3c392118451cd9) +++ lams_build/liblist.txt (.../liblist.txt) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -10,14 +10,8 @@ autopatch autopatch-1.4.2-lams.jar 1.4.2-lams Apache License Tacit Knowledge automated Java patching system discovery-1.0.5-lams.jar 1.0.5-lams -axis axis-ant.jar 1.4 Apache License 2.0 Apache XML based Web service framework - axis.jar 1.4 - wsdl4j-1.5.1.jar 1.5.1 Common Public License 1.0 IBM JWSDL - batik batik-1.7.jar 1.7 Apache License 2.0 Apache toolkit for manipulating images in SVG format -cglib cglib_jboss404GA.jar 4.0.4.GA Apache License 2.0 Apache bytecode manipulation framework - fckeditor fckeditor-java-core-2.6.jar 2.6 GPL, LGPL, MPL Frederico Caldeira Knabben Java connector for CKEditor jakarta-commons commons-digester-2.1.jar 2.1 Apache Software License 2.0 Apache Software Foundation XML -> Java object mapping tool Index: lams_central/.classpath =================================================================== diff -u -rd0a703641dee45b84a2cd9a011376a8f0d72c9fb -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_central/.classpath (.../.classpath) (revision d0a703641dee45b84a2cd9a011376a8f0d72c9fb) +++ lams_central/.classpath (.../.classpath) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -37,7 +37,6 @@ - Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java =================================================================== diff -u -r27a58f395dec9927221147dac08a0b75213fd354 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 27a58f395dec9927221147dac08a0b75213fd354) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -48,7 +48,6 @@ import org.apache.struts.actions.DispatchAction; import org.apache.tomcat.util.json.JSONException; import org.apache.tomcat.util.json.JSONObject; -import org.jdom.JDOMException; import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; import org.lamsfoundation.lams.learningdesign.GroupUser; import org.lamsfoundation.lams.learningdesign.dao.IGroupUserDAO; @@ -348,7 +347,7 @@ } public ActionForward getLearningDesignThumbnail(ActionMapping mapping, ActionForm form, HttpServletRequest req, - HttpServletResponse res) throws JDOMException, IOException { + HttpServletResponse res) throws IOException { Long learningDesignId = WebUtil.readLongParam(req, CentralConstants.PARAM_LEARNING_DESIGN_ID); String imagePath = LearningDesignService.getLearningDesignSVGPath(learningDesignId); File imageFile = new File(imagePath); Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/webservice/LearningDesignRepository.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/webservice/LearningDesignRepositoryService.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManager.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerService.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/webservice/Register.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterService.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/webservice/Verification.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5a70ca6f5834da3b63f32b40d0a38ebeb555597d refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/webservice/VerificationService.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_central/web/WEB-INF/web.xml =================================================================== diff -u -r3dbf966d900adefc34cdad501d3c392118451cd9 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_central/web/WEB-INF/web.xml (.../web.xml) (revision 3dbf966d900adefc34cdad501d3c392118451cd9) +++ lams_central/web/WEB-INF/web.xml (.../web.xml) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -190,12 +190,6 @@ - - - org.apache.axis.transport.http.AxisHTTPSessionListener - - - updateCollapsedGroup org.lamsfoundation.lams.web.UpdateCollapsedGroupServlet @@ -314,21 +308,6 @@ - AxisServlet - - org.apache.axis.transport.http.AxisServlet - - - - - AdminServlet - - org.apache.axis.transport.http.AdminServlet - - 100 - - - LoginRequest org.lamsfoundation.lams.web.LoginRequestServlet @@ -420,21 +399,6 @@ - AxisServlet - /servlet/AxisServlet - - - - AxisServlet - *.jws - - - - AxisServlet - /services/* - - - LoginRequest /LoginRequest Index: lams_central/web/toolcontent/importresult.jsp =================================================================== diff -u -r3dbf966d900adefc34cdad501d3c392118451cd9 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_central/web/toolcontent/importresult.jsp (.../importresult.jsp) (revision 3dbf966d900adefc34cdad501d3c392118451cd9) +++ lams_central/web/toolcontent/importresult.jsp (.../importresult.jsp) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -21,7 +21,8 @@ - + + Index: lams_common/.classpath =================================================================== diff -u -r12ce367fc29332930b606485df5eccbc73716735 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_common/.classpath (.../.classpath) (revision 12ce367fc29332930b606485df5eccbc73716735) +++ lams_common/.classpath (.../.classpath) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -43,7 +43,6 @@ - Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java =================================================================== diff -u -rf295ad79de8fe9d221c166fa90587d0be2fdda5b -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision f295ad79de8fe9d221c166fa90587d0be2fdda5b) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -50,15 +50,15 @@ import java.util.TreeSet; import java.util.Vector; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; -import org.jdom.Document; -import org.jdom.Element; -import org.jdom.JDOMException; -import org.jdom.input.SAXBuilder; import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; import org.lamsfoundation.lams.contentrepository.NodeKey; import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; @@ -133,6 +133,9 @@ import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.converters.Converter; @@ -152,6 +155,8 @@ * @version $Revision$ */ public class ExportToolContentService implements IExportToolContentService, ApplicationContextAware { + private Logger log = Logger.getLogger(ExportToolContentService.class); + public static final String LEARNING_DESIGN_SERVICE_BEAN_NAME = "learningDesignService"; public static final String MESSAGE_SERVICE_BEAN_NAME = "commonMessageService"; @@ -196,8 +201,8 @@ private static final String DIR_CONTENT = "content"; - // Other fields - private Logger log = Logger.getLogger(ExportToolContentService.class); + // message keys + private static final String KEY_MSG_IMPORT_FILE_FORMAT = "msg.import.file.format"; // words found both in current complex learning library descriptions and in old exported LD XML files private static final String[][] COMPLEX_LEARNING_LIBRARY_KEY_WORDS = { { "Share", "Forum" }, { "Chat", "Scribe" }, @@ -236,8 +241,6 @@ private ILearningLibraryDAO learningLibraryDAO; - private static final String KEY_MSG_IMPORT_FILE_FORMAT = "msg.import.file.format"; - /** * Class of tool attachment file handler class and relative fields information container. */ @@ -809,16 +812,18 @@ * @param toolsErrorMsgs * @return version of the server that exported this file * @throws IOException + * @throws ParserConfigurationException + * @throws SAXException */ private String checkImportVersion(String fullFilePath, List toolsErrorMsgs) - throws JDOMException, IOException { + throws IOException, ParserConfigurationException, SAXException { + DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = docBuilder.parse(new FileInputStream(fullFilePath)); + Element root = doc.getDocumentElement(); + String title = root.getElementsByTagName(ExportToolContentService.LAMS_TITLE).item(0).getTextContent().trim(); + String versionString = root.getElementsByTagName(ExportToolContentService.LAMS_VERSION).item(0).getTextContent() + .trim(); - SAXBuilder sax = new SAXBuilder(); - Document doc = sax.build(new FileInputStream(fullFilePath), "UTF-8"); - Element root = doc.getRootElement(); - String title = root.getChildTextTrim(ExportToolContentService.LAMS_TITLE); - String versionString = root.getChildTextTrim(ExportToolContentService.LAMS_VERSION); - String currentVersionString = Configuration.get(ConfigurationKeys.SERVER_VERSION_NUMBER); try { boolean isLaterVersion = !VersionUtil.isSameOrLaterVersionAsServer(versionString, true); @@ -860,7 +865,6 @@ contentFilter.removeField(problemClass, "runOffline"); contentFilter.transformXML(fullFilePath); } - } private WorkspaceFolder getWorkspaceFolderForDesign(User importer, Integer workspaceFolderUid) @@ -1113,7 +1117,7 @@ public Long saveLearningDesign(LearningDesignDTO dto, User importer, WorkspaceFolder folder, Map toolMapper, Map removedActMap) - throws ImportToolContentException { + throws ImportToolContentException { // grouping object list List groupingDtoList = dto.getGroupings(); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java =================================================================== diff -u -r3f3940c10223c3efeff9c25dc2b8315dfb190c30 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java (.../ToolContentVersionFilter.java) (revision 3f3940c10223c3efeff9c25dc2b8315dfb190c30) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java (.../ToolContentVersionFilter.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -2,26 +2,21 @@ import java.io.File; import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; -import java.io.Writer; import java.util.ArrayList; import java.util.List; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.jdom.Document; -import org.jdom.Element; -import org.jdom.JDOMException; -import org.jdom.input.SAXBuilder; -import org.jdom.output.XMLOutputter; +import org.lamsfoundation.lams.util.FileUtil; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; -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. *
    @@ -31,8 +26,8 @@ * * The XXX must be integer format, which is Tool version number. *

    - * For more detail, in wiki. + * For more detail, in + * wiki. * * @author Dapeng.Ni * @@ -52,36 +47,36 @@ } // container class for removed class - class RemovedField { - public Class ownerClass; - public String fieldname; + private class RemovedField { + private Class ownerClass; + private String fieldname; - public RemovedField(Class ownerClass, String fieldname) { + private RemovedField(Class ownerClass, String fieldname) { this.ownerClass = ownerClass; this.fieldname = fieldname; } } // container class for added class - class AddedField { - public Class ownerClass; - public String fieldname; - public Object defaultValue; + private class AddedField { + private Class ownerClass; + private String fieldname; + private String defaultValue; - public AddedField(Class ownerClass2, String fieldname2, Object defaultValue2) { - ownerClass = ownerClass2; - fieldname = fieldname2; - defaultValue = defaultValue2; + private AddedField(Class ownerClass, String fieldname, String defaultValue) { + this.ownerClass = ownerClass; + this.fieldname = fieldname; + this.defaultValue = defaultValue; } } - + // container class for renamed class - class RenamedField { - public Class ownerClass; - public String oldFieldname; - public String newFieldname; + private class RenamedField { + private Class ownerClass; + private String oldFieldname; + private String newFieldname; - public RenamedField(Class ownerClass2, String oldFieldname2, String newFieldname2) { + private RenamedField(Class ownerClass2, String oldFieldname2, String newFieldname2) { ownerClass = ownerClass2; oldFieldname = oldFieldname2; newFieldname = newFieldname2; @@ -106,10 +101,10 @@ * @param ownerClass * @param fieldname */ - public void addField(Class ownerClass, String fieldname, Object defaultValue) { + public void addField(Class ownerClass, String fieldname, String defaultValue) { addedFieldList.add(new AddedField(ownerClass, fieldname, defaultValue)); } - + /** * When a field is renamed in tool Hibernate POJO class, this method must be call in upXXXToYYY()/downXXXToYYY() * methods. @@ -128,91 +123,78 @@ * @throws JDOMException * @throws IOException */ - public void transformXML(String toolFilePath) throws JDOMException, IOException { + public void transformXML(String toolFilePath) throws IOException { File toolFile = new File(toolFilePath); - SAXBuilder sax = new SAXBuilder(); - Document doc = sax.build(new FileInputStream(toolFile)); - Element root = doc.getRootElement(); - retrieveXML(root); + try { + DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = docBuilder.parse(new FileInputStream(toolFile)); + Element root = doc.getDocumentElement(); + retrieveXML(root); - toolFile.renameTo(new File(toolFilePath + "_oldver")); - - File newToolFile = new File(toolFilePath); - XMLOutputter output = new XMLOutputter(); - output.output(doc, new FileOutputStream(newToolFile)); + toolFile.renameTo(new File(toolFilePath + "_oldver")); + File newToolFile = new File(toolFilePath); + FileUtil.writeXMLtoFile(doc, newToolFile); + } catch (Exception e) { + throw new IOException("Error while transforming XML", e); + } } - private void retrieveXML(Element root) throws JDOMException, IOException { - // collect all removed fields in this class - List clzRemoveFlds = new ArrayList(); + private void retrieveXML(Element root) throws IOException { for (RemovedField remove : removedFieldList) { - if (StringUtils.equals(root.getName(), remove.ownerClass.getName()) - || StringUtils.equals(root.getAttributeValue("class"), remove.ownerClass.getName())) { - clzRemoveFlds.add(remove.fieldname); - ToolContentVersionFilter.log.debug("Field " + remove.fieldname + " in class " - + remove.ownerClass.getName() + " is going to leave."); + if (StringUtils.equals(root.getNodeName(), remove.ownerClass.getName()) + || StringUtils.equals(root.getAttribute("class"), remove.ownerClass.getName())) { + + Node node = root.getFirstChild(); + while (node != null) { + Node oldNode = node; + node = node.getNextSibling(); + if (oldNode.getNodeName().equals(remove.fieldname)) { + root.removeChild(oldNode); + ToolContentVersionFilter.log.debug("Field " + remove.fieldname + " in class " + + remove.ownerClass.getName() + " was removed."); + } + } } } + // add all new fields for this class for (AddedField added : addedFieldList) { - 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); + if (StringUtils.equals(root.getNodeName(), added.ownerClass.getName())) { + Element element = root.getOwnerDocument().createElement(added.fieldname); + element.setTextContent(added.defaultValue); + root.appendChild(element); - SAXBuilder eleBuilder = new SAXBuilder(); - Document eledoc = eleBuilder.build(new StringReader(eleWriter.toString())); - Element eleRoot = eledoc.getRootElement(); - eleRoot.setName(added.fieldname); - eleRoot.detach(); - root.addContent(eleRoot); - ToolContentVersionFilter.log.debug("Field " + added.fieldname + " in class " - + added.ownerClass.getName() + " is add by value " + added.defaultValue); + + added.ownerClass.getName() + " was added by value " + added.defaultValue); } } - + // rename all marked fields for this class for (RenamedField renamed : renamedFieldList) { - if (StringUtils.equals(root.getName(), renamed.ownerClass.getName())) { - for (Object child : root.getChildren()) { - if (child instanceof Element) { - Element ele = (Element) child; - - if (StringUtils.equals(ele.getName(), renamed.oldFieldname)) { - ele.setName(renamed.newFieldname); - ToolContentVersionFilter.log.debug("Field " + renamed.oldFieldname + " in class " - + renamed.ownerClass.getName() + " is renamed to " + renamed.newFieldname); - } + if (StringUtils.equals(root.getNodeName(), renamed.ownerClass.getName())) { + Node node = root.getFirstChild(); + while (node != null) { + Node oldNode = node; + node = node.getNextSibling(); + if (oldNode.getNodeName().equals(renamed.oldFieldname)) { + Element newElement = root.getOwnerDocument().createElement(renamed.newFieldname); + newElement.setTextContent(oldNode.getTextContent()); + root.replaceChild(newElement, oldNode); + ToolContentVersionFilter.log.debug("Field " + renamed.oldFieldname + " in class " + + renamed.ownerClass.getName() + " was renamed to " + renamed.newFieldname); } } - } } // remove fields - List children = root.getChildren(); - for (Object child : children) { - if (child instanceof Element) { - Element ele = (Element) child; - // this node already removed, no necessary retrieve its children level - if (clzRemoveFlds.contains(ele.getName())) { - continue; - } - // recusive current node's children level. - retrieveXML(ele); + NodeList children = root.getChildNodes(); + for (int childIndex = 0; childIndex < children.getLength(); childIndex++) { + Node node = children.item(childIndex); + if (node.getNodeType() == Node.ELEMENT_NODE) { + retrieveXML((Element) node); } } - // retrieve all current node's children, if found some element is in removed list, then remove it. - for (String name : clzRemoveFlds) { - if (root.removeChild(name)) { - ToolContentVersionFilter.log.debug("Field " + name + " is removed."); - } else { - ToolContentVersionFilter.log.debug("Failed remove field " + name + "."); - } - } - } -} +} \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/questions/QuestionExporter.java =================================================================== diff -u -r70cd6c82e640323ec48513c47a11a1e4af86f575 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_common/src/java/org/lamsfoundation/lams/questions/QuestionExporter.java (.../QuestionExporter.java) (revision 70cd6c82e640323ec48513c47a11a1e4af86f575) +++ lams_common/src/java/org/lamsfoundation/lams/questions/QuestionExporter.java (.../QuestionExporter.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -25,7 +25,6 @@ import java.io.File; import java.io.IOException; -import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -39,11 +38,6 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; @@ -74,9 +68,9 @@ private static final String EAR_IMAGE_FOLDER = Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) + File.separator + FileUtil.LAMS_WWW_DIR; - private static final File MANIFEST_TEMPLATE_FILE = new File(Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) - + File.separator + "lams-central.war" + File.separator + "questions" + File.separator - + "imsmanifest_template.xml"); + private static final File MANIFEST_TEMPLATE_FILE = new File( + Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) + File.separator + "lams-central.war" + File.separator + + "questions" + File.separator + "imsmanifest_template.xml"); private String packageTitle = null; private Question[] questions = null; @@ -107,8 +101,8 @@ String fileName = FileUtil.getFileName(packagePath); fileName = FileUtil.encodeFilenameForDownload(request, fileName); response.setContentType(CentralConstants.RESPONSE_CONTENT_TYPE_DOWNLOAD); - response.setHeader(CentralConstants.HEADER_CONTENT_DISPOSITION, CentralConstants.HEADER_CONTENT_ATTACHMENT - + fileName); + response.setHeader(CentralConstants.HEADER_CONTENT_DISPOSITION, + CentralConstants.HEADER_CONTENT_ATTACHMENT + fileName); // write out the ZIP to respose error FileUtils.copyFile(packageFile, response.getOutputStream()); @@ -202,14 +196,14 @@ } if (itemElem == null) { - QuestionExporter.log.warn("Unknow type \"" + question.getType() + "\" of question \"" - + question.getTitle() + "\""); + QuestionExporter.log + .warn("Unknow type \"" + question.getType() + "\" of question \"" + question.getTitle() + "\""); } else { sectionElem.appendChild(itemElem); } } - return writeOutDoc(); + return FileUtil.writeXMLtoString(doc); } /** @@ -297,20 +291,20 @@ // link feedback for correct/incorrect answer if (isCorrect) { - Element displayfeedbackElem = (Element) respconditionElem.appendChild(doc - .createElement("displayfeedback")); + Element displayfeedbackElem = (Element) respconditionElem + .appendChild(doc.createElement("displayfeedback")); displayfeedbackElem.setAttribute("feedbacktype", "Response"); displayfeedbackElem.setAttribute("linkrefid", correctFeedbackLabel); } else { - Element displayfeedbackElem = (Element) respconditionElem.appendChild(doc - .createElement("displayfeedback")); + Element displayfeedbackElem = (Element) respconditionElem + .appendChild(doc.createElement("displayfeedback")); displayfeedbackElem.setAttribute("feedbacktype", "Response"); displayfeedbackElem.setAttribute("linkrefid", incorrectFeedbackLabel); } if (overallFeedbackElem != null) { - Element displayfeedbackElem = (Element) respconditionElem.appendChild(doc - .createElement("displayfeedback")); + Element displayfeedbackElem = (Element) respconditionElem + .appendChild(doc.createElement("displayfeedback")); displayfeedbackElem.setAttribute("feedbacktype", "Response"); displayfeedbackElem.setAttribute("linkrefid", overallFeedbackElem.getAttribute("ident")); } @@ -406,8 +400,8 @@ if (matchAnswerIndex == question.getMatchMap().get(answerIndex)) { Element respconditionElem = doc.createElement("respcondition"); respconditionElem.setAttribute("title", "Matching " + responseLidIdentifier + " Resp Condition 1"); - Element conditionvarElem = (Element) respconditionElem.appendChild(doc - .createElement("conditionvar")); + Element conditionvarElem = (Element) respconditionElem + .appendChild(doc.createElement("conditionvar")); Element varequalElem = (Element) conditionvarElem.appendChild(doc.createElement("varequal")); varequalElem.setAttribute("respident", responseLidIdentifier); varequalElem.setTextContent(matchAnswerIdent); @@ -555,8 +549,8 @@ setvarElem.setTextContent(String.valueOf(answer.getScore())); if (overallFeedbackElem != null) { - Element displayfeedbackElem = (Element) respconditionElem.appendChild(doc - .createElement("displayfeedback")); + Element displayfeedbackElem = (Element) respconditionElem + .appendChild(doc.createElement("displayfeedback")); displayfeedbackElem.setAttribute("feedbacktype", "Response"); displayfeedbackElem.setAttribute("linkrefid", overallFeedbackElem.getAttribute("ident")); } @@ -585,36 +579,6 @@ } /** - * Transforms a DOM object to String representation. - */ - private String writeOutDoc() { - DOMSource domSource = new DOMSource(doc); - StringWriter writer = new StringWriter(); - StreamResult streamResult = new StreamResult(writer); - TransformerFactory tf = TransformerFactory.newInstance(); - try { - Transformer transformer = tf.newTransformer(); - transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); - // a bit of beautification - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); - transformer.transform(domSource, streamResult); - } catch (Exception e) { - QuestionExporter.log.error("Error while writing out XML document", e); - return null; - } - - String result = writer.toString(); - try { - writer.close(); - } catch (IOException e) { - QuestionExporter.log.warn("Writer could not be closed", e); - } - - return result; - } - - /** * Extracts images from HTML text (probably created by CKEditor) and substitutes them with markers, so further * processing knows how to handle them. */ Index: lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java =================================================================== diff -u -r3dbf966d900adefc34cdad501d3c392118451cd9 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 3dbf966d900adefc34cdad501d3c392118451cd9) +++ lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -28,23 +28,30 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; +import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Date; import java.util.Properties; import javax.mail.internet.MimeUtility; import javax.servlet.http.HttpServletRequest; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.hibernate.id.Configurable; import org.hibernate.id.IdentifierGenerator; import org.hibernate.id.UUIDHexGenerator; import org.hibernate.type.StringType; -import org.jdom.JDOMException; import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter; import org.lamsfoundation.lams.util.zipfile.ZipFileUtilException; +import org.w3c.dom.Document; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.converters.ConversionException; @@ -55,13 +62,12 @@ * General File Utilities */ public class FileUtil { + private static Logger log = Logger.getLogger(FileUtil.class); public static final String ENCODING_UTF_8 = "UTF8"; public static final String EXPORT_TO_SPREADSHEET_TITLE_DATE_FORMAT = "dd.MM.yyyy h a"; public static final String EXPORT_TO_SPREADSHEET_CELL_DATE_FORMAT = "dd.MM.yyyy"; - private static Logger log = Logger.getLogger(FileUtil.class); - public static final String LAMS_WWW_SECURE_DIR = "secure"; public static final String LAMS_WWW_DIR = "lams-www.war"; public static final String LAMS_RUNTIME_CONTENT_DIR = "runtime"; @@ -73,6 +79,21 @@ protected static final String prefix = "lamstmp_"; // protected rather than private to suit junit test + private static Transformer xmlTransformer = null; + + static { + TransformerFactory tf = TransformerFactory.newInstance(); + try { + FileUtil.xmlTransformer = tf.newTransformer(); + FileUtil.xmlTransformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + // a bit of beautification + FileUtil.xmlTransformer.setOutputProperty(OutputKeys.INDENT, "yes"); + FileUtil.xmlTransformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); + } catch (Exception e) { + FileUtil.log.error("Error while initialising XML transformer", e); + } + } + /** * Deleting a directory using File.delete() only works if the directory is empty. This method deletes a directory * and all of its contained files. @@ -667,7 +688,7 @@ * ------------------------------- * */ - public static Object getObjectFromXML(XStream xStream, String fullFilePath) throws JDOMException, IOException { + public static Object getObjectFromXML(XStream xStream, String fullFilePath) throws IOException { Reader file = null; XStream conversionXml = xStream != null ? xStream : new XStream(new SunUnsafeReflectionProvider()); @@ -793,6 +814,27 @@ } else { return ret; } + } + public static void writeXMLtoFile(Document doc, File file) throws IOException { + StreamResult streamResult = new StreamResult(file); + DOMSource domSource = new DOMSource(doc); + try { + FileUtil.xmlTransformer.transform(domSource, streamResult); + } catch (TransformerException e) { + throw new IOException("Error while writing out XML document to file", e); + } } -} + + public static String writeXMLtoString(Document doc) { + try (StringWriter writer = new StringWriter()) { + StreamResult streamResult = new StreamResult(writer); + DOMSource domSource = new DOMSource(doc); + FileUtil.xmlTransformer.transform(domSource, streamResult); + return writer.toString(); + } catch (Exception e) { + FileUtil.log.error("Error while writing out XML document to string", e); + return null; + } + } +} \ No newline at end of file Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/client/ToolContentHandler.java =================================================================== diff -u -rc135649b64e98c9233da20bdcfb7689598116314 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/client/ToolContentHandler.java (.../ToolContentHandler.java) (revision c135649b64e98c9233da20bdcfb7689598116314) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/client/ToolContentHandler.java (.../ToolContentHandler.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -179,7 +179,7 @@ NodeKey nodeKey = null; try { try { - nodeKey = getRepositoryService().addFileItem(getTicket(false), stream, fileName, mimeType, null); + nodeKey = getRepositoryService().addFileItem(getTicket(true), stream, fileName, mimeType, null); } catch (AccessDeniedException e) { log.warn("Unable to access repository to add file " + fileName + "AccessDeniedException: " + e.getMessage() + " Retrying login."); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java =================================================================== diff -u -r3e771e28271a0ef14f3989fe84231546420df296 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java (.../AssessmentImportContentVersionFilter.java) (revision 3e771e28271a0ef14f3989fe84231546420df296) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java (.../AssessmentImportContentVersionFilter.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -54,6 +54,6 @@ */ public void up20140428To20140707() { this.renameField(AssessmentQuestion.class, "questionOptions", "options"); - this.addField(AssessmentQuestion.class, "answerRequired", true); + this.addField(AssessmentQuestion.class, "answerRequired", "true"); } } Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryImportContentVersionFilter.java =================================================================== diff -u -ra41ef185bfa95828df54b39993cbcfbad31f1d55 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryImportContentVersionFilter.java (.../ImageGalleryImportContentVersionFilter.java) (revision a41ef185bfa95828df54b39993cbcfbad31f1d55) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryImportContentVersionFilter.java (.../ImageGalleryImportContentVersionFilter.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -18,9 +18,9 @@ * * http://www.gnu.org/licenses/gpl.txt * **************************************************************** - */ - -/* $Id$ */ + */ + +/* $Id$ */ package org.lamsfoundation.lams.tool.imageGallery.service; import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter; @@ -30,7 +30,7 @@ * Import filter class for different version of ImageGallery content. */ public class ImageGalleryImportContentVersionFilter extends ToolContentVersionFilter { - + /** * Import 20090819 version content to 20140102 version tool server. */ @@ -40,12 +40,13 @@ this.removeField(ImageGallery.class, "offlineInstructions"); this.removeField(ImageGallery.class, "attachments"); } - + /** * Import 20150217 version content to 20150416 version tool server. */ public void up20150217To20150416() { - this.addField(ImageGallery.class, "minimumRates", 0); - this.addField(ImageGallery.class, "maximumRates", 0); + this.removeField(ImageGallery.class, "allowCommentImages"); + this.addField(ImageGallery.class, "minimumRates", "0"); + this.addField(ImageGallery.class, "maximumRates", "0"); } } Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java =================================================================== diff -u -racb25950c7120574108d3ffabbf355732b4e6b01 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision acb25950c7120574108d3ffabbf355732b4e6b01) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -720,7 +720,7 @@ if (toolContentObj == null) { throw new DataMissingException("Unable to find default content for the imageGallery tool"); } - + // don't export following fields for (LearnerItemRatingCriteria criteria : toolContentObj.getRatingCriterias()) { criteria.setToolContentId(null); @@ -788,8 +788,11 @@ // reset it to new toolContentId toolContentObj.setContentId(toolContentId); - for (LearnerItemRatingCriteria criteria : toolContentObj.getRatingCriterias()) { - criteria.setToolContentId(toolContentId); + Set criterias = toolContentObj.getRatingCriterias(); + if (criterias != null) { + for (LearnerItemRatingCriteria criteria : criterias) { + criteria.setToolContentId(toolContentId); + } } ImageGalleryUser user = imageGalleryUserDao.getUserByUserIDAndContentID(new Long(newUserUid.longValue()), toolContentId); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McImportContentVersionFilter.java =================================================================== diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McImportContentVersionFilter.java (.../McImportContentVersionFilter.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McImportContentVersionFilter.java (.../McImportContentVersionFilter.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -25,14 +25,14 @@ public void up20061015To20061113() { // Change name to suit the version you give the tool. - this.addField(McContent.class, "showMarks", new Boolean(false)); - this.addField(McContent.class, "randomize", new Boolean(false)); - this.addField(McOptsContent.class, "displayOrder", new Integer(0)); + this.addField(McContent.class, "showMarks", "false"); + this.addField(McContent.class, "randomize", "false"); + this.addField(McOptsContent.class, "displayOrder", "0"); } public void up20061113To20070820() { // Adds displayAnswers LDEV-1156 - this.addField(McContent.class, "displayAnswers", new Boolean(true)); + this.addField(McContent.class, "displayAnswers", "true"); } /** Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaImportContentVersionFilter.java =================================================================== diff -u -r55645d4b796f36715b66a70fce66406a986ee647 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaImportContentVersionFilter.java (.../QaImportContentVersionFilter.java) (revision 55645d4b796f36715b66a70fce66406a986ee647) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaImportContentVersionFilter.java (.../QaImportContentVersionFilter.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -32,20 +32,19 @@ public class QaImportContentVersionFilter extends ToolContentVersionFilter { /** - * Import 2.0RC1 version content to 2.0RC2 version. Added lock on finish - * field. + * Import 2.0RC1 version content to 2.0RC2 version. Added lock on finish field. */ public void up20061102To20061113() { // Change name to suit the version you give the tool. - this.addField(QaContent.class, "lockWhenFinished", new Boolean(true)); - this.addField(QaContent.class, "showOtherAnswers", new Boolean(true)); + this.addField(QaContent.class, "lockWhenFinished", "true"); + this.addField(QaContent.class, "showOtherAnswers", "true"); } - + public void up20081126To20101022() { this.removeField(QaQueContent.class, "isOptional"); - this.addField(QaQueContent.class, "required", new Boolean(false)); + this.addField(QaQueContent.class, "required", "false"); } - + /** * Import 20140101 version content to 20140102 version tool server. */ @@ -55,22 +54,22 @@ this.removeField(QaContent.class, "offlineInstructions"); this.removeField(QaContent.class, "qaUploadedFiles"); } - + /** * Import 20140102 version content to 20140527 version tool server. */ public void up20140102To20140102() { this.removeField(QaContent.class, "contentLocked"); this.removeField(QaContent.class, "synchInMonitor"); } - + /** * Import 20140822 version content to 20150511 version tool server. */ public void up20140822To20150511() { - this.addField(QaContent.class, "minimumRates", 0); - this.addField(QaContent.class, "maximumRates", 0); - - this.addField(QaQueContent.class, "minWordsLimit", 0); + this.addField(QaContent.class, "minimumRates", "0"); + this.addField(QaContent.class, "maximumRates", "0"); + + this.addField(QaQueContent.class, "minWordsLimit", "0"); } -} +} \ No newline at end of file Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java =================================================================== diff -u -rfc002dfed5f5281ceaf6a525ad1f9f25774bfb58 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java (.../QaServicePOJO.java) (revision fc002dfed5f5281ceaf6a525ad1f9f25774bfb58) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java (.../QaServicePOJO.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -312,7 +312,8 @@ } @Override - public void updateResponseWithNewAnswer(String newAnswer, String toolSessionID, Long questionDisplayOrder, boolean isAutosave) { + public void updateResponseWithNewAnswer(String newAnswer, String toolSessionID, Long questionDisplayOrder, + boolean isAutosave) { HttpSession ss = SessionManager.getSession(); UserDTO toolUser = (UserDTO) ss.getAttribute(AttributeNames.USER); Long userId = new Long(toolUser.getUserID().longValue()); @@ -328,18 +329,18 @@ if (response == null) { response = isAutosave ? new QaUsrResp(null, newAnswer, new Date(System.currentTimeMillis()), "", question, user, true) - : new QaUsrResp(newAnswer, null, new Date(System.currentTimeMillis()), "", question, user, true); + : new QaUsrResp(newAnswer, null, new Date(System.currentTimeMillis()), "", question, user, true); createUserResponse(response); - // if answer has changed + // if answer has changed } else if (!newAnswer.equals(response.getAnswer())) { if (isAutosave) { response.setAnswerAutosaved(newAnswer); } else { response.setAnswer(newAnswer); response.setAnswerAutosaved(null); } - + response.setAttemptTime(new Date(System.currentTimeMillis())); response.setTimezone(""); updateUserResponse(response); @@ -692,10 +693,13 @@ // reset it to new toolContentID toolContentObj.setQaContentId(toolContentID); toolContentObj.setCreatedBy(newUserUid); - for (LearnerItemRatingCriteria criteria : toolContentObj.getRatingCriterias()) { - criteria.setToolContentId(toolContentID); + Set criterias = toolContentObj.getRatingCriterias(); + if (criterias != null) { + for (LearnerItemRatingCriteria criteria : toolContentObj.getRatingCriterias()) { + criteria.setToolContentId(toolContentID); + } } - + // set back the tool content Set questions = toolContentObj.getQaQueContents(); for (QaQueContent question : questions) { Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieImportContentVersionFilter.java =================================================================== diff -u -r48254dfc21feff77f6873023998798430649b7a5 -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieImportContentVersionFilter.java (.../ScratchieImportContentVersionFilter.java) (revision 48254dfc21feff77f6873023998798430649b7a5) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieImportContentVersionFilter.java (.../ScratchieImportContentVersionFilter.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -18,8 +18,8 @@ * * http://www.gnu.org/licenses/gpl.txt * **************************************************************** - */ - + */ + /* $Id$ */ package org.lamsfoundation.lams.tool.scratchie.service; @@ -42,15 +42,15 @@ this.removeField(ScratchieUser.class, "totalAttempts"); this.removeField(ScratchieUser.class, "scratchingFinished"); this.removeField(ScratchieUser.class, "mark"); - + this.removeField(Scratchie.class, "createdBy"); - + this.removeField(ScratchieAnswer.class, "scratchieItem"); - - this.addField(ScratchieSession.class, "mark", new Integer(0)); - this.addField(ScratchieSession.class, "scratchingFinished", new Integer(0)); + + this.addField(ScratchieSession.class, "mark", "0"); + this.addField(ScratchieSession.class, "scratchingFinished", "0"); } - + /** * Import 20131212 version content to 20140102 version tool server. */ @@ -60,18 +60,18 @@ this.removeField(Scratchie.class, "offlineInstructions"); this.removeField(Scratchie.class, "attachments"); } - + /** * Import 20131212 version content to 20140102 version tool server. */ public void up20140102To20140505() { this.removeField(Scratchie.class, "contentInUse"); } - + /** * Import 20140613 version content to 20150206 version tool server. */ public void up20140613To20150206() { - this.addField(Scratchie.class, "burningQuestionsEnabled", new Integer(1)); + this.addField(Scratchie.class, "burningQuestionsEnabled", "1"); } } Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteImportContentVersionFilter.java =================================================================== diff -u -r5b17b810b5302c90b2daf6a5866bf4f6e85bef6a -r5a70ca6f5834da3b63f32b40d0a38ebeb555597d --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteImportContentVersionFilter.java (.../VoteImportContentVersionFilter.java) (revision 5b17b810b5302c90b2daf6a5866bf4f6e85bef6a) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteImportContentVersionFilter.java (.../VoteImportContentVersionFilter.java) (revision 5a70ca6f5834da3b63f32b40d0a38ebeb555597d) @@ -42,7 +42,7 @@ * 2.1, but using 20080108 will cover the prerelease 2.1 + 2.0.4 created import files. */ public void up20080108To20080326() { - this.addField(VoteContent.class, "showResults", true); + this.addField(VoteContent.class, "showResults", "true"); } /** Version 2.3.4 added a minNominationCount column and this should default to "1". */