dspace: capture publisher from CrossRef live import

Publisher is a required field on CrossRef so we can always rely on
capturing this information when doing a live import.

See: https://github.com/CrossRef/rest-api-doc/blob/master/api_format.md
This commit is contained in:
Alan Orth
2023-05-25 14:52:11 +03:00
parent 6013c41184
commit a38ff42169
2 changed files with 16 additions and 1 deletions

View File

@@ -153,6 +153,8 @@ public class CrossRefImportMetadataSourceServiceIT extends AbstractLiveImportInt
MetadatumDTO issn = createMetadatumDTO("dc", "identifier", "issn", "2415-3060");
MetadatumDTO volume = createMetadatumDTO("oaire", "citation", "volume", "1");
MetadatumDTO issue = createMetadatumDTO("oaire", "citation", "issue", "2");
MetadatumDTO publisher = createMetadatumDTO("dc", "publisher", null,
"Petro Mohyla Black Sea National University");
metadatums.add(title);
metadatums.add(author);
@@ -163,6 +165,7 @@ public class CrossRefImportMetadataSourceServiceIT extends AbstractLiveImportInt
metadatums.add(issn);
metadatums.add(volume);
metadatums.add(issue);
metadatums.add(publisher);
ImportRecord firstrRecord = new ImportRecord(metadatums);
@@ -179,6 +182,8 @@ public class CrossRefImportMetadataSourceServiceIT extends AbstractLiveImportInt
MetadatumDTO issn2 = createMetadatumDTO("dc", "identifier", "issn", "2415-3060");
MetadatumDTO volume2 = createMetadatumDTO("oaire", "citation", "volume", "1");
MetadatumDTO issue2 = createMetadatumDTO("oaire", "citation", "issue", "2");
MetadatumDTO publisher2 = createMetadatumDTO("dc", "publisher", null,
"Petro Mohyla Black Sea National University");
metadatums2.add(title2);
metadatums2.add(author2);
@@ -189,6 +194,7 @@ public class CrossRefImportMetadataSourceServiceIT extends AbstractLiveImportInt
metadatums2.add(issn2);
metadatums2.add(volume2);
metadatums2.add(issue2);
metadatums2.add(publisher2);
ImportRecord secondRecord = new ImportRecord(metadatums2);
records.add(firstrRecord);
@@ -196,4 +202,4 @@ public class CrossRefImportMetadataSourceServiceIT extends AbstractLiveImportInt
return records;
}
}
}

View File

@@ -30,6 +30,7 @@
<entry key-ref="crossref.volume" value-ref="crossrefVolume" />
<entry key-ref="crossref.issue" value-ref="crossrefIssue" />
<entry key-ref="crossref.abstract" value-ref="crossrefAbstract" />
<entry key-ref="crossref.publisher" value-ref="crossrefPublisher" />
</util:map>
<bean id="crossrefIDContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleJsonPathMetadataContributor">
@@ -137,6 +138,14 @@
<constructor-arg value="dc.description.abstract"/>
</bean>
<bean id="crossrefPublisher" class="org.dspace.importer.external.metadatamapping.contributor.SimpleJsonPathMetadataContributor">
<property name="field" ref="crossref.publisher"/>
<property name="query" value="/publisher"/>
</bean>
<bean id="crossref.publisher" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.publisher"/>
</bean>
<bean class="java.lang.Integer" id="maxRetry">
<constructor-arg value="3"/>
</bean>