FOXML Migration

Overview
foxml_migration is an application to transform exiting Fedora object xml files.

Repository URL: https://subversion.mpdl.mpg.de/repos/common/trunk/common_services/foxml_migration

Requirements

 * foxml_migration-jar-with-dependencies.jar.
 * folder xsl in project root containing 14 xslt stylsheets and a mapping xml file.
 * migration.properties file.

Deployment

 * copy the required files into a directory of your choice onto the server, where Fedora is installed.

before execution

 * stop all solutions accessing the Fedora instance.
 * stop escidoc-core.
 * stop Fedora.
 * backup the entire $FEDORA_HOME/data/objects directory !!!
 * ensure the $FEDORA_HOME environment variable is set correctly.
 * adjust settings in migration.properties file according to your requirements.

running the application

 * the jar file currently accepts two command line arguments:
 * in order to migrate all existing objects to the newer metadata schemas run java -Xms128m -Xmx512m -XX:MaxPermSize=256m -jar foxml_migration-jar-with-dependencies.jar migration.
 * to change all references to the escidoc:TOC content model (only relevant for ViRR instances):
 * manually edit the escidoc:TOC FOXML file and replace all occurences of "TOC" with "toc".
 * run java -Xms128m -Xmx512m -XX:MaxPermSize=256m -jar foxml_migration-jar-with-dependencies.jar cmodel.

after execution

 * check the log file (migration.log or propchange.log) for any errors.
 * in case of errors restore the $FEDORA_HOME/data/objects directory.
 * rebuild the Fedora database and the resource index.
 * start Fedora.
 * start escidoc-core:
 * use the escidoc-core admin tool to recache and reindex.
 * perform all tasks according to http://colab.mpdl.mpg.de/mediawiki/Checklist_for_Metadata_Changes
 * start solution(s).

Overview
foxml_migration transforms the following metadata records:


 * PubItems: http://escidoc.mpg.de/metadataprofile/schema/0.1/publication --> http://purl.org/escidoc/metadata/profiles/0.1/publication
 * FaceItems: no profile --> http://purl.org/escidoc/metadata/profiles/0.1/face
 * FacesAlbum: no profile --> http://purl.org/escidoc/metadata/profiles/0.1/publication
 * VirrElement: http://escidoc.mpg.de/metadataprofile/schema/0.1/virrelement --> http://purl.org/escidoc/metadata/profiles/0.1/virrelement
 * OrganizationalUnit: http://escidoc.mpg.de/metadataprofile/schema/0.1/organization --> http://purl.org/escidoc/metadata/profiles/0.1/organizationalunit
 * File: http://escidoc.mpg.de/metadataprofile/schema/0.1/file --> http://purl.org/escidoc/metadata/profiles/0.1/file

All transformations are logged (--> migration.log).

Architecture
foxml_migration - an executable jar file - has a very simple architecture:


 * collect all FOXML files in $FEDORA_HOME/data/objects
 * check the current schema of the metadata inside the default escidoc metadata record
 * transform all versions of the escidoc metadata record according to the list above
 * update the existing FOXML file with all transformed datastreams
 * save the migrated file