Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #430 from KevinVdV/DS-1834

[DS-1834] Collection content source harvesting test does not check sets properly
  • Loading branch information...
commit c160a6e1ffcb4b11293d257241230d3cd7a8731d 2 parents a9ebb5a + b6bfedd
@helix84 helix84 authored
Showing with 5 additions and 18 deletions.
  1. +5 −18 dspace-api/src/main/java/org/dspace/harvest/OAIHarvester.java
View
23 dspace-api/src/main/java/org/dspace/harvest/OAIHarvester.java
@@ -29,6 +29,7 @@
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
+import ORG.oclc.oai.harvester2.verb.*;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.dspace.authorize.AuthorizeException;
@@ -64,12 +65,6 @@
import org.jdom.output.XMLOutputter;
import org.xml.sax.SAXException;
-import ORG.oclc.oai.harvester2.verb.GetRecord;
-import ORG.oclc.oai.harvester2.verb.Identify;
-import ORG.oclc.oai.harvester2.verb.ListMetadataFormats;
-import ORG.oclc.oai.harvester2.verb.ListRecords;
-import ORG.oclc.oai.harvester2.verb.ListSets;
-
/**
* This class handles OAI harvesting of externally located records into this repository.
@@ -954,29 +949,21 @@ private void alertAdmin(int status, Exception ex)
try {
//If we do not want to harvest from one set, then skip this.
if(!"all".equals(oaiSetId)){
- ListSets ls = new ListSets(oaiSource);
+ ListIdentifiers ls = new ListIdentifiers(oaiSource, null, null, oaiSetId, DMDOAIPrefix);
// The only error we can really get here is "noSetHierarchy"
if (ls.getErrors() != null && ls.getErrors().getLength() > 0) {
for (int i=0; i<ls.getErrors().getLength(); i++) {
String errorCode = ls.getErrors().item(i).getAttributes().getNamedItem("code").getTextContent();
- errorSet.add(errorCode);
+ errorSet.add(OAI_SET_ERROR + ": The OAI server does not have a set with the specified setSpec (" + errorCode + ")");
}
}
else {
// Drilling down to /OAI-PMH/ListSets/set
Document reply = db.build(ls.getDocument());
Element root = reply.getRootElement();
- List<Element> sets= root.getChild("ListSets",OAI_NS).getChildren("set",OAI_NS);
-
- for (Element set : sets)
- {
- String setSpec = set.getChildText("setSpec", OAI_NS);
- if (setSpec.equals(oaiSetId)) {
- foundSet = true;
- break;
- }
- }
+ //Check if we can find items, if so this indicates that we have children and our sets exist
+ foundSet = 0 < root.getChild("ListIdentifiers",OAI_NS).getChildren().size();
if (!foundSet) {
errorSet.add(OAI_SET_ERROR + ": The OAI server does not have a set with the specified setSpec");
Please sign in to comment.
Something went wrong with that request. Please try again.