diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml index 71f649920a82d2de5342b46f868736c1747f9a56..d18452f1d4820b4f1aa4918a634b0e8245ab672f 100644 --- a/oaipmh-core/pom.xml +++ b/oaipmh-core/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>oaipmh</artifactId> <groupId>info.textgrid.middleware</groupId> - <version>2.27.1</version> + <version>2.27.3</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-core</artifactId> @@ -94,7 +94,7 @@ <dependency> <groupId>org.classicmayan.tools</groupId> <artifactId>metsModsMapping</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> </dependency> <!--dependency> <groupId>org.apache.jena</groupId> diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererAbstract.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererAbstract.java index 4847f03d29c3b82885801eb73affe505b164f4c5..fd28d5ff8e6ca6f647b5bdfdee3d46ff2ef837c6 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererAbstract.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererAbstract.java @@ -10,6 +10,8 @@ public abstract class IdentifierListDelivererAbstract implements IdentifierListD protected boolean textgrid; protected boolean dariah; + private static boolean idiomMets; + private static boolean dublinCore; public IdentifierListDelivererAbstract(boolean textgrid, boolean dariah) { this.textgrid = textgrid; @@ -35,17 +37,42 @@ public abstract class IdentifierListDelivererAbstract implements IdentifierListD + " is not supported by the item identified by the value of: " + request.getIdentifier()); } - + // Check if resumptioToken is valid + if(request.getResumptionToken() != null) { + + if(IdentifierListDelivererAbstract.isIdiomMets() && IdentifierListDelivererIDIOM.cursorCollector.containsKey(request.getResumptionToken())) { + IdentifierListDelivererAbstract.setIdiomMets(true); + IdentifierListDelivererAbstract.setDublinCore(false); + }else if(IdentifierListDelivererAbstract.isDublinCore() && IdentifierListDelivererDC.cursorCollector.containsKey(request.getResumptionToken())){ + IdentifierListDelivererAbstract.setDublinCore(true); + IdentifierListDelivererAbstract.setIdiomMets(false); + }else { + result.setError(TGConstants.OAI_BAD_RESUMPTION_TOKEN, + "The value of the " + request.getResumptionToken() + " argument is invalid or expired."); + } + } + + if (request.getResumptionToken() == null && request.getMetadataPrefix() != null) { + if(request.getMetadataPrefix().equals(TGConstants.METADATA_IDIOM_PREFIX)) { + IdentifierListDelivererAbstract.setIdiomMets(true); + IdentifierListDelivererAbstract.setDublinCore(false); + } + if(request.getMetadataPrefix().equals(TGConstants.METADATA_DC_PREFIX)) { + IdentifierListDelivererAbstract.setDublinCore(true); + IdentifierListDelivererAbstract.setIdiomMets(false); + } + } + // Check if other params are existing, they shouldn't! else { List<String> errorValues = new ArrayList<String>(); - if (request.getResumptionToken() != null) { - errorValues.add("resumptionToken"); - } - if (request.getMetadataPrefix() == null) { + if (request.getResumptionToken() != null && request.getMetadataPrefix() !=null) { errorValues.add("metadataPrefix"); + } + if (request.getResumptionToken() == null && request.getMetadataPrefix() == null) { + errorValues.add("metadataPrefix"); } if (request.getIdentifier() != null) { errorValues.add("identifier"); @@ -59,6 +86,21 @@ public abstract class IdentifierListDelivererAbstract implements IdentifierListD return result; } - + + public static boolean isIdiomMets() { + return idiomMets; + } + + public static void setIdiomMets(boolean idiomMets) { + IdentifierListDelivererAbstract.idiomMets = idiomMets; + } + + public static boolean isDublinCore() { + return dublinCore; + } + + public static void setDublinCore(boolean dublinCore) { + IdentifierListDelivererAbstract.dublinCore = dublinCore; + } } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java index a2761aa2f71e58cf98f90521a0d42a2a5918cead..77db4d5e98b7bf24d625c153b8438f8ffdce6ef6 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java @@ -37,14 +37,12 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { private String[] identifierListFields; //Fields for the elasticsearch request private String rangeField; // Field for the optional range query - //private String formatToFilter; // just necessary in textgrid case to just get the editions - //private String formatField; // just necessary in textgrid to just get the editions private String dateOfObjectCreation; // Field for the object creation in the repository private String repositoryObjectURIPrefix; // private String identifierField; private static final int lifeTimeResToken = 10000; - private static Map<String, Integer> cursorCollector = new Hashtable<String, Integer >(); + public static Map<String, Integer> cursorCollector = new Hashtable<String, Integer >(); private int searchResponseSize; @@ -131,7 +129,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { int i = 0; for (SearchHit hit : listFurtherValues.getHits().getHits()) { i++; - if (this.textgrid ) { + if (this.textgrid) { String datestamp = hit.getFields().get(dateOfObjectCreation).getValue().toString(); try { @@ -221,7 +219,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { else query = QueryBuilders.boolQuery().must(rangeQuery).must(formatQuery); } -// System.out.println(query); + return query; } @@ -230,15 +228,6 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { return lit; } - -/* public void setFormatToFilter(String formatToFilter) { - this.formatToFilter = formatToFilter; - } - - public void setFormatField(String formatField) { - this.formatField = formatField; - }*/ - public String getDateOfObjectCreation() { return dateOfObjectCreation; } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java index 99309c69d6c033238ae81d7bf64ba60471804023..e7872c591e4aee38a316e9142f283a8e082c0e14 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java @@ -1,5 +1,6 @@ package info.textgrid.middleware; +import java.util.ArrayList; import java.util.Hashtable; import java.util.List; import java.util.Map; @@ -13,19 +14,18 @@ import info.textgrid.middleware.oaipmh.ResumptionTokenType; public class IdentifierListDelivererIDIOM extends IdentifierListDelivererAbstract{ static Map<String, Integer> cursorCollector = new Hashtable<String, Integer>(); - public IdentifierListDelivererIDIOM(boolean textgrid, boolean dariah) { super(textgrid, dariah); } public ListIdentifiersType processIdentifierList(String from, String to, String set, String resumptionToken) { ListIdentifiersType lit = new ListIdentifiersType(); - List<String> artefactURIs; - + List<String> artefactURIs = new ArrayList<String>(); + Queries querisForArtefactList = new Queries(); if(resumptionToken==null) { - artefactURIs = Queries.getArtefactList(0); + artefactURIs = querisForArtefactList.getArtefactList(0); }else { - artefactURIs = Queries.getArtefactList(cursorCollector.get(resumptionToken)); + artefactURIs = querisForArtefactList.getArtefactList(cursorCollector.get(resumptionToken)); } long listSize = Queries.getAmountOfArtefacts(); @@ -41,7 +41,7 @@ public class IdentifierListDelivererIDIOM extends IdentifierListDelivererAbstrac // Check the need for a resumption token! ResumptionTokenType resTokenForResponse = OAIPMHUtillities.getResumptionToken( - listSize, resumptionToken, cursorCollector, resTokenValue, 100, i); + listSize, resumptionToken, cursorCollector, resTokenValue, 30, i); if (resTokenForResponse != null) { lit.setResumptionToken(resTokenForResponse); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java index d4917d51582f8ecdd8f6167ac8c9dfd7e7ed8465..9e6ab536a6b57d1f0144b978e977d6e7b6d44822 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java @@ -229,17 +229,22 @@ public class OAIPMHImpl implements OAIPMHProducer { JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai); ErrorHandler requestErrors = IdentifierListDelivererAbstract.requestChecker(request); - if (requestErrors.getError().getCode() != null) { + if (requestErrors.getError().getValue() != null) { oai.getError().add(requestErrors.getError()); }else { // Default is DC. - IdentifierListDelivererInterface listDeliv = this.identifierListDC; - - // Take IDIOM if IDIOM prefix. - if (request.getMetadataPrefix().equals(TGConstants.METADATA_IDIOM_PREFIX)) { - listDeliv = this.identifierListIDIOM; - } - ListIdentifiersType listIdentifiers = new ListIdentifiersType(); + + IdentifierListDelivererInterface listDeliv = identifierListDC; + log.info("Actual Value of IDIOM MetsMods Boolean is: " + IdentifierListDelivererAbstract.isIdiomMets()); + log.info("Actual Value of DublinCore Boolean is: " + IdentifierListDelivererAbstract.isDublinCore()); + + if(IdentifierListDelivererAbstract.isIdiomMets()) { + listDeliv = identifierListIDIOM; + }else if(IdentifierListDelivererAbstract.isDublinCore()){ + listDeliv = identifierListDC; + } + + ListIdentifiersType listIdentifiers = new ListIdentifiersType(); listIdentifiers = listDeliv.processIdentifierList(request.getFrom(), request.getUntil(), request.getSet(), request.getResumptionToken()); @@ -349,12 +354,18 @@ public class OAIPMHImpl implements OAIPMHProducer { }else { // Default is DC. RecordListDelivererInterface recListDeliv = this.recordListDC; + + if(RecordListDelivererAbstract.isIdiomMets()) { + recListDeliv = recordListIDIOM; + }else if(RecordListDelivererAbstract.isDublinCore()){ + recListDeliv = recordListDC; + } // Take IDIOM if IDIOM prefix. - if (request.getMetadataPrefix().equals(TGConstants.METADATA_IDIOM_PREFIX)) { + /*if (request.getMetadataPrefix().equals(TGConstants.METADATA_IDIOM_PREFIX)) { recListDeliv = this.recordListIDIOM; - } + }*/ ListRecordsType listRecords = new ListRecordsType(); listRecords = recListDeliv.getRecords(request.getFrom(), request.getUntil(), request.getSet(), diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java index bf24bdcd6c19664b98b6aa8e61983405f8ebeb78..80da54b5dd39be65ef8290c218bf2a5c5627f5ca 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java @@ -70,7 +70,7 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { if(!idInDatabase.contains(".0")) { changedId = changedId + ".0"; } - + //sSystem.out.println(changedId); GetRequestBuilder recordById = OAI_ESClient.getOaiESClient() .prepareGet() .setIndex("textgrid-nonpublic") @@ -99,7 +99,7 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { }else { textgridBaseURI_FromID = id; } - + log.info("ID for generating the METS/MODS file is: " + textgridBaseURI_FromID); metsmods = new ClassicMayanMetsMods( textgridBaseURI_FromID, dateOfObjectCreation, diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java index 99e77f9532941a323e57efec6b9c28025e23c509..95755cf72b3ea543fa6ffa5c00d47f24ed89fcc3 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java @@ -9,7 +9,8 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer protected boolean textgrid; protected boolean dariah; - + private static boolean idiomMets; + private static boolean dublinCore; /** * @param textgrid * @param dariah @@ -33,24 +34,68 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer + " is not supported by the item identified by the value of: " + request.getIdentifier()); } - + // Check if resumptioToken is valid + if(request.getResumptionToken() != null) { + + if(RecordListDelivererAbstract.isIdiomMets() && RecordListDelivererIDIOM.cursorCollector.containsKey(request.getResumptionToken())) { + RecordListDelivererAbstract.setIdiomMets(true); + RecordListDelivererAbstract.setDublinCore(false); + }else if(RecordListDelivererAbstract.isDublinCore() && RecordListDelivererDC.cursorCollector.containsKey(request.getResumptionToken())){ + RecordListDelivererAbstract.setDublinCore(true); + RecordListDelivererAbstract.setIdiomMets(false); + }else { + result.setError(TGConstants.OAI_BAD_RESUMPTION_TOKEN, + "The value of the " + request.getResumptionToken() + " argument is invalid or expired."); + } + } + + if (request.getResumptionToken() == null && request.getMetadataPrefix() != null) { + if(request.getMetadataPrefix().equals(TGConstants.METADATA_IDIOM_PREFIX)) { + RecordListDelivererAbstract.setIdiomMets(true); + RecordListDelivererAbstract.setDublinCore(false); + } + if(request.getMetadataPrefix().equals(TGConstants.METADATA_DC_PREFIX)) { + RecordListDelivererAbstract.setDublinCore(true); + RecordListDelivererAbstract.setIdiomMets(false); + } + } + // Check if other params are existing, they shouldn't! else { List<String> errorValues = new ArrayList<String>(); - if (request.getMetadataPrefix() == null) { - errorValues.add("metadataPrefix"); - } - if (request.getIdentifier() != null) { - errorValues.add("identifier"); - } - if(errorValues.size()>0) { - result.setError(TGConstants.OAI_BAD_ARGUMENT, "The request includes illegal arguments " - + "or is missing required arguments: " + errorValues); - } + if (request.getResumptionToken() != null && request.getMetadataPrefix() !=null) { + errorValues.add("metadataPrefix"); + } + if (request.getResumptionToken() == null && request.getMetadataPrefix() == null) { + errorValues.add("metadataPrefix"); + } + if (request.getIdentifier() != null) { + errorValues.add("identifier"); + } + if(errorValues.size()>0) { + result.setError(TGConstants.OAI_BAD_ARGUMENT, "The request includes illegal arguments " + + "or is missing required arguments: " + errorValues); + } } return result; } + + public static boolean isIdiomMets() { + return idiomMets; + } + + public static void setIdiomMets(boolean idiomMets) { + RecordListDelivererAbstract.idiomMets = idiomMets; + } + + public static boolean isDublinCore() { + return dublinCore; + } + + public static void setDublinCore(boolean dublinCore) { + RecordListDelivererAbstract.dublinCore = dublinCore; + } } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java index bd81cd59c978d5f1a4c3d987a616929e3207623e..c7378b2cd65265fb4ba77bee6cbf8711cfd660d8 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java @@ -46,11 +46,12 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract{ ListRecordsType recordList = new ListRecordsType(); List<String> artefactURIs; - + Queries queries = new Queries(); if(resumptionToken==null) { - artefactURIs = Queries.getArtefactList(0); + + artefactURIs = queries.getArtefactList(0); }else { - artefactURIs = Queries.getArtefactList(cursorCollector.get(resumptionToken)); + artefactURIs = queries.getArtefactList(cursorCollector.get(resumptionToken)); } long listSize = Queries.getAmountOfArtefacts(); diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java index 16e164aa3f4ab100cf40ddac9dd334001a65b43d..4a45af95670464c3cd86f57ab31b1f9ce82ed35a 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -1,6 +1,9 @@ package info.textgrid.middleware; import java.text.ParseException; +import java.util.HashMap; +import java.util.Map; + import javax.xml.bind.JAXB; import javax.xml.bind.JAXBElement; import javax.xml.datatype.DatatypeConfigurationException; @@ -32,7 +35,7 @@ public class OaiPmhTest { private static RecordDelivererIDIOM recordIDIOM; private static RecordListDelivererDC recordList; private static RecordListDelivererIDIOM recordListIDIOM; - private static IdentifierListDelivererDC identifierList; + private static IdentifierListDelivererDC identifierList = new IdentifierListDelivererDC(true, false); private static IdentifierListDelivererIDIOM identifierListIDIOM = new IdentifierListDelivererIDIOM(true, false); private MetadataFormatListDeliverer metadataFormatList = new MetadataFormatListDeliverer(); private SetDeliverer setListDARIAH = new SetDeliverer(false, true); @@ -63,7 +66,7 @@ public class OaiPmhTest { recordList.setFields(TGConstants.TGFields); recordList.setWorkFields(TGConstants.TGWorkFields); recordList.setOaiEsClient(oaiEsClient); - recordList.setSearchResponseSize("10"); + recordList.setSearchResponseSize("100"); recordListIDIOM = new RecordListDelivererIDIOM(true, false); recordListIDIOM.setOaiEsClient(oaiEsClient); @@ -90,7 +93,7 @@ public class OaiPmhTest { * @throws DatatypeConfigurationException */ @Test - //@Ignore + @Ignore public void testDateGregorianType() throws ParseException, DatatypeConfigurationException { String dateformatbefore = "2012-02-06T20:48:39.614+01:00"; @@ -107,7 +110,7 @@ public class OaiPmhTest { * @throws DatatypeConfigurationException */ @Test - //@Ignore + @Ignore public void testDateStringType() throws ParseException, DatatypeConfigurationException { String dateformatbefore = "2012-02-06T20:48:39.614+01:00"; @@ -123,7 +126,7 @@ public class OaiPmhTest { * @throws ParseException */ @Test - //@Ignore + @Ignore public void testGetRequestIdentify() throws ParseException { System.out.println("Test for the verb \"Identify\" with succesfull response"); @@ -137,7 +140,7 @@ public class OaiPmhTest { * @throws ParseException */ @Test - //@Ignore + @Ignore public void testGetRequestIdentifyVerbError() throws ParseException { System.out.println("Test for the verb \"Identify\" with error response (MetadaFormat)"); JAXBElement<OAIPMHType> t = @@ -150,7 +153,7 @@ public class OaiPmhTest { * @throws ParseException */ @Test - //@Ignore + @Ignore public void testGetRequestIdentifyArgumentError() throws ParseException { System.out.println("Test for the verb \"Identify\" with error response (Until and Identifier)"); JAXBElement<OAIPMHType> z = @@ -206,7 +209,7 @@ public class OaiPmhTest { System.out.println("Test for the verb \"GetRecord\" with succesfull response"); JAXBElement<OAIPMHType> p = - this.request.getRequest("GetRecord", "textgrid:vqmx.0", TGConstants.METADATA_IDIOM_PREFIX, "", "", "", ""); + this.request.getRequest("GetRecord", "textgrid:2rcj2", TGConstants.METADATA_IDIOM_PREFIX, "", "", "", ""); JAXB.marshal(p, System.out); System.out.println("-----------------------------------\n"); } @@ -232,7 +235,7 @@ public class OaiPmhTest { */ @Test @Ignore - public void testListIdentifierSets() throws ParseException { + public void testListIdentifierSetsDC() throws ParseException { OaiPmhTest.identifierList.setFieldForRange(TGConstants.RANGE_FIELD); OaiPmhTest.identifierList.setIdentifierListFields(TGConstants.IDENTIFIER_LIST_FIELDS); @@ -245,18 +248,72 @@ public class OaiPmhTest { "project:TGPR-26236625-1acc-b921-a5fa-53567c3eeb80", "", "", ""); JAXB.marshal(p, System.out); System.out.println("-----------------------------------\n"); - - + } + + @Test + @Ignore + public void testListIdentifierWithResumptionTokenDC() throws ParseException { + + OaiPmhTest.identifierList.setFieldForRange(TGConstants.RANGE_FIELD); + OaiPmhTest.identifierList.setIdentifierListFields(TGConstants.IDENTIFIER_LIST_FIELDS); + OaiPmhTest.identifierList.setDateOfObjectCreation(TGConstants.CREATED); + OaiPmhTest.identifierList.setRepositoryObjectURIPrefix(TGConstants.ITEM_IDENTIFIER_PREFIX); + OaiPmhTest.identifierList.setIdentifierField("textgridUri"); + OaiPmhTest.identifierList.setSearchResponseSize("100"); + System.out.println("Test for the verb \"ListIdentifiers\" with succesfull response"); + JAXBElement<OAIPMHType> p = this.request.getRequest("ListIdentifiers", "", "oai_dc", + "", "", "", ""); + JAXB.marshal(p, System.out); + + + String resToken =""; + for(Map.Entry<String, Integer> entry : IdentifierListDelivererDC.cursorCollector.entrySet()) { + resToken = entry.getKey(); + } + System.out.println("HASH MAP BEFORE: "); + System.out.println(IdentifierListDelivererDC.cursorCollector); + System.out.println(resToken); + JAXBElement<OAIPMHType> p2 = this.request.getRequest("ListIdentifiers", "", "", + "", "", "", resToken); + JAXB.marshal(p2, System.out); + System.out.println("HASH MAP AFTER: "); + System.out.println(IdentifierListDelivererDC.cursorCollector); + + System.out.println("-----------------------------------\n"); } @Test @Ignore - public void testListIdentifierIDIOM() throws ParseException { + public void testListIdentifierIDIOMInvalidResumptionToken() throws ParseException { - System.out.println("Test for the verb \"ListIdentifiers\" with succesfull response"); + System.out.println("Test for the verb \"ListIdentifiers\" in IDIOM with an invalid resumption token"); + JAXBElement<OAIPMHType> p = this.request.getRequest("ListIdentifiers", "", "", + "", "", "", "45d8b524-b69e-44e8-81a9-a3634005a430"); + JAXB.marshal(p, System.out); + System.out.println("-----------------------------------\n"); + } + + @Test + @Ignore + public void testListIdentifierIDIOMWithResumptionToken() throws ParseException { + + System.out.println("Test for the verb \"ListIdentifiers\" in IDIOM with successfull response"); + JAXBElement<OAIPMHType> p = this.request.getRequest("ListIdentifiers", "", TGConstants.METADATA_IDIOM_PREFIX, "", "", "", ""); JAXB.marshal(p, System.out); + + String resToken =""; + for(Map.Entry<String, Integer> entry : IdentifierListDelivererIDIOM.cursorCollector.entrySet()) { + resToken = entry.getKey(); + } + + JAXBElement<OAIPMHType> p2 = this.request.getRequest("ListIdentifiers", "", "", + "", "", "", resToken); + JAXB.marshal(p2, System.out); + System.out.println("HASH MAP AFTER: "); + System.out.println(IdentifierListDelivererIDIOM.cursorCollector); + System.out.println("-----------------------------------\n"); } @@ -296,18 +353,44 @@ public class OaiPmhTest { JAXBElement<OAIPMHType> p = this.request.getRequest("ListRecords", "", "oai_dc", "", "", "", ""); JAXB.marshal(p, System.out); + + String resToken =""; + for(Map.Entry<String, Integer> entry : RecordListDelivererDC.cursorCollector.entrySet()) { + resToken = entry.getKey(); + } + + JAXBElement<OAIPMHType> p2 = this.request.getRequest("ListRecords", "", "", + "", "", "", resToken); + JAXB.marshal(p2, System.out); + System.out.println("HASH MAP AFTER: "); + System.out.println(RecordListDelivererDC.cursorCollector); + + System.out.println("-----------------------------------\n"); } @Test @Ignore - public void testListRecordSetsForIDIOM() throws ParseException { + public void testListRecordWithResumptionTokenForIDIOM() throws ParseException { System.out.println("Test for the verb \"ListRecords\" for IDIOM with succesfull response"); JAXBElement<OAIPMHType> p = this.request.getRequest("ListRecords", "", TGConstants.METADATA_IDIOM_PREFIX, "", "", "", ""); JAXB.marshal(p, System.out); + + + String resToken =""; + for(Map.Entry<String, Integer> entry : RecordListDelivererIDIOM.cursorCollector.entrySet()) { + resToken = entry.getKey(); + } + + JAXBElement<OAIPMHType> p2 = this.request.getRequest("ListRecords", "", "", + "", "", "", resToken); + JAXB.marshal(p2, System.out); + System.out.println("HASH MAP AFTER: "); + System.out.println(RecordListDelivererIDIOM.cursorCollector); + System.out.println("-----------------------------------\n"); } diff --git a/oaipmh-webapp/pom.xml b/oaipmh-webapp/pom.xml index 52fa64d2973ee524572fbbaa7892f08a04d7a390..a8a9e9f3971a39f0f05ec36a928199eb3271269b 100644 --- a/oaipmh-webapp/pom.xml +++ b/oaipmh-webapp/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>oaipmh</artifactId> <groupId>info.textgrid.middleware</groupId> - <version>2.27.1</version> + <version>2.27.3</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-webapp</artifactId> diff --git a/pom.xml b/pom.xml index dd1093a90b09914ff2ba8878a097795177773a8d..19d8f36f6b3ec862d3564fedb62a121411ff04e1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh</artifactId> - <version>2.27.1</version> + <version>2.27.3</version> <packaging>pom</packaging> <name>DARIAHDE :: OAI-PMH DataProvider</name> <properties>