[CST-5303] refactored scopus live import integration

This commit is contained in:
Mykhaylo
2022-06-08 17:29:51 +02:00
parent 84a51fac2a
commit 8ffb4dd6c6
3 changed files with 26 additions and 113 deletions

View File

@@ -115,6 +115,7 @@ public class AuthorMetadataContributor extends SimpleXpathMetadatumContributor {
metadata.setElement(metadaConfig.getElement());
metadata.setQualifier(metadaConfig.getQualifier());
metadata.setSchema(metadaConfig.getSchema());
metadata.setValue(value);
return metadata;
}

View File

@@ -125,30 +125,25 @@ public class ScopusImportMetadataSourceServiceIT extends AbstractLiveImportInteg
ArrayList<ImportRecord> records = new ArrayList<>();
//define first record
List<MetadatumDTO> metadatums = new ArrayList<MetadatumDTO>();
MetadatumDTO doi = createMetadatumDTO("dc", "identifier", "doi", "10.3934/mine.2023004");
MetadatumDTO doi = createMetadatumDTO("dc", "identifier", null, "10.3934/mine.2023004");
MetadatumDTO title = createMetadatumDTO("dc","title", null,
"Hardy potential versus lower order terms in Dirichlet problems: regularizing effects<sup>†</sup>");
MetadatumDTO type = createMetadatumDTO("dc", "type", null, "Journal");
MetadatumDTO date = createMetadatumDTO("dc", "date", "issued", "2023-01-01");
MetadatumDTO scopusId = createMetadatumDTO("dc", "identifier", "other", "2-s2.0-85124241875");
MetadatumDTO citationVolume = createMetadatumDTO("oaire", "citation", "volume", "5");
MetadatumDTO citationIssue = createMetadatumDTO("oaire", "citation", "issue", "1");
MetadatumDTO scopusId = createMetadatumDTO("dc", "identifier", "scopus", "2-s2.0-85124241875");
MetadatumDTO funding = createMetadatumDTO("dc", "relation", "funding", "Junta de Andalucía");
MetadatumDTO grantno = createMetadatumDTO("dc", "relation", "grantno", "PGC2018-096422-B-I00");
MetadatumDTO subject = createMetadatumDTO("dc", "subject", null,
"Hardy potentials | Laplace equation | Summability of solutions");
MetadatumDTO author = createMetadatumDTO("dc", "contributor", "author", "Arcoya D.");
MetadatumDTO scopusAuthorId = createMetadatumDTO("person", "identifier", "scopus-author-id", "6602330574");
MetadatumDTO orcid = createMetadatumDTO("person", "identifier", "orcid", "#PLACEHOLDER_PARENT_METADATA_VALUE#");
MetadatumDTO orgunit = createMetadatumDTO("oairecerif", "affiliation", "orgunit", "Universidad de Granada");
MetadatumDTO orgunit = createMetadatumDTO("person", "affiliation", "name", "Universidad de Granada");
MetadatumDTO author2 = createMetadatumDTO("dc", "contributor", "author", "Boccardo L.");
MetadatumDTO scopusAuthorId2 = createMetadatumDTO("person", "identifier", "scopus-author-id", "7003612261");
MetadatumDTO orcid2 = createMetadatumDTO("person", "identifier", "orcid","#PLACEHOLDER_PARENT_METADATA_VALUE#");
MetadatumDTO orgunit2 = createMetadatumDTO("oairecerif", "affiliation","orgunit","Sapienza Università di Roma");
MetadatumDTO orgunit2 = createMetadatumDTO("person", "affiliation", "name","Sapienza Università di Roma");
MetadatumDTO author3 = createMetadatumDTO("dc", "contributor", "author", "Orsina L.");
MetadatumDTO scopusAuthorId3 = createMetadatumDTO("person", "identifier", "scopus-author-id", "6602595438");
MetadatumDTO orcid3 = createMetadatumDTO("person", "identifier", "orcid","#PLACEHOLDER_PARENT_METADATA_VALUE#");
MetadatumDTO orgunit3 = createMetadatumDTO("oairecerif", "affiliation","orgunit","Sapienza Università di Roma");
MetadatumDTO orgunit3 = createMetadatumDTO("person", "affiliation", "name","Sapienza Università di Roma");
MetadatumDTO rights = createMetadatumDTO("dc", "rights", null, "open access");
MetadatumDTO ispartof = createMetadatumDTO("dc", "relation", "ispartof", "Mathematics In Engineering");
MetadatumDTO ispartofseries = createMetadatumDTO("dc","relation","ispartofseries","Mathematics In Engineering");
@@ -157,23 +152,18 @@ public class ScopusImportMetadataSourceServiceIT extends AbstractLiveImportInteg
metadatums.add(title);
metadatums.add(type);
metadatums.add(date);
metadatums.add(scopusId);
metadatums.add(citationVolume);
metadatums.add(citationIssue);
metadatums.add(scopusId);
metadatums.add(funding);
metadatums.add(grantno);
metadatums.add(subject);
metadatums.add(author);
metadatums.add(scopusAuthorId);
metadatums.add(orgunit);
metadatums.add(orcid);
metadatums.add(author2);
metadatums.add(scopusAuthorId2);
metadatums.add(orcid2);
metadatums.add(orgunit2);
metadatums.add(author3);
metadatums.add(scopusAuthorId3);
metadatums.add(orcid3);
metadatums.add(orgunit3);
metadatums.add(rights);
metadatums.add(ispartof);
@@ -182,62 +172,53 @@ public class ScopusImportMetadataSourceServiceIT extends AbstractLiveImportInteg
//define second record
List<MetadatumDTO> metadatums2 = new ArrayList<MetadatumDTO>();
MetadatumDTO doi2 = createMetadatumDTO("dc", "identifier", "doi", "10.3934/mine.2023001");
MetadatumDTO doi2 = createMetadatumDTO("dc", "identifier", null, "10.3934/mine.2023001");
MetadatumDTO title2 = createMetadatumDTO("dc","title", null,
"Large deviations for a binary collision model: energy evaporation<sup>†</sup>");
MetadatumDTO date2 = createMetadatumDTO("dc", "date", "issued", "2023-01-01");
MetadatumDTO scopusId2 = createMetadatumDTO("dc", "identifier", "other", "2-s2.0-85124226483");
MetadatumDTO type2 = createMetadatumDTO("dc", "type", null, "Journal");
MetadatumDTO citationVolume2 = createMetadatumDTO("oaire", "citation", "volume", "5");
MetadatumDTO citationIssue2 = createMetadatumDTO("oaire", "citation", "issue", "1");
MetadatumDTO scopusId2 = createMetadatumDTO("dc", "identifier", "scopus", "2-s2.0-85124226483");
MetadatumDTO grantno2 = createMetadatumDTO("dc", "relation", "grantno", "undefined");
MetadatumDTO subject2 = createMetadatumDTO("dc", "subject", null,
"Boltzmann equation | Discrete energy model | Kac model | Large deviations | Violation of energy conservation");
MetadatumDTO author4 = createMetadatumDTO("dc", "contributor", "author", "Basile G.");
MetadatumDTO scopusAuthorId4 = createMetadatumDTO("person", "identifier", "scopus-author-id", "55613229065");
MetadatumDTO orcid4 = createMetadatumDTO("person", "identifier", "orcid","#PLACEHOLDER_PARENT_METADATA_VALUE#");
MetadatumDTO orgunit4 = createMetadatumDTO("oairecerif", "affiliation","orgunit","Sapienza Università di Roma");
MetadatumDTO orgunit4 = createMetadatumDTO("person", "affiliation", "name","Sapienza Università di Roma");
MetadatumDTO author5 = createMetadatumDTO("dc", "contributor", "author", "Benedetto D.");
MetadatumDTO scopusAuthorId5 = createMetadatumDTO("person", "identifier", "scopus-author-id", "55893665100");
MetadatumDTO orcid5 = createMetadatumDTO("person", "identifier", "orcid","#PLACEHOLDER_PARENT_METADATA_VALUE#");
MetadatumDTO orgunit5 = createMetadatumDTO("oairecerif", "affiliation","orgunit","Sapienza Università di Roma");
MetadatumDTO orgunit5 = createMetadatumDTO("person", "affiliation", "name","Sapienza Università di Roma");
MetadatumDTO author6 = createMetadatumDTO("dc", "contributor", "author", "Caglioti E.");
MetadatumDTO scopusAuthorId6 = createMetadatumDTO("person", "identifier", "scopus-author-id", "7004588675");
MetadatumDTO orcid6 = createMetadatumDTO("person", "identifier", "orcid","#PLACEHOLDER_PARENT_METADATA_VALUE#");
MetadatumDTO orgunit6 = createMetadatumDTO("oairecerif", "affiliation","orgunit","Sapienza Università di Roma");
MetadatumDTO orgunit6 = createMetadatumDTO("person", "affiliation", "name","Sapienza Università di Roma");
MetadatumDTO author7 = createMetadatumDTO("dc", "contributor", "author", "Bertini L.");
MetadatumDTO scopusAuthorId7 = createMetadatumDTO("person", "identifier", "scopus-author-id", "7005555198");
MetadatumDTO orcid7 = createMetadatumDTO("person", "identifier", "orcid","#PLACEHOLDER_PARENT_METADATA_VALUE#");
MetadatumDTO orgunit7 = createMetadatumDTO("oairecerif", "affiliation","orgunit","Sapienza Università di Roma");
MetadatumDTO orgunit7 = createMetadatumDTO("person", "affiliation", "name","Sapienza Università di Roma");
MetadatumDTO rights2 = createMetadatumDTO("dc", "rights", null, "open access");
MetadatumDTO ispartof2 = createMetadatumDTO("dc", "relation", "ispartof", "Mathematics In Engineering");
MetadatumDTO ispartofseries2 = createMetadatumDTO("dc", "relation", "ispartofseries",
"Mathematics In Engineering");
metadatums2.add(title2);
metadatums2.add(doi2);
metadatums2.add(date2);
metadatums2.add(title2);
metadatums2.add(type2);
metadatums2.add(date2);
metadatums2.add(scopusId2);
metadatums2.add(citationVolume2);
metadatums2.add(citationIssue2);
metadatums2.add(scopusId2);
metadatums2.add(grantno2);
metadatums2.add(subject2);
metadatums2.add(author4);
metadatums2.add(scopusAuthorId4);
metadatums2.add(orcid4);
metadatums2.add(orgunit4);
metadatums2.add(author5);
metadatums2.add(scopusAuthorId5);
metadatums2.add(orcid5);
metadatums2.add(orgunit5);
metadatums2.add(author6);
metadatums2.add(scopusAuthorId6);
metadatums2.add(orcid6);
metadatums2.add(orgunit6);
metadatums2.add(author7);
metadatums2.add(scopusAuthorId7);
metadatums2.add(orcid7);
metadatums2.add(orgunit7);
metadatums2.add(rights2);
metadatums2.add(ispartof2);

View File

@@ -20,40 +20,23 @@
<entry key-ref="scopus.doi" value-ref="scopusDoiContrib"/>
<entry key-ref="scopus.title" value-ref="scopusTitleContrib"/>
<entry key-ref="scopus.type" value-ref="scopusTypeContrib"/>
<!-- <entry key-ref="scopus.source" value-ref="scopusSourceContrib"/> -->
<entry key-ref="scopus.isbn" value-ref="scopusIsbnContrib"/>
<entry key-ref="scopus.issn" value-ref="scopusIssnContrib"/>
<entry key-ref="scopus.date" value-ref="scopusDateContrib"/>
<!-- <entry key-ref="scopus.abstract" value-ref="scopusAbstractContrib"/> -->
<!-- <entry key-ref="scopus.author" value-ref="scopusAuthorsContrib"/> -->
<!-- <entry key-ref="scopus.identifier" value-ref="scopusIdentifierContrib"/> -->
<entry key-ref="scopus.pubmed" value-ref="scopusPubmedContrib"/>
<entry key-ref="scopus.eid" value-ref="scopusEidContrib"/>
<entry key-ref="scopus.volume" value-ref="scopusVolumeContrib"/>
<entry key-ref="scopus.issueIdentifier" value-ref="scopusIssueIdentifierContrib"/>
<entry key-ref="scopus.eid" value-ref="scopusEidContrib"/>
<entry key-ref="scopus.fundSponsor" value-ref="scopusFundSponsorContrib"/>
<entry key-ref="scopus.fundNo" value-ref="scopusFundNoContrib"/>
<entry key-ref="scopus.authkeywords" value-ref="scopusAuthkeywordsContrib"/>
<entry key-ref="scopus.articleNumber" value-ref="scopusArticleNumberContrib"/>
<entry key-ref="scopus.authkeywords" value-ref="scopusAuthkeywordsContrib"/>
<entry key-ref="scopus.creator" value-ref="scopusCreatorContrib"/>
<entry key-ref="scopus.openaccessFlag" value-ref="scopusOpenaccessFlagContrib"/>
<entry key-ref="scopus.pageRange" value-ref="scopusPageRangeContrib"/>
<entry key-ref="scopus.ispartof" value-ref="scopusIspartofContrib"/>
<entry key-ref="scopus.ispartofseries" value-ref="scopusIspartofseriesContrib"/>
<entry key-ref="scopus.authname" value-ref="scopusAuthorMetadataContrib"/>
<!-- <entry key-ref="scopus.source" value-ref="scopusSourceContrib"/> -->
<!-- <entry key-ref="scopus.abstract" value-ref="scopusAbstractContrib"/> -->
<!-- <entry key-ref="scopus.author" value-ref="scopusAuthorsContrib"/> -->
</util:map>
<bean id="scopusIdentifierContrib" class="org.dspace.importer.external.metadatamapping.contributor.ReplaceCharacterXPathMetadataContributor">
<property name="field" ref="scopus.identifier"/>
<property name="query" value="prism:doi"/>
<property name="characterToBeReplaced" value="47" />
<property name="characterToReplaceWith" value="1" />
<property name="prefixToNamespaceMapping" ref="scopusPrism"/>
</bean>
<bean id="scopus.identifier" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.identifier.other"/>
</bean>
<bean id="scopusOpenaccessFlagContrib" class="org.dspace.importer.external.metadatamapping.contributor.ReplaceFieldXPathMetadataContributor">
<property name="field" ref="scopus.openaccessFlag"/>
<property name="query" value="openaccessFlag"/>
@@ -99,7 +82,7 @@
<property name="prefixToNamespaceMapping" ref="scopusPrism"/>
</bean>
<bean id="scopus.issn" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.relation.issn"/>
<constructor-arg value="dc.identifier.issn"/>
</bean>
<bean id="scopusIsbnContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
@@ -146,19 +129,8 @@
<property name="query" value="prism:doi"/>
<property name="prefixToNamespaceMapping" ref="scopusPrism"/>
</bean>
<bean id="scopus.doi" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.identifier.doi"/>
</bean>
<bean id="scopusPubmedContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="scopus.pubmed"/>
<property name="query" value="ns:pubmed-id"/>
<property name="prefixToNamespaceMapping" ref="scopusNs"/>
</bean>
<bean id="scopus.pubmed" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.identifier.pmid"/>
<constructor-arg value="dc.identifier"/>
</bean>
<bean id="scopusVolumeContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
@@ -188,27 +160,7 @@
</bean>
<bean id="scopus.eid" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.identifier.scopus"/>
</bean>
<bean id="scopusFundSponsorContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="scopus.fundSponsor"/>
<property name="query" value="ns:fund-sponsor"/>
<property name="prefixToNamespaceMapping" ref="scopusNs"/>
</bean>
<bean id="scopus.fundSponsor" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.relation.funding"/>
</bean>
<bean id="scopusFundNoContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="scopus.fundNo"/>
<property name="query" value="ns:fund-no"/>
<property name="prefixToNamespaceMapping" ref="scopusNs"/>
</bean>
<bean id="scopus.fundNo" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.relation.grantno"/>
<constructor-arg value="dc.identifier.other"/>
</bean>
<bean id="scopusAuthkeywordsContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
@@ -221,16 +173,6 @@
<constructor-arg value="dc.subject"/>
</bean>
<bean id="scopusArticleNumberContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="scopus.articleNumber"/>
<property name="query" value="ns:article-number"/>
<property name="prefixToNamespaceMapping" ref="scopusNs"/>
</bean>
<bean id="scopus.articleNumber" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.citation.number"/>
</bean>
<bean id="scopusCreatorContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="scopus.creator"/>
<property name="query" value="dc:creator"/>
@@ -241,17 +183,6 @@
<constructor-arg value="dc.contributor.author"/>
</bean>
<bean id="scopusPageRangeContrib" class="org.dspace.importer.external.metadatamapping.contributor.PageRangeXPathMetadataContributor">
<property name="field" ref="scopus.pageRange"/>
<property name="query" value="pageRange"/>
<property name="prefixToNamespaceMapping" ref="scopusPrism"/>
<property name="startPageMetadata" ref="scopus.startPage"/>
<property name="endPageMetadata" ref="scopus.endPage"/>
</bean>
<bean id="scopus.pageRange" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oaire.citation.pages"/>
</bean>
<bean id="scopus.startPage" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oaire.citation.startPage"/>
</bean>
@@ -303,7 +234,7 @@
</bean>
<bean id="scopus.affiliation" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.affiliation.orgunit"/>
<constructor-arg value="person.affiliation.name"/>
</bean>
<util:map id="scopusAtom" map-class="java.util.HashMap"