From 50e034ff95a5fd42b13eb400745dac51a3c77adf Mon Sep 17 00:00:00 2001 From: Maximilian Brodhun <brodhun@sub.uni-goettingen.de> Date: Tue, 3 Dec 2019 09:56:42 +0100 Subject: [PATCH] added "project:" prefix for setSpec for getRecord --- .../textgrid/middleware/OAIPMHUtilities.java | 17 +++++++++++++++++ .../textgrid/middleware/RecordDelivererDC.java | 4 ++-- .../middleware/RecordListDelivererAbstract.java | 7 +++---- .../middleware/RecordListDelivererDC.java | 8 ++++++++ .../info/textgrid/middleware/OaiPmhTest.java | 4 ++-- 5 files changed, 32 insertions(+), 8 deletions(-) diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java index 47efb732..5ef2c3bf 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java @@ -259,6 +259,7 @@ public class OAIPMHUtilities { resTokenForResponse.setCursor(BigInteger.valueOf(searchResponseSize)); cursorCollector.put(scrollID, searchResponseSize); cursor = 0; + System.out.println("CURSOR: " + cursor); } // Set resumption token string if cursor is less then complete list size: More objects can be @@ -285,6 +286,7 @@ public class OAIPMHUtilities { public static boolean isThisDateValid(String dateToValidate){ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S"); + dateFormat.setLenient(false); try { dateFormat.parse(dateToValidate.trim()); @@ -294,6 +296,21 @@ public class OAIPMHUtilities { return true; } + public static boolean isThisDateValidToOtherTimeStamp(String dateToValidate){ + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + + dateFormat.setLenient(false); + dateFormat.setLenient(false); + try { + dateFormat.parse(dateToValidate.trim()); + } catch (ParseException pe) { + return false; + } + return true; + } + + private static final String[] formats = { "yyyy-MM-dd'T'HH:mm:ss'Z'", "yyyy-MM-dd'T'HH:mm:ssZ", "yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java index 23231ee1..a7e00f26 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java @@ -126,7 +126,7 @@ public class RecordDelivererDC extends RecordDelivererAbstract { } record.setMetadata(dublinCoreBuilder.getDC()); } - String setSpec = "project:" + DublinCoreFieldLoader.fillList(esResultObject, DARIAHConstants.IDENTIFIER_LIST).get(0); + String setSpec = DublinCoreFieldLoader.fillList(esResultObject, DARIAHConstants.IDENTIFIER_LIST).get(0); setRecordHeader(OAIPMHUtilities .convertDateFormat(dateOfCreation).toString(), identifier, record, dublinCoreBuilder, setSpec); } @@ -143,7 +143,7 @@ public class RecordDelivererDC extends RecordDelivererAbstract { String dateOfCreation = esResultObject.getSourceAsMap().get(this.dateOfObjectCreation).toString(); - String setSpec = DublinCoreFieldLoader.fillList(esResultObject, TGConstants.RELATIONS_LIST).get(0); + String setSpec = "project:" + DublinCoreFieldLoader.fillList(esResultObject, TGConstants.RELATIONS_LIST).get(0); setRecordHeader(OAIPMHUtilities.convertDateFormat(dateOfCreation).toString(), identifier, record, dublinCoreBuilder, setSpec); 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 e13c630c..df528fb1 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java @@ -53,7 +53,6 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer + request.getResumptionToken() + " argument is invalid or expired."); } } - // Check if query to ElastisSearch responses with more then zero results @@ -71,13 +70,13 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer if (request.getIdentifier() != null) { errorValues.add("identifier"); } - if(request.getFrom()!= null && !OAIPMHUtilities.isThisDateValid(request.getFrom())) { + if(request.getFrom()!= null && (!OAIPMHUtilities.isThisDateValid(request.getFrom()) && !OAIPMHUtilities.isThisDateValidToOtherTimeStamp(request.getFrom()))) { errorValues.add("from"); } - if(request.getUntil() != null && !OAIPMHUtilities.isThisDateValid(request.getUntil())) { + if(request.getUntil() != null && (!OAIPMHUtilities.isThisDateValid(request.getUntil()) && !OAIPMHUtilities.isThisDateValidToOtherTimeStamp(request.getUntil()))) { errorValues.add("until"); } - if(request.getFrom()!= null && request.getUntil()!=null && OAIPMHUtilities.getFormatOfDate(request.getFrom()).equals(OAIPMHUtilities.getFormatOfDate(request.getFrom()))) { + if(request.getFrom()!= null && request.getUntil()!=null && !OAIPMHUtilities.getFormatOfDate(request.getFrom()).equals(OAIPMHUtilities.getFormatOfDate(request.getFrom()))) { errorValues.add("until, from"); } if (errorValues.size() > 0) { diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java index 229340bd..5c47dadb 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java @@ -270,6 +270,14 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { // Check the need for a resumption token! ResumptionTokenType resTokenForResponse = OAIPMHUtilities.getResumptionToken( completeListSize, resumptionToken, cursorCollector, scrollID, this.searchResponseSize, i); + System.out.println(completeListSize); + System.out.println(resumptionToken); + System.out.println(cursorCollector); + System.out.println(scrollID); + System.out.println(this.searchResponseSize); + System.out.println(i); + System.out.println("CURSOR HERE: " + resTokenForResponse.getCursor()); + if (resTokenForResponse != null) { recordList.setResumptionToken(resTokenForResponse); } 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 10a2cb0a..1ff8c048 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -347,8 +347,8 @@ public class OaiPmhTest { System.out.println("Test for the verb \"ListRecords\" with sets with succesfull response"); //String p = this.request.getRequest("ListRecords", "", "oai_dc", "project:TGPR-f89ad029-4eb2-ae5c-6028-5db876513128", "", "", ""); - String p = this.request.getRequest("ListRecords", "", "oai_dc", "", "2012-05-09T00:33:55.364+02:00", "2012-05-09", ""); - System.out.println(p); + String p = this.request.getRequest("ListRecords", "", "oai_dc", "", "", "", ""); + // System.out.println(p); String resToken = ""; /*for (Map.Entry<String, Integer> entry : RecordListDelivererDC.cursorCollector.entrySet()) { resToken = entry.getKey(); -- GitLab