Multi-tier Migration

Version 1 by Robin Shen
on Feb 10, 2010 11:40.


 
compared with
Version 2 by Robin Shen
on Feb 10, 2010 12:26.


Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 1 changes. View first change.

  Continue with version "0" of the Task class defined in [Getting Started] chapter:
 {code}
 package example;
  
 public class Task {
  public boolean prioritized;
 }
 {code}
 Now we have class _CompileTask_ subclassing from Task class as below:
 {code}
 package example;
  
 import java.util.List;
  
 public class CompileTask extends Task {
  public List<String> srcFiles;
 }
 {code}
 Instance of _CompileTask_ can be serialized to XML with XMT as below:
 {code}
 package example;
  
 import java.util.ArrayList;
  
 import com.pmease.commons.xmt.VersionedDocument;
  
 public class Test {
  public static void main(String args[]) {
  CompileTask task = new CompileTask();
  task.prioritized = true;
  task.srcFiles = new ArrayList<String>();
  task.srcFiles.add("Class1.java");
  task.srcFiles.add("Class2.java");
  String xml =VersionedDocument.fromBean(task).toXML();
  writeXMLToFileOrDatabase(xml);
  }
 }
 {code}
 The resulting XML will be:
 {code}
 <?xml version="1.0" encoding="UTF-8"?>
  
 <example.CompileTask version="0.0">
  <prioritized>true</prioritized>
  <srcFiles>
  <string>Class1.java</string>
  <string>Class2.java</string>
  </srcFiles>
 </example.CompileTask>
 {code}
 Pay attention to version attribute of the root element: XMT examines the class hierarchy (except for class _java.lang.Object_) to get current version of each class, and concatenates them with period. Since there are no migrate methods defined in class _Task_ and _CompileTask_, current version of both classes are of "0", so the resulting version of the hierarchy will be "0.0".