Ariel J. Lira created DS-1386:
---------------------------------

             Summary: Unable to customize OAI 2.0 description in Identify 
responses 
                 Key: DS-1386
                 URL: https://jira.duraspace.org/browse/DS-1386
             Project: DSpace
          Issue Type: Bug
          Components: OAI-PMH
    Affects Versions: 3.0
            Reporter: Ariel J. Lira


OAI 1.0 configuration (config/oaicat.properties) provides the following 
properties to customize the response to a Identify verb: 

# Custom Identify response values
Identify.repositoryName=SeDiCI - Universidad Nacional de La Plata
[email protected]
Identify.earliestDatestamp=2003-11-20T00:00:00Z
Identify.deletedRecord=persistent
Identify.description.[0-9]*=<description><eprints 
xmlns="http://www.openarchives.org/OAI/1.1/eprints"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/eprints 
http://www.openarchives.org/OAI/1.1/eprints.xsd";> \
...\
</eprints></description>


Although in Oai 2.0 all these fields are automatically generated with good 
default values, they and can't be overwritten. Usually, a repository 
administrator needs to define at least 
one or more descriptions with: oai-identifier, rightsManifest, eprints, 
friends, or any xml fragment 
(http://www.openarchives.org/OAI/2.0/guidelines.htm, Section 3.1), and perhaps 
one or more adminEmails (other than ${mail.admin} )

This configuration may be defined A) for each Xoai context (openAire, driver, 
request) or B) globally. 
A) Could be accomplished by changing 
com.lyncode.xoai.dataprovider.xml.xoaiconfig.Configuration$Context to allow a 
new Description element in each context in xoai.xml . (I don't know exactly how 
to do it, I'm not familiar with jaxb)
B) should be simpler because it could require plain old string properties in 
oai.cfg and a couple of changes: 

- add in com.lyncode.xoai.dataprovider.OAIDataProvider
        private IdentifyType build(ExportManager manager, IdentifyType ident) 
throws OAIException 
        {
                ...
                for (String desc : _identify.getDescriptions()){
                        DescriptionType descType = 
_factory.createDescriptionType();
                        descType.setAny(desc);
                        ident.getDescription().add(descType);
                }       
                ...
        }
- Add getDescriptions() to interface AbstractIdentify
- implement getDescriptions() in DSpaceIdentify to retrieve a set of 
description properties. 

I don't know if it would be better for others repositories to define different 
descriptions for each context or share them across all contexts. In our 
repository, we just need to use the same  descriptions globally, for all 
contexts. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to