Skip to content

Commit

Permalink
118436: Update live import mapping for additional import sources
Browse files Browse the repository at this point in the history
  • Loading branch information
YanaDePauw committed Oct 1, 2024
1 parent 9bb720c commit 9149133
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 212 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
package org.dspace.importer.external.openaire.metadatamapping;

import java.util.Map;
import java.util.List;

import jakarta.annotation.Resource;
import org.dspace.importer.external.metadatamapping.AbstractMetadataFieldMapping;
Expand All @@ -23,7 +23,7 @@ public class OpenAIREPublicationFieldMapping extends AbstractMetadataFieldMappin

@Override
@Resource(name = "openairePublicationsMetadataFieldMap")
public void setMetadataFieldMap(Map metadataFieldMap) {
public void setMetadataFieldMap(List metadataFieldMap) {
super.setMetadataFieldMap(metadataFieldMap);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
package org.dspace.importer.external.ror.service;

import java.util.Map;
import java.util.List;

import jakarta.annotation.Resource;
import org.dspace.importer.external.metadatamapping.AbstractMetadataFieldMapping;
Expand All @@ -31,7 +31,7 @@ public class RorFieldMapping extends AbstractMetadataFieldMapping {
*/
@Override
@Resource(name = "rorMetadataFieldMap")
public void setMetadataFieldMap(Map metadataFieldMap) {
public void setMetadataFieldMap(List metadataFieldMap) {
super.setMetadataFieldMap(metadataFieldMap);
}

Expand Down
36 changes: 36 additions & 0 deletions dspace/config/spring/api/live-import-metadata-field-config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -147,4 +147,40 @@
<constructor-arg value="person.identifier.rid"/>
</bean>

<bean id="organization.legalName" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.legalName"/>
</bean>

<bean id="organization.identifier.ror" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.identifier.ror"/>
</bean>

<bean id="organization.alternateName" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.alternateName"/>
</bean>

<bean id="organization.url" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.url"/>
</bean>

<bean id="organization.address.addressCountry" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.address.addressCountry"/>
</bean>

<bean id="organization.foundingDate" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.foundingDate"/>
</bean>

<bean id="organization.identifier.crossrefid" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.identifier.crossrefid"/>
</bean>

<bean id="organization.identifier.isni" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.identifier.isni"/>
</bean>

<bean id="organization.parentOrganization" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="organization.parentOrganization"/>
</bean>

</beans>
176 changes: 21 additions & 155 deletions dspace/config/spring/api/openaire-integration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,98 +11,71 @@
<context:annotation-config/>
<!-- allows us to use spring annotations in beans -->

<util:map id="openairePublicationsMetadataFieldMap" key-type="org.dspace.importer.external.metadatamapping.MetadataFieldConfig"
<util:list id="openairePublicationsMetadataFieldMap"
value-type="org.dspace.importer.external.metadatamapping.contributor.MetadataContributor">
<description>Defines which metadatum is mapped on which metadatum. Note that while the key must be unique it
only matters here for postprocessing of the value. The mapped MetadatumContributor has full control over
what metadatafield is generated.
</description>
<entry key-ref="openaire.title" value-ref="openaireTitleContrib"/>
<entry key-ref="openaire.summary" value-ref="openaireSummaryContrib"/>
<entry key-ref="openaire.published" value-ref="openairePublishedContrib"/>
<entry key-ref="openaire.doi" value-ref="openaireDoiContrib"/>
<entry key-ref="openaire.journal_ref" value-ref="openaireJournalContrib"/>
<entry key-ref="openaire.category.term" value-ref="openaireCategoryTermContrib"/>
<entry key-ref="openaire.author.name" value-ref="openaireAuthorContrib"/>
<entry key-ref="openaire.identifier.other" value-ref="openaireOtherContrib"/>
</util:map>
<description>Defines which metadatum is mapped on which metadatum.</description>
<ref bean="openaireTitleContrib"/>
<ref bean="openaireSummaryContrib"/>
<ref bean="openairePublishedContrib"/>
<ref bean="openaireDoiContrib"/>
<ref bean="openaireJournalContrib"/>
<ref bean="openaireCategoryTermContrib"/>
<ref bean="openaireAuthorContrib"/>
<ref bean="openaireOtherContrib"/>
</util:list>


<bean id="openaireOtherContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaire.identifier.other"/>
<property name="field" ref="dc.identifier.other"/>
<property name="query" value="descendant::dri:objIdentifier"/>
<property name="prefixToNamespaceMapping" ref="openairePrefixToNamespaceMapping"/>
</bean>
<bean id="openaire.identifier.other" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.identifier.other"/>
</bean>


<bean id="openaireTitleContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaire.title"/>
<property name="field" ref="dc.title"/>
<property name="query" value="descendant::oaf:result/title"/>
<property name="prefixToNamespaceMapping" ref="openairePrefixToNamespaceMapping"/>
</bean>
<bean id="openaire.title" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.title"/>
</bean>

<bean id="openaireSummaryContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaire.summary"/>
<property name="field" ref="dc.description.abstract"/>
<property name="query" value="descendant::oaf:result/description"/>
<property name="prefixToNamespaceMapping" ref="openairePrefixToNamespaceMapping"/>
</bean>
<bean id="openaire.summary" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.description.abstract"/>
</bean>

<bean id="openairePublishedContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathDateFormatMetadataContributor">
<property name="dateFormatFrom" value="yyyy-MM-dd'T'HH:mm:ss'Z'"/>
<property name="dateFormatTo" value="yyyy-MM-dd"></property>
<property name="field" ref="openaire.published"/>
<property name="field" ref="dc.date.issued"/>
<property name="query" value="descendant::oaf:result/relevantdate"/>
<property name="prefixToNamespaceMapping" ref="openairePrefixToNamespaceMapping"/>
</bean>
<bean id="openaire.published" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.date.issued"/>
</bean>

<bean id="openaireDoiContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaire.doi"/>
<property name="field" ref="dc.identifier"/>
<property name="query" value="descendant::oaf:result/pid"/>
<property name="prefixToNamespaceMapping" ref="openairePrefixToNamespaceMapping"/>
</bean>
<bean id="openaire.doi" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.identifier"/>
</bean>

<bean id="openaireJournalContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaire.journal_ref"/>
<property name="field" ref="dc.source"/>
<property name="query" value="descendant::oaf:result/collectedfrom/@name"/>
<property name="prefixToNamespaceMapping" ref="openairePrefixToNamespaceMapping"/>
</bean>
<bean id="openaire.journal_ref" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.source"/>
</bean>


<bean id="openaireCategoryTermContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaire.category.term"/>
<property name="field" ref="dc.subject"/>
<property name="query" value="descendant::oaf:result/subject"/>
<property name="prefixToNamespaceMapping" ref="openairePrefixToNamespaceMapping"/>
</bean>
<bean id="openaire.category.term" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.subject"/>
</bean>

<bean id="openaireAuthorContrib" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaire.author.name"/>
<property name="field" ref="dc.contributor.author"/>
<property name="query" value="descendant::oaf:result/creator"/>
<property name="prefixToNamespaceMapping" ref="openairePrefixToNamespaceMapping"/>
</bean>
<bean id="openaire.author.name" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.contributor.author"/>
</bean>

<util:map id="openairePrefixToNamespaceMapping" map-class="java.util.HashMap"
key-type="java.lang.String" value-type="java.lang.String">
Expand All @@ -111,117 +84,10 @@
<entry key="http://www.w3.org/2001/XMLSchema-instance" value="xsi" />
</util:map>

<!--
<util:map id="openaireProjectsMetadataFieldMap" key-type="org.dspace.importer.external.metadatamapping.MetadataFieldConfig"
value-type="org.dspace.importer.external.metadatamapping.contributor.MetadataContributor">
<description>Defines which metadatum is mapped on which metadatum. Note that while the key must be unique it
only matters here for postprocessing of the value. The mapped MetadatumContributor has full control over
what metadatafield is generated.
</description>
<entry key-ref="openaireFunding.title" value-ref="openaireFundingTitle"/>
<entry key-ref="openaireFunding.acronym" value-ref="openaireFundingAcronym"/>
<entry key-ref="openaireFunding.code" value-ref="openaireFundingCode"/>
<entry key-ref="openaireFunding.startDate" value-ref="openaireFundingStartDate"/>
<entry key-ref="openaireFunding.endDate" value-ref="openaireFundingEndDate"/>
<entry key-ref="openaireFunding.funder" value-ref="openaireFundingFunder"/>
<entry key-ref="openaireFunding.callidentifier" value-ref="openaireFundingCall"/>
<entry key-ref="openaireFunding.summary" value-ref="openaireFundingSummary"/>
<entry key-ref="openaireFunding.oamandate" value-ref="openaireFundingOAMandate"/>
</util:map>
<bean id="openaireFundingTitle" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.title"/>
<property name="query" value=".//title"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.title" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.title"/>
</bean>
<bean id="openaireFundingAcronym" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.acronym"/>
<property name="query" value=".//acronym"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.acronym" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.acronym"/>
</bean>
<bean id="openaireFundingCode" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.code"/>
<property name="query" value=".//code"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.code" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.funding.identifier"/>
</bean>
<bean id="openaireFundingStartDate" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.startDate"/>
<property name="query" value=".//startdate"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.startDate" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.funding.startDate"/>
</bean>
<bean id="openaireFundingEndDate" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.endDate"/>
<property name="query" value=".//enddate"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.endDate" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.funding.endDate"/>
</bean>
-->

<!-- <bean id="openaireFundingKeywords" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.keywords"/>
<property name="query" value=".//keywords"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.keywords" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.subject"/>
</bean> -->
<!--
<bean id="openaireFundingFunder" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.funder"/>
<property name="query" value=".//fundingtree/funder/name"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.funder" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.funder"/>
</bean>
<bean id="openaireFundingCall" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.callidentifier"/>
<property name="query" value=".//callidentifier"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.callidentifier" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.fundingParent"/>
</bean>
<bean id="openaireFundingOAMandate" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.oamandate"/>
<property name="query" value=".//oamandatepublications"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.oamandate" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="oairecerif.oamandate"/>
</bean>
<bean id="openaireFundingSummary" class="org.dspace.importer.external.metadatamapping.contributor.SimpleXpathMetadatumContributor">
<property name="field" ref="openaireFunding.summary"/>
<property name="query" value=".//summary"/>
<property name="prefixToNamespaceMapping" ref="prefixToNamespaceMapping"/>
</bean>
<bean id="openaireFunding.summary" class="org.dspace.importer.external.metadatamapping.MetadataFieldConfig">
<constructor-arg value="dc.description"/>
</bean>
-->


<bean class="java.lang.Integer" id="maxRetry">
<constructor-arg value="3"/>
</bean>

</beans>
</beans>
Loading

0 comments on commit 9149133

Please sign in to comment.