fedora-migrate 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +16 -0
- data/.rspec +2 -0
- data/.travis.yml +19 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +5 -0
- data/config/fedora.yml +14 -0
- data/config/fedora3.yml +12 -0
- data/config/jetty.yml +6 -0
- data/config/solr.yml +15 -0
- data/fedora-migrate.gemspec +30 -0
- data/lib/fedora-migrate.rb +82 -0
- data/lib/fedora_migrate/datastream_mover.rb +78 -0
- data/lib/fedora_migrate/errors.rb +7 -0
- data/lib/fedora_migrate/file_configurator.rb +34 -0
- data/lib/fedora_migrate/hooks.rb +11 -0
- data/lib/fedora_migrate/logger.rb +36 -0
- data/lib/fedora_migrate/migration_options.rb +11 -0
- data/lib/fedora_migrate/mover.rb +44 -0
- data/lib/fedora_migrate/object_mover.rb +62 -0
- data/lib/fedora_migrate/permissions.rb +32 -0
- data/lib/fedora_migrate/permissions_mover.rb +31 -0
- data/lib/fedora_migrate/rdf_datastream_mover.rb +28 -0
- data/lib/fedora_migrate/rdf_datastream_parser.rb +29 -0
- data/lib/fedora_migrate/rels_ext_datastream_mover.rb +90 -0
- data/lib/fedora_migrate/repository_migrator.rb +60 -0
- data/lib/fedora_migrate/rights_metadata.rb +281 -0
- data/lib/fedora_migrate/rubydora_connection.rb +21 -0
- data/lib/fedora_migrate/triple_converter.rb +39 -0
- data/lib/fedora_migrate/version.rb +3 -0
- data/lib/tasks/fedora-migrate.rake +45 -0
- data/spec/fixtures/datastreams/rdf_ntriples_datastream.txt +2 -0
- data/spec/fixtures/datastreams/sufia-rb68xc089-characterization.xml +27 -0
- data/spec/fixtures/objects/f3-migration-a.xml +110 -0
- data/spec/fixtures/objects/gf-versioned-content.xml +2776 -0
- data/spec/fixtures/objects/sufia-batch-gf-1.xml +94 -0
- data/spec/fixtures/objects/sufia-batch-gf-2.xml +93 -0
- data/spec/fixtures/objects/sufia-batch.xml +51 -0
- data/spec/integration/content_versions_spec.rb +42 -0
- data/spec/integration/fedora3_interface_spec.rb +23 -0
- data/spec/integration/object_migration_spec.rb +112 -0
- data/spec/integration/permission_migration_spec.rb +13 -0
- data/spec/integration/rdf_migration_spec.rb +22 -0
- data/spec/integration/relationship_migration_spec.rb +51 -0
- data/spec/integration/repository_migration_spec.rb +59 -0
- data/spec/spec_helper.rb +39 -0
- data/spec/support/example_model.rb +36 -0
- data/spec/unit/datastream_mover_spec.rb +39 -0
- data/spec/unit/fedora_migrate_spec.rb +19 -0
- data/spec/unit/file_configurator_spec.rb +17 -0
- data/spec/unit/mover_spec.rb +39 -0
- data/spec/unit/object_mover_spec.rb +38 -0
- data/spec/unit/permissions_mover_spec.rb +53 -0
- data/spec/unit/rdf_datastream_mover_spec.rb +8 -0
- data/spec/unit/rdf_datastream_parser_spec.rb +38 -0
- data/spec/unit/rels_ext_datastream_mover_spec.rb +36 -0
- data/spec/unit/repository_migrator_spec.rb +43 -0
- data/spec/unit/rubydora_connection_spec.rb +25 -0
- data/spec/unit/triple_converter_spec.rb +35 -0
- data/tasks/dev.rake +37 -0
- metadata +246 -0
@@ -0,0 +1,94 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<foxml:digitalObject VERSION="1.1" PID="sufia:rb68xc10b"
|
3
|
+
xmlns:foxml="info:fedora/fedora-system:def/foxml#"
|
4
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
5
|
+
xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
|
6
|
+
<foxml:objectProperties>
|
7
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
|
8
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE=""/>
|
9
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
|
10
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#createdDate" VALUE="2014-10-15T03:58:35.903Z"/>
|
11
|
+
<foxml:property NAME="info:fedora/fedora-system:def/view#lastModifiedDate" VALUE="2014-10-15T03:58:36.022Z"/>
|
12
|
+
</foxml:objectProperties>
|
13
|
+
<foxml:datastream ID="AUDIT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="false">
|
14
|
+
<foxml:datastreamVersion ID="AUDIT.0" LABEL="Audit Trail for this object" CREATED="2014-10-15T03:58:35.903Z" MIMETYPE="text/xml" FORMAT_URI="info:fedora/fedora-system:format/xml.fedora.audit">
|
15
|
+
<foxml:xmlContent>
|
16
|
+
<audit:auditTrail xmlns:audit="info:fedora/fedora-system:def/audit#">
|
17
|
+
<audit:record ID="AUDREC1">
|
18
|
+
<audit:process type="Fedora API-M"/>
|
19
|
+
<audit:action>addDatastream</audit:action>
|
20
|
+
<audit:componentID>RELS-EXT</audit:componentID>
|
21
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
22
|
+
<audit:date>2014-10-15T03:58:35.961Z</audit:date>
|
23
|
+
<audit:justification></audit:justification>
|
24
|
+
</audit:record>
|
25
|
+
<audit:record ID="AUDREC2">
|
26
|
+
<audit:process type="Fedora API-M"/>
|
27
|
+
<audit:action>addDatastream</audit:action>
|
28
|
+
<audit:componentID>rightsMetadata</audit:componentID>
|
29
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
30
|
+
<audit:date>2014-10-15T03:58:35.992Z</audit:date>
|
31
|
+
<audit:justification></audit:justification>
|
32
|
+
</audit:record>
|
33
|
+
<audit:record ID="AUDREC3">
|
34
|
+
<audit:process type="Fedora API-M"/>
|
35
|
+
<audit:action>addDatastream</audit:action>
|
36
|
+
<audit:componentID>properties</audit:componentID>
|
37
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
38
|
+
<audit:date>2014-10-15T03:58:36.022Z</audit:date>
|
39
|
+
<audit:justification></audit:justification>
|
40
|
+
</audit:record>
|
41
|
+
</audit:auditTrail>
|
42
|
+
</foxml:xmlContent>
|
43
|
+
</foxml:datastreamVersion>
|
44
|
+
</foxml:datastream>
|
45
|
+
<foxml:datastream ID="DC" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
46
|
+
<foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core Record for this object" CREATED="2014-10-15T03:58:35.903Z" MIMETYPE="text/xml" FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" SIZE="344">
|
47
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="a1926e6296956e32087f4af1d2d5e29d47a56864"/>
|
48
|
+
<foxml:xmlContent>
|
49
|
+
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
50
|
+
<dc:identifier>sufia:rb68xc10b</dc:identifier>
|
51
|
+
</oai_dc:dc>
|
52
|
+
</foxml:xmlContent>
|
53
|
+
</foxml:datastreamVersion>
|
54
|
+
</foxml:datastream>
|
55
|
+
<foxml:datastream ID="RELS-EXT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
56
|
+
<foxml:datastreamVersion ID="RELS-EXT.0" LABEL="Fedora Object-to-Object Relationship Metadata" CREATED="2014-10-15T03:58:35.961Z" MIMETYPE="application/rdf+xml" SIZE="428">
|
57
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="bd4482d2fb46dd5877a458fc9b1c86468b5721d5"/>
|
58
|
+
<foxml:xmlContent>
|
59
|
+
<rdf:RDF xmlns:ns0="info:fedora/fedora-system:def/relations-external#" xmlns:ns1="info:fedora/fedora-system:def/model#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
60
|
+
<rdf:Description rdf:about="info:fedora/sufia:rb68xc10b">
|
61
|
+
<ns1:hasModel rdf:resource="info:fedora/afmodel:GenericFile"></ns1:hasModel>
|
62
|
+
<ns0:isPartOf rdf:resource="info:fedora/sufia:rb68xc09k"></ns0:isPartOf>
|
63
|
+
</rdf:Description>
|
64
|
+
</rdf:RDF>
|
65
|
+
</foxml:xmlContent>
|
66
|
+
</foxml:datastreamVersion>
|
67
|
+
</foxml:datastream>
|
68
|
+
<foxml:datastream ID="rightsMetadata" STATE="A" CONTROL_GROUP="M" VERSIONABLE="true">
|
69
|
+
<foxml:datastreamVersion ID="rightsMetadata.0" LABEL="" CREATED="2014-10-15T03:58:35.992Z" MIMETYPE="text/xml" SIZE="555">
|
70
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="3ae82805357b4f8d627fc555cf970a22c211c846"/>
|
71
|
+
<foxml:binaryContent>
|
72
|
+
PHJpZ2h0c01ldGFkYXRhIHhtbG5zPSJodHRwOi8vaHlkcmEtY29sbGFiLnN0YW5mb3JkLmVkdS9zY2hl
|
73
|
+
bWFzL3JpZ2h0c01ldGFkYXRhL3YxIiB2ZXJzaW9uPSIwLjEiPgogIDxjb3B5cmlnaHQ+CiAgICA8aHVt
|
74
|
+
YW4gdHlwZT0idGl0bGUiLz4KICAgIDxodW1hbiB0eXBlPSJkZXNjcmlwdGlvbiIvPgogICAgPG1hY2hp
|
75
|
+
bmUgdHlwZT0idXJpIi8+CiAgPC9jb3B5cmlnaHQ+CiAgPGFjY2VzcyB0eXBlPSJkaXNjb3ZlciI+CiAg
|
76
|
+
ICA8aHVtYW4vPgogICAgPG1hY2hpbmUvPgogIDwvYWNjZXNzPgogIDxhY2Nlc3MgdHlwZT0icmVhZCI+
|
77
|
+
CiAgICA8aHVtYW4vPgogICAgPG1hY2hpbmUvPgogIDwvYWNjZXNzPgogIDxhY2Nlc3MgdHlwZT0iZWRp
|
78
|
+
dCI+CiAgICA8aHVtYW4vPgogICAgPG1hY2hpbmU+CiAgICAgIDxwZXJzb24+amlsbHVzZXJAZXhhbXBs
|
79
|
+
ZS5jb208L3BlcnNvbj4KICAgIDwvbWFjaGluZT4KICA8L2FjY2Vzcz4KICA8ZW1iYXJnbz4KICAgIDxt
|
80
|
+
YWNoaW5lLz4KICA8L2VtYmFyZ28+CiAgPGxlYXNlPgogICAgPG1hY2hpbmUvPgogIDwvbGVhc2U+Cjwv
|
81
|
+
cmlnaHRzTWV0YWRhdGE+
|
82
|
+
</foxml:binaryContent>
|
83
|
+
</foxml:datastreamVersion>
|
84
|
+
</foxml:datastream>
|
85
|
+
<foxml:datastream ID="properties" STATE="A" CONTROL_GROUP="M" VERSIONABLE="true">
|
86
|
+
<foxml:datastreamVersion ID="properties.0" LABEL="" CREATED="2014-10-15T03:58:36.022Z" MIMETYPE="text/xml" SIZE="64">
|
87
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="0d6b1b68c115ba892f3bd5055d335226d42a351c"/>
|
88
|
+
<foxml:binaryContent>
|
89
|
+
PGZpZWxkcz4KICA8ZGVwb3NpdG9yPmppbGx1c2VyQGV4YW1wbGUuY29tPC9kZXBvc2l0b3I+CjwvZmll
|
90
|
+
bGRzPg==
|
91
|
+
</foxml:binaryContent>
|
92
|
+
</foxml:datastreamVersion>
|
93
|
+
</foxml:datastream>
|
94
|
+
</foxml:digitalObject>
|
@@ -0,0 +1,93 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<foxml:digitalObject VERSION="1.1" PID="sufia:rb68xc11m"
|
3
|
+
xmlns:foxml="info:fedora/fedora-system:def/foxml#"
|
4
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
5
|
+
xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
|
6
|
+
<foxml:objectProperties>
|
7
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
|
8
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE=""/>
|
9
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
|
10
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#createdDate" VALUE="2014-10-15T03:58:36.410Z"/>
|
11
|
+
<foxml:property NAME="info:fedora/fedora-system:def/view#lastModifiedDate" VALUE="2014-10-15T03:58:36.524Z"/>
|
12
|
+
</foxml:objectProperties>
|
13
|
+
<foxml:datastream ID="AUDIT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="false">
|
14
|
+
<foxml:datastreamVersion ID="AUDIT.0" LABEL="Audit Trail for this object" CREATED="2014-10-15T03:58:36.410Z" MIMETYPE="text/xml" FORMAT_URI="info:fedora/fedora-system:format/xml.fedora.audit">
|
15
|
+
<foxml:xmlContent>
|
16
|
+
<audit:auditTrail xmlns:audit="info:fedora/fedora-system:def/audit#">
|
17
|
+
<audit:record ID="AUDREC1">
|
18
|
+
<audit:process type="Fedora API-M"/>
|
19
|
+
<audit:action>addDatastream</audit:action>
|
20
|
+
<audit:componentID>RELS-EXT</audit:componentID>
|
21
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
22
|
+
<audit:date>2014-10-15T03:58:36.465Z</audit:date>
|
23
|
+
<audit:justification></audit:justification>
|
24
|
+
</audit:record>
|
25
|
+
<audit:record ID="AUDREC2">
|
26
|
+
<audit:process type="Fedora API-M"/>
|
27
|
+
<audit:action>addDatastream</audit:action>
|
28
|
+
<audit:componentID>rightsMetadata</audit:componentID>
|
29
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
30
|
+
<audit:date>2014-10-15T03:58:36.496Z</audit:date>
|
31
|
+
<audit:justification></audit:justification>
|
32
|
+
</audit:record>
|
33
|
+
<audit:record ID="AUDREC3">
|
34
|
+
<audit:process type="Fedora API-M"/>
|
35
|
+
<audit:action>addDatastream</audit:action>
|
36
|
+
<audit:componentID>properties</audit:componentID>
|
37
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
38
|
+
<audit:date>2014-10-15T03:58:36.524Z</audit:date>
|
39
|
+
<audit:justification></audit:justification>
|
40
|
+
</audit:record>
|
41
|
+
</audit:auditTrail>
|
42
|
+
</foxml:xmlContent>
|
43
|
+
</foxml:datastreamVersion>
|
44
|
+
</foxml:datastream>
|
45
|
+
<foxml:datastream ID="DC" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
46
|
+
<foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core Record for this object" CREATED="2014-10-15T03:58:36.410Z" MIMETYPE="text/xml" FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" SIZE="344">
|
47
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="a9011e329a13aa8835a33178df1bf14d791bba6e"/>
|
48
|
+
<foxml:xmlContent>
|
49
|
+
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
50
|
+
<dc:identifier>sufia:rb68xc11m</dc:identifier>
|
51
|
+
</oai_dc:dc>
|
52
|
+
</foxml:xmlContent>
|
53
|
+
</foxml:datastreamVersion>
|
54
|
+
</foxml:datastream>
|
55
|
+
<foxml:datastream ID="RELS-EXT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
56
|
+
<foxml:datastreamVersion ID="RELS-EXT.0" LABEL="Fedora Object-to-Object Relationship Metadata" CREATED="2014-10-15T03:58:36.465Z" MIMETYPE="application/rdf+xml" SIZE="428">
|
57
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="592419e15e6daa523a7e290d80c8f21c7453d38b"/>
|
58
|
+
<foxml:xmlContent>
|
59
|
+
<rdf:RDF xmlns:ns0="info:fedora/fedora-system:def/relations-external#" xmlns:ns1="info:fedora/fedora-system:def/model#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
60
|
+
<rdf:Description rdf:about="info:fedora/sufia:rb68xc11m">
|
61
|
+
<ns1:hasModel rdf:resource="info:fedora/afmodel:GenericFile"></ns1:hasModel>
|
62
|
+
<ns0:isPartOf rdf:resource="info:fedora/sufia:rb68xc09k"></ns0:isPartOf>
|
63
|
+
</rdf:Description>
|
64
|
+
</rdf:RDF>
|
65
|
+
</foxml:xmlContent>
|
66
|
+
</foxml:datastreamVersion>
|
67
|
+
</foxml:datastream>
|
68
|
+
<foxml:datastream ID="rightsMetadata" STATE="A" CONTROL_GROUP="M" VERSIONABLE="true">
|
69
|
+
<foxml:datastreamVersion ID="rightsMetadata.0" LABEL="" CREATED="2014-10-15T03:58:36.496Z" MIMETYPE="text/xml" SIZE="544">
|
70
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="24ff894f6377e039c207ae172514c24f99814400"/>
|
71
|
+
<foxml:binaryContent>
|
72
|
+
PHJpZ2h0c01ldGFkYXRhIHhtbG5zPSJodHRwOi8vaHlkcmEtY29sbGFiLnN0YW5mb3JkLmVkdS9zY2hl
|
73
|
+
bWFzL3JpZ2h0c01ldGFkYXRhL3YxIiB2ZXJzaW9uPSIwLjEiPgogIDxjb3B5cmlnaHQ+CiAgICA8aHVt
|
74
|
+
YW4gdHlwZT0idGl0bGUiLz4KICAgIDxodW1hbiB0eXBlPSJkZXNjcmlwdGlvbiIvPgogICAgPG1hY2hp
|
75
|
+
bmUgdHlwZT0idXJpIi8+CiAgPC9jb3B5cmlnaHQ+CiAgPGFjY2VzcyB0eXBlPSJkaXNjb3ZlciI+CiAg
|
76
|
+
ICA8aHVtYW4vPgogICAgPG1hY2hpbmUvPgogIDwvYWNjZXNzPgogIDxhY2Nlc3MgdHlwZT0icmVhZCI+
|
77
|
+
CiAgICA8aHVtYW4vPgogICAgPG1hY2hpbmUvPgogIDwvYWNjZXNzPgogIDxhY2Nlc3MgdHlwZT0iZWRp
|
78
|
+
dCI+CiAgICA8aHVtYW4vPgogICAgPG1hY2hpbmU+CiAgICAgIDxwZXJzb24+b3RoZXJVc2VyPC9wZXJz
|
79
|
+
b24+CiAgICA8L21hY2hpbmU+CiAgPC9hY2Nlc3M+CiAgPGVtYmFyZ28+CiAgICA8bWFjaGluZS8+CiAg
|
80
|
+
PC9lbWJhcmdvPgogIDxsZWFzZT4KICAgIDxtYWNoaW5lLz4KICA8L2xlYXNlPgo8L3JpZ2h0c01ldGFk
|
81
|
+
YXRhPg==
|
82
|
+
</foxml:binaryContent>
|
83
|
+
</foxml:datastreamVersion>
|
84
|
+
</foxml:datastream>
|
85
|
+
<foxml:datastream ID="properties" STATE="A" CONTROL_GROUP="M" VERSIONABLE="true">
|
86
|
+
<foxml:datastreamVersion ID="properties.0" LABEL="" CREATED="2014-10-15T03:58:36.524Z" MIMETYPE="text/xml" SIZE="53">
|
87
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="9ceaa7d066cb62242c1e7369c9118100cade5613"/>
|
88
|
+
<foxml:binaryContent>
|
89
|
+
PGZpZWxkcz4KICA8ZGVwb3NpdG9yPm90aGVyVXNlcjwvZGVwb3NpdG9yPgo8L2ZpZWxkcz4=
|
90
|
+
</foxml:binaryContent>
|
91
|
+
</foxml:datastreamVersion>
|
92
|
+
</foxml:datastream>
|
93
|
+
</foxml:digitalObject>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<foxml:digitalObject VERSION="1.1" PID="sufia:rb68xc09k"
|
3
|
+
xmlns:foxml="info:fedora/fedora-system:def/foxml#"
|
4
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
5
|
+
xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
|
6
|
+
<foxml:objectProperties>
|
7
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
|
8
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE=""/>
|
9
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
|
10
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#createdDate" VALUE="2014-10-15T03:58:35.251Z"/>
|
11
|
+
<foxml:property NAME="info:fedora/fedora-system:def/view#lastModifiedDate" VALUE="2014-10-15T03:58:35.308Z"/>
|
12
|
+
</foxml:objectProperties>
|
13
|
+
<foxml:datastream ID="AUDIT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="false">
|
14
|
+
<foxml:datastreamVersion ID="AUDIT.0" LABEL="Audit Trail for this object" CREATED="2014-10-15T03:58:35.251Z" MIMETYPE="text/xml" FORMAT_URI="info:fedora/fedora-system:format/xml.fedora.audit">
|
15
|
+
<foxml:xmlContent>
|
16
|
+
<audit:auditTrail xmlns:audit="info:fedora/fedora-system:def/audit#">
|
17
|
+
<audit:record ID="AUDREC1">
|
18
|
+
<audit:process type="Fedora API-M"/>
|
19
|
+
<audit:action>addDatastream</audit:action>
|
20
|
+
<audit:componentID>RELS-EXT</audit:componentID>
|
21
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
22
|
+
<audit:date>2014-10-15T03:58:35.308Z</audit:date>
|
23
|
+
<audit:justification></audit:justification>
|
24
|
+
</audit:record>
|
25
|
+
</audit:auditTrail>
|
26
|
+
</foxml:xmlContent>
|
27
|
+
</foxml:datastreamVersion>
|
28
|
+
</foxml:datastream>
|
29
|
+
<foxml:datastream ID="DC" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
30
|
+
<foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core Record for this object" CREATED="2014-10-15T03:58:35.251Z" MIMETYPE="text/xml" FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" SIZE="344">
|
31
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="6ca3ba63cd8be297135bb8ec0116c211ca1b5de8"/>
|
32
|
+
<foxml:xmlContent>
|
33
|
+
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
34
|
+
<dc:identifier>sufia:rb68xc09k</dc:identifier>
|
35
|
+
</oai_dc:dc>
|
36
|
+
</foxml:xmlContent>
|
37
|
+
</foxml:datastreamVersion>
|
38
|
+
</foxml:datastream>
|
39
|
+
<foxml:datastream ID="RELS-EXT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
40
|
+
<foxml:datastreamVersion ID="RELS-EXT.0" LABEL="Fedora Object-to-Object Relationship Metadata" CREATED="2014-10-15T03:58:35.308Z" MIMETYPE="application/rdf+xml" SIZE="283">
|
41
|
+
<foxml:contentDigest TYPE="SHA-1" DIGEST="6d2aaa4201889afeb689f43192ba78e88b622668"/>
|
42
|
+
<foxml:xmlContent>
|
43
|
+
<rdf:RDF xmlns:ns0="info:fedora/fedora-system:def/model#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
44
|
+
<rdf:Description rdf:about="info:fedora/sufia:rb68xc09k">
|
45
|
+
<ns0:hasModel rdf:resource="info:fedora/afmodel:Batch"></ns0:hasModel>
|
46
|
+
</rdf:Description>
|
47
|
+
</rdf:RDF>
|
48
|
+
</foxml:xmlContent>
|
49
|
+
</foxml:datastreamVersion>
|
50
|
+
</foxml:datastream>
|
51
|
+
</foxml:digitalObject>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Versioned content" do
|
4
|
+
|
5
|
+
let(:mover) do
|
6
|
+
FedoraMigrate::DatastreamMover.new(
|
7
|
+
FedoraMigrate.source.connection.find("sufia:rb68xc089").datastreams["content"],
|
8
|
+
ExampleModel::VersionedContent.create.attached_files["content"]
|
9
|
+
)
|
10
|
+
end
|
11
|
+
|
12
|
+
context "with migrating versions" do
|
13
|
+
subject do
|
14
|
+
mover.migrate
|
15
|
+
mover.target
|
16
|
+
end
|
17
|
+
it "should migrate all versions" do
|
18
|
+
expect(subject.versions.all.count).to eql 3
|
19
|
+
end
|
20
|
+
it "should preserve metadata" do
|
21
|
+
expect(subject.mime_type).to eql "image/png"
|
22
|
+
expect(subject.original_name).to eql "world.png"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "without migrating versions" do
|
27
|
+
subject do
|
28
|
+
mover.versionable = false
|
29
|
+
mover.migrate
|
30
|
+
mover.target
|
31
|
+
end
|
32
|
+
it "should migrate only the most recent version" do
|
33
|
+
expect(subject.versions.count).to eql 0
|
34
|
+
expect(subject.content).to_not be_nil
|
35
|
+
end
|
36
|
+
it "should preserve metadata" do
|
37
|
+
expect(subject.mime_type).to eql "image/png"
|
38
|
+
expect(subject.original_name).to eql "world.png"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "The interface to Fedora3" do
|
4
|
+
|
5
|
+
context "with an object's datastreams" do
|
6
|
+
|
7
|
+
subject { FedoraMigrate.source.connection.find("sufia:rb68xc089") }
|
8
|
+
|
9
|
+
it "should load them" do
|
10
|
+
expect(subject.datastreams.count).to eql 8
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should see thier names" do
|
14
|
+
expect(subject.datastreams.keys).to include("content")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return their content" do
|
18
|
+
expect(subject.datastreams["content"].content).to_not be_nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Migrating an object" do
|
4
|
+
|
5
|
+
let(:source) { FedoraMigrate.source.connection.find("sufia:rb68xc089") }
|
6
|
+
let(:fits_xml) { load_fixture("sufia-rb68xc089-characterization.xml").read }
|
7
|
+
|
8
|
+
context "when the target model is provided" do
|
9
|
+
|
10
|
+
let(:mover) { FedoraMigrate::ObjectMover.new source, ExampleModel::MigrationObject.new }
|
11
|
+
|
12
|
+
subject do
|
13
|
+
mover.migrate
|
14
|
+
mover.target
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should migrate the entire object" do
|
18
|
+
expect(subject.content.versions.all.count).to eql 3
|
19
|
+
expect(subject.thumbnail.mime_type).to eql "image/jpeg"
|
20
|
+
expect(subject.thumbnail.versions.all.count).to eql 0
|
21
|
+
expect(subject.characterization.content).to be_equivalent_to(fits_xml)
|
22
|
+
expect(subject.characterization.versions.all.count).to eql 0
|
23
|
+
expect(subject).to be_kind_of ExampleModel::MigrationObject
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should migrate the object's permissions" do
|
27
|
+
expect(subject.edit_users).to include("jilluser@example.com")
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
context "when we have to determine the model" do
|
33
|
+
|
34
|
+
let(:mover) { FedoraMigrate::ObjectMover.new source }
|
35
|
+
|
36
|
+
context "and it is defined" do
|
37
|
+
|
38
|
+
before do
|
39
|
+
Object.send(:remove_const, :GenericFile) if defined?(GenericFile)
|
40
|
+
class GenericFile < ActiveFedora::Base
|
41
|
+
contains "content", class_name: "ExampleModel::VersionedDatastream"
|
42
|
+
contains "thumbnail", class_name: "ActiveFedora::Datastream"
|
43
|
+
contains "characterization", class_name: "ActiveFedora::Datastream"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
subject do
|
48
|
+
mover.migrate
|
49
|
+
mover.target
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should migrate the entire object" do
|
53
|
+
expect(subject.content.versions.all.count).to eql 3
|
54
|
+
expect(subject.thumbnail.mime_type).to eql "image/jpeg"
|
55
|
+
expect(subject.thumbnail.versions.all.count).to eql 0
|
56
|
+
expect(subject.characterization.content).to be_equivalent_to(fits_xml)
|
57
|
+
expect(subject.characterization.versions.all.count).to eql 0
|
58
|
+
expect(subject).to be_kind_of GenericFile
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "and it is not defined" do
|
63
|
+
before do
|
64
|
+
Object.send(:remove_const, :GenericFile) if defined?(GenericFile)
|
65
|
+
end
|
66
|
+
it "should fail" do
|
67
|
+
expect{mover.migrate}.to raise_error(NameError)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
context "when the object has an ntriples datastream" do
|
74
|
+
|
75
|
+
context "and we want to convert it to a provided model" do
|
76
|
+
let(:mover) { FedoraMigrate::ObjectMover.new(source, ExampleModel::RDFObject.new, {convert: "descMetadata"}) }
|
77
|
+
|
78
|
+
subject do
|
79
|
+
mover.migrate
|
80
|
+
mover.target
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should migrate the entire object" do
|
84
|
+
expect(subject.content.versions.all.count).to eql 3
|
85
|
+
expect(subject.thumbnail.mime_type).to eql "image/jpeg"
|
86
|
+
expect(subject.thumbnail.versions.all.count).to eql 0
|
87
|
+
expect(subject.characterization.content).to be_equivalent_to(fits_xml)
|
88
|
+
expect(subject.characterization.versions.all.count).to eql 0
|
89
|
+
expect(subject).to be_kind_of ExampleModel::RDFObject
|
90
|
+
expect(subject.title).to eql(["world.png"])
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
context "and we want to convert multiple datastreas" do
|
96
|
+
|
97
|
+
# Need a fixture with two different datastreams for this test to be more effective
|
98
|
+
let(:mover) { FedoraMigrate::ObjectMover.new(source, ExampleModel::RDFObject.new, {convert: ["descMetadata", "descMetadata"]}) }
|
99
|
+
|
100
|
+
subject do
|
101
|
+
mover.migrate
|
102
|
+
mover.target
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should migrate all the datastreams" do
|
106
|
+
expect(subject.title).to eql(["world.png"])
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Migrating permisisons" do
|
4
|
+
|
5
|
+
let(:source) { FedoraMigrate.source.connection.find("sufia:rb68xc089") }
|
6
|
+
|
7
|
+
subject { FedoraMigrate::PermissionsMover.new(source.datastreams["rightsMetadata"], ExampleModel::MigrationObject.new)}
|
8
|
+
|
9
|
+
it "should display the permissions from the source datastream" do
|
10
|
+
expect(subject.edit_users).to include("jilluser@example.com")
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Mirating RDF terms" do
|
4
|
+
|
5
|
+
let(:mover) do
|
6
|
+
FedoraMigrate::RDFDatastreamMover.new(
|
7
|
+
FedoraMigrate.source.connection.find("sufia:xp68km39w").datastreams["descMetadata"],
|
8
|
+
ExampleModel::RDFProperties.new
|
9
|
+
)
|
10
|
+
end
|
11
|
+
|
12
|
+
subject do
|
13
|
+
mover.migrate
|
14
|
+
mover.target
|
15
|
+
end
|
16
|
+
|
17
|
+
it "adds each triple to a new Fedora4 resource" do
|
18
|
+
expect(subject.title.first).to eql "Sample Migration Object A"
|
19
|
+
expect(subject.creator.first).to eql "Adam Wead"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|