MIRTH-3030: Removed the HashMapConverter class since it wrapped all HashMap objects in a TreeMap, which could cause serialization to fail if one or more of the map keys do not implement Comparable or if the keys are of different types. Instead, modified the data field in the Step and Rule classes so be explicitly defined as a LinkedHashMap instead of an Object. Also updated all classes that use this field to set it as a LinkedHashMap. This keeps the ordering in the serialized xml consistent and solves the inconsistent ordering problem observed in the server configuration exports. However this change alters the serialized output of Filter and Transformer objects, so migration code has also been added for these classes.

MIRTH-3076: Added migrate3_0_1() method to the Migratable interface and added implementations for all classes that implement the interface. Only the Filter and Transformer classes as mentioned above have migration logic at this point.

Also uncommented code in MigratableConverter to call the migrate3_0_1 method on Migratable objects.

MigratableConverter now also assumes that an object with no version information should be migrated starting with version 3.0.0. This fixes a problem with migrating objects from pre-3.0.0 to 3.0.1 or higher. This will also allow for adding new Migratable objects in the future (see comments in Migratable and MigratableConverter).