From 69b2ab97c6acb34b832779ab1357c6b775a73d76 Mon Sep 17 00:00:00 2001 From: "Stefan E. Funk" <funk@sub.uni-goettingen.de> Date: Tue, 19 Apr 2022 16:47:22 +0200 Subject: [PATCH] Fix #61 --- .../textgrid/middleware/OAIPMHUtilities.java | 23 +++++------- .../middleware/RecordDelivererIDIOM.java | 24 +++++++----- .../middleware/RecordListDelivererIDIOM.java | 37 ++++++++----------- .../middleware/OaiPmhTextgridOnlineTests.java | 6 +-- 4 files changed, 42 insertions(+), 48 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 2419b382..210f1507 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java @@ -596,9 +596,14 @@ public class OAIPMHUtilities { } /** - * @param dateOfCreation - * @param identifier - * @param setSpec + * <p> + * Create header type of OAI-PMH response. + * </p> + * + * @param dateOfCreation The date of the resource's creation. + * @param identifier The identifier to set in the header. Please see to it, that it is correct + * here, and have not to be changed in any way. + * @param setSpec The ID of the set spec. * @return */ public static HeaderType computeTheF______Header(final String dateOfCreation, @@ -606,17 +611,7 @@ public class OAIPMHUtilities { HeaderType result = new HeaderType(); - log.info("Header identifier: " + identifier); - - // identifier.substring(0, identifier.indexOf(".")); - if (identifier.contains(".")) { - result.setIdentifier(identifier.substring(0, identifier.indexOf("."))); - } else { - result.setIdentifier(identifier); - } - - log.info("Header identifier: " + identifier); - + result.setIdentifier(identifier); result.setDatestamp(dateOfCreation); log.info( 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 3a42e423..dd6a77a4 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java @@ -23,8 +23,8 @@ import info.textgrid.middleware.oaipmh.RecordType; /** * @author Maximilian Brodhun, SUB Göttingen * @author Stefan E. Funk, SUB Göttingen - * @since 2021-09-09 - * @version 2019-03-12 + * @version 2022-04-19 + * @since 2019-03-12 */ @Component public class RecordDelivererIDIOM extends RecordDelivererAbstract { @@ -121,18 +121,17 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { } else { textgridBaseURI_FromID = id; } - if(this.getObjectType().equals("ARTEFACT")){ + if (this.getObjectType().equals("ARTEFACT")) { this.metsmods = new ClassicMayanMetsMods( - textgridBaseURI_FromID, - this.dateOfObjectCreation, - this.dateOfLastOblectModification); + textgridBaseURI_FromID, + this.dateOfObjectCreation, + this.dateOfLastOblectModification); this.record.setMetadata(idiomMets()); - }else if(this.getObjectType().startsWith("ConedaKorMediumData")){ + } else if (this.getObjectType().startsWith("ConedaKorMediumData")) { this.record = new IDIOMImages().getRecordById(id).getRecord(); - } - + // See that IDs begin with "textgrid:" String identifierToSet = ""; if (!id.startsWith("textgrid:")) { identifierToSet = "textgrid:" + id; @@ -140,6 +139,11 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { identifierToSet = id; } + // See, that IDs have NO revision number. + if (identifierToSet.contains(".")) { + identifierToSet = identifierToSet.substring(0, identifierToSet.indexOf(".")); + } + // No setSpec needed here! String setSpec = ""; HeaderType header = OAIPMHUtilities.computeTheF______Header(this.dateOfObjectCreation, @@ -176,7 +180,7 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { } catch (Exception e) { e.printStackTrace(); } - + return metadataMets; } 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 1bdc15f1..04cb21ab 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java @@ -4,8 +4,6 @@ import java.io.IOException; import java.text.ParseException; import java.util.Hashtable; import java.util.Map; - -import org.classicmayan.tools.ImageMetsMods; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchScrollRequest; @@ -17,8 +15,6 @@ import org.elasticsearch.index.query.RangeQueryBuilder; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.json.JSONObject; - -import info.textgrid.clients.tgcrud.CrudClientException; import info.textgrid.middleware.oaipmh.ListRecordsType; import info.textgrid.middleware.oaipmh.ResumptionTokenType; @@ -62,15 +58,15 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { BoolQueryBuilder both; RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("lastModified").from(from).to(to); - + BoolQueryBuilder test = QueryBuilders.boolQuery() .must(QueryBuilders.matchPhraseQuery("project.id", - "TGPR-0e926f53-1aba-d415-ecf6-539edcd8a318")); + "TGPR-0e926f53-1aba-d415-ecf6-539edcd8a318")); BoolQueryBuilder artefact = QueryBuilders.boolQuery() .must(QueryBuilders.matchPhraseQuery("format", "text/tg.inputform+rdf+xml")) .must(QueryBuilders.matchPhraseQuery("notes", "ARTEFACT")); - + BoolQueryBuilder conedakor = QueryBuilders.boolQuery() .must(QueryBuilders.matchPhraseQuery("format", "application/json")) .must(QueryBuilders.matchPhraseQuery("notes", "ConedaKorMediumData")); @@ -79,10 +75,10 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { both = QueryBuilders.boolQuery().should(artefact).should(conedakor); BoolQueryBuilder bla = QueryBuilders.boolQuery().must(rangeQuery) - .must(test.filter(both)); + .must(test.filter(both)); recordFilterForClassicMayan = bla; - //QueryBuilders.boolQuery().must(rangeQuery).should(recordFilteroClassicMayanARTEFACT).should(recordFilterForClassicMayanCONEDAKOR); + // QueryBuilders.boolQuery().must(rangeQuery).should(recordFilteroClassicMayanARTEFACT).should(recordFilterForClassicMayanCONEDAKOR); SearchResponse scrollResp; @@ -137,20 +133,19 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { OAIPMHUtilities.fieldLoader(new JSONObject(hit.getSourceAsMap()), "lastModified"); RecordDelivererIDIOM idiomRecord = new RecordDelivererIDIOM(true, false); - if(recordType.equals("ARTEFACT")){ + if (recordType.equals("ARTEFACT")) { recordList.getRecord() - .add(idiomRecord.getRecordById(textgridURI.replace(".0", "")).getRecord()); - }else if(recordType.startsWith("ConedaKorMediumData")){ - /*try { - ImageMetsMods immByTGURI = new ImageMetsMods(textgridURI, creationDate, changedDate); - } catch (CrudClientException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - }*/ + .add(idiomRecord.getRecordById(textgridURI.replace(".0", "")).getRecord()); + } else if (recordType.startsWith("ConedaKorMediumData")) { + /* + * try { ImageMetsMods immByTGURI = new ImageMetsMods(textgridURI, creationDate, + * changedDate); } catch (CrudClientException e) { // TODO Auto-generated catch block + * e.printStackTrace(); } + */ recordList.getRecord() - .add(new IDIOMImages().getRecordById(textgridURI).getRecord()); + .add(new IDIOMImages().getRecordById(textgridURI).getRecord()); } - + } // Check the need for a resumption token! @@ -167,7 +162,7 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { } // ** - // GETTERA & SETTERS + // GETTERS & SETTERS // ** /** diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTextgridOnlineTests.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTextgridOnlineTests.java index fc797d08..5adee6ff 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTextgridOnlineTests.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTextgridOnlineTests.java @@ -34,15 +34,15 @@ import org.junit.Test; * * @author Stefan E. Funk, SUB Göttingen */ -@Ignore +// @Ignore public class OaiPmhTextgridOnlineTests { // ** // FINALS // ** - private static final String PROPERTIES_FILE = "oaipmh.test.textgridlab-org.properties"; - // private static final String PROPERTIES_FILE = "oaipmh.test.dev-textgridlab-org.properties"; + // private static final String PROPERTIES_FILE = "oaipmh.test.textgridlab-org.properties"; + private static final String PROPERTIES_FILE = "oaipmh.test.dev-textgridlab-org.properties"; // ** // STATICS -- GitLab