Index: lams_build/lib/lams/lams.jar =================================================================== RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams.jar,v diff -u -r1.418 -r1.419 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java,v diff -u -r1.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java 6 Jul 2009 14:15:53 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java 7 Jul 2014 19:42:03 -0000 1.5 @@ -41,10 +41,12 @@ private List removedFieldList; private List addedFieldList; + private List renamedFieldList; public ToolContentVersionFilter() { removedFieldList = new ArrayList(); addedFieldList = new ArrayList(); + renamedFieldList = new ArrayList(); } // container class for removed class @@ -69,7 +71,19 @@ fieldname = fieldname2; defaultValue = defaultValue2; } + } + + // container class for renamed class + class RenamedField { + public Class ownerClass; + public String oldFieldname; + public String newFieldname; + public RenamedField(Class ownerClass2, String oldFieldname2, String newFieldname2) { + ownerClass = ownerClass2; + oldFieldname = oldFieldname2; + newFieldname = newFieldname2; + } } /** @@ -93,6 +107,17 @@ public void addField(Class ownerClass, String fieldname, Object 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. + * + * @param ownerClass + * @param fieldname + */ + public void renameField(Class ownerClass, String oldFieldname, String newFieldname) { + renamedFieldList.add(new RenamedField(ownerClass, oldFieldname, newFieldname)); + } /** * Call by lams import tool service core. Do not use it in tool version filter class. @@ -144,7 +169,25 @@ + added.ownerClass.getName() + " is add 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); + } + } + } + + } + } + // remove fields List children = root.getChildren(); for (Object child : children) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140707.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140707.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140707.sql 7 Jul 2014 19:42:01 -0000 1.1 @@ -0,0 +1,14 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-3263 Add support for renaming field names on sequence import +UPDATE lams_tool SET tool_version='20140707' WHERE tool_signature='laasse10'; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java,v diff -u -r1.2 -r1.3 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java 30 Apr 2014 22:49:50 -0000 1.2 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java 7 Jul 2014 19:42:01 -0000 1.3 @@ -25,6 +25,7 @@ import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter; import org.lamsfoundation.lams.tool.assessment.model.Assessment; +import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; /** * Import filter class for different version of Assessment content. @@ -47,4 +48,11 @@ public void up20140102To20140428() { this.removeField(Assessment.class, "contentInUse"); } + + /** + * Import 20140102 version content to 20140428 version tool server. + */ + public void up20140428To20140707() { + this.renameField(AssessmentQuestion.class, "questionOptions", "options"); + } }