diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml index a58f7479f3fae30acddb17a4010543c01d25873e..f52a28b0f3359e7050c163b6f52d8793a4846815 100644 --- a/oaipmh-core/pom.xml +++ b/oaipmh-core/pom.xml @@ -4,11 +4,11 @@ <parent> <artifactId>oaipmh</artifactId> <groupId>info.textgrid.middleware</groupId> - <version>2.1.2-SNAPSHOT</version> + <version>2.1.3-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-core</artifactId> - <version>2.1.2-SNAPSHOT</version> + <version>2.1.3-SNAPSHOT</version> <packaging>jar</packaging> <name>DARIAHDE :: OAI-PMH :: Core</name> <url>http://maven.apache.org</url> diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DARIAHConstants.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DARIAHConstants.java index e45943ba64211cd73820a1132884f450f2fc4afd..739095784372a4ef9ec6e1a77c570f1cbe5da73f 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DARIAHConstants.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DARIAHConstants.java @@ -45,19 +45,19 @@ public final class DARIAHConstants { * TextGrid Metadata Fields for OAI-PMH Request (Mapping to DC) */ - public static final String CREATED = "dariahObject.admnistrativeMetadata.dcterms:modified"; - public static final String FORMAT = "dariahObject.descriptiveMetadata.dc:format"; - public static final String IDENTIFIER = "dariahObject.descriptiveMetadata.dc:identifier"; - public static final String DATA_CONTRIBUTOR = "dariahObject.descriptiveMetadata.dc:contributor"; + public static final String CREATED = "descriptiveMetadata.dc:date"; + public static final String FORMAT = "descriptiveMetadata.dc:format"; + public static final String IDENTIFIER = "descriptiveMetadata.dc:identifier"; + public static final String DATA_CONTRIBUTOR = "descriptiveMetadata.dc:contributor"; public static final String[] DARIAHFields = { - "dariahObject.descriptiveMetadata.dc:contributor", "dariahObject.descriptiveMetadata.dc:coverage", - "dariahObject.descriptiveMetadata.dc:creator", "dariahObject.admnistrativeMetadata.dcterms:modified", - "dariahObject.descriptiveMetadata.dc:description", "dariahObject.descriptiveMetadata.dc:format", - "dariahObject.descriptiveMetadata.dc:identifier", "dariahObject.descriptiveMetadata.dc:language", - "dariahObject.descriptiveMetadata.dc:publisher", "dariahObject.descriptiveMetadata.dc:relation", - "dariahObject.descriptiveMetadata.dc:rights", "dariahObject.descriptiveMetadata.:source", "dariahObject.descriptiveMetadata.dc:subject", - "dariahObject.descriptiveMetadata.dc:title", "dariahObject.descriptiveMetadata.dc:type" }; + "descriptiveMetadata.dc:contributor", "descriptiveMetadata.dc:coverage", + "descriptiveMetadata.dc:creator", "admnistrativeMetadata.dcterms:modified", + "descriptiveMetadata.dc:description", "descriptiveMetadata.dc:format", + "descriptiveMetadata.dc:identifier", "descriptiveMetadata.dc:language", + "descriptiveMetadata.dc:publisher", "descriptiveMetadata.dc:relation", + "descriptiveMetadata.dc:rights", "descriptiveMetadata.:source", "descriptiveMetadata.dc:subject", + "descriptiveMetadata.dc:title", "descriptiveMetadata.dc:type" }; public static final String[] DARIAHCollectionFields = { "metadata.dc:title" }; @@ -66,23 +66,24 @@ public final class DARIAHConstants { * fields */ - public static final String[] CONTRIBUTOR_LIST = { "dariahObject.descriptiveMetadata.dc:contributor" }; - public static final String[] COVERAGE_LIST = { "dariahObject.descriptiveMetadata.dc:coverage" }; - public static final String[] CREATOR_LIST = { "dariahObject.descriptiveMetadata.dc:cretor" }; - public static final String[] DATE_LIST = { "dariahObject.descriptiveMetadata.dc:date" }; - public static final String[] DESCRIPTION_LIST = { "dariahObject.descriptiveMetadata.dc:description" }; - public static final String[] FORMAT_LIST = { "dariahObject.descriptiveMetadata.dc:format" }; - public static final String[] IDENTIFIER_LIST = { "dariahObject.descriptiveMetadata.dc:identifier" }; - public static final String[] LANGUAGE_LIST = { "dariahObject.descriptiveMetadata.dc:language" }; - public static final String[] PUBLISHER_LIST = { "dariahObject.descriptiveMetadata.dc:publisher" }; - public static final String[] RELATIONS_LIST = { "dariahObject.descriptiveMetadata.dc:relation" }; - public static final String[] RIGHTS_LIST = { "dariahObject.descriptiveMetadata.dc:rights" }; - public static final String[] SOURCE_LIST = { "dariahObject.descriptiveMetadata.dc:source" }; - public static final String[] SUBJECT_LIST = { "dariahObject.descriptiveMetadata.dc:subject" }; - public static final String[] TITLE_LIST = { "dariahObject.descriptiveMetadata.dc:title" }; - public static final String[] TYPE_LIST = { "dariahObject.descriptiveMetadata.dc:type" }; + public static final String[] CONTRIBUTOR_LIST = { "descriptiveMetadata.dc:contributor" }; + public static final String[] COVERAGE_LIST = { "descriptiveMetadata.dc:coverage" }; + public static final String[] CREATOR_LIST = { "descriptiveMetadata.dc:cretor" }; + public static final String[] DATE_LIST = { "descriptiveMetadata.dc:date" }; + public static final String[] DESCRIPTION_LIST = { "descriptiveMetadata.dc:description" }; + public static final String[] FORMAT_LIST = { "descriptiveMetadata.dc:format" }; + public static final String[] IDENTIFIER_LIST = { "descriptiveMetadata.dc:identifier" }; + public static final String[] LANGUAGE_LIST = { "descriptiveMetadata.dc:language" }; + public static final String[] PUBLISHER_LIST = { "descriptiveMetadata.dc:publisher" }; + public static final String[] RELATIONS_LIST = { "descriptiveMetadata.dc:relation" }; + public static final String[] RIGHTS_LIST = { "descriptiveMetadata.dc:rights" }; + public static final String[] SOURCE_LIST = { "descriptiveMetadata.dc:source" }; + public static final String[] SUBJECT_LIST = { "descriptiveMetadata.dc:subject" }; + public static final String[] TITLE_LIST = { "descriptiveMetadata.dc:title" }; + public static final String[] TYPE_LIST = { "descriptiveMetadata.dc:type" }; public static final String[] IDENTIFIER_LIST_FIELDS = { - "metadata.dc:identifier", "metadata.dc:date", "metadata.dc:format" }; - public static final String RANGE_FIELD = "metadata.dc:date"; + "descriptiveMetadata.dc:identifier", "descriptiveMetadata.dc:date", "descriptiveMetadata.dc:format" }; + public static final String RANGE_FIELD = "descriptiveMetadata.dc:date"; + public static final String MODIFIED_FIELD = "admnistrativeMetadata.dcterms:modified"; } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java index 07c6a2e0c3fdad98651c826e5187d2910ab1592f..c03a505363afdf13b7d23ce80d9f33ce739bd800 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java @@ -98,6 +98,7 @@ public class RecordListDeliverer { private String[] subjectList; private String[] titleList; private String[] typeList; + private String modifiedValue; /** * @param oaiEsClient @@ -160,12 +161,13 @@ public class RecordListDeliverer { .prepareSearch(this.oaiEsClient.getEsIndex()) .setTypes(this.oaiEsClient.getEsType()).addFields(this.fields) .setQuery(query).setSize(1000); - + + System.out.println("GetRecprdList: " + getRecordList); SearchResponse getRecordListItems = getRecordList.execute().actionGet(); if (getRecordListItems != null && getRecordListItems.getHits().totalHits() > 0) { setFoundItems(true); - + System.out.println("AMOUNT: " + getRecordListItems.getHits().totalHits()); for (SearchHit hit : getRecordListItems.getHits().getHits()) { // Only if we have a search response AND a hit field map... @@ -186,13 +188,18 @@ public class RecordListDeliverer { // so it has to be transformed try { - String datestamp = hit.getFields().get(this.dateOfObjectCreation).getValue().toString(); - datestamp = OAIPMHUtillities.convertDateFormat(datestamp).toXMLFormat(); + if(hit.getFields().get(this.dateOfObjectCreation)!=null){ + String datestamp = hit.getFields().get(this.dateOfObjectCreation).getValue().toString(); + datestamp = OAIPMHUtillities.convertDateFormat(datestamp).toXMLFormat(); + + } } catch (ParseException e1) { log.debug(e1); } catch (DatatypeConfigurationException e1) { log.debug(e1); } + modifiedValue = hit.getFields().get(this.modifiedField).getValue().toString(); + System.out.println("blaaaaaaaaaaaaaa: " + hit.getFields().get(this.modifiedField).getValue().toString()); // URI of the work Object to get further DC-Fields (only // necessary if metadata for the object // is in an other object than just the edition @@ -215,7 +222,6 @@ public class RecordListDeliverer { } if (this.dariah == true) { - putContentIntoDCFieldLists2(hit, furtherDCElements(hit.getId(), this.oaiEsClient)); buildRecord(recordList); listClearer(); @@ -340,6 +346,7 @@ public class RecordListDeliverer { */ queryField = "descriptiveMetadata.dc:relation"; valueField = set; + System.out.println("SET: " + valueField); // setParts[1] = setParts[1].concat(":" + setParts[2]); // System.out.println(setParts[0] + " : " + setParts[1]); } @@ -370,7 +377,7 @@ public class RecordListDeliverer { } else { query = rangeQuery; } - + System.out.println("The query is: " + query); fetchFields(query, recordList); return recordList; @@ -386,14 +393,15 @@ public class RecordListDeliverer { System.out.println("DateSize: " + dates.size()); - if(dates.size() > 0){ - header.setDatestamp(this.modifiedField); + //if(dates.size() > 0){ + + header.setDatestamp(this.modifiedValue); header.setIdentifier(this.identifiers.get(0)); System.out.println("identifiers: " + this.identifiers.get(0)); if (set != null) { header.getSetSpec().add(set); // header.getSetSpec().add(this.collectionTitle); - } + //} } return header; } 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 85c7cc73132b39aeddc2e6635c68e4437108491c..c88a7675ddd427afb8cf1c1c48a7c551a7d26e92 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -35,9 +35,11 @@ public class OaiPmhTest { // true, false); private RecordDeliverer record = new RecordDeliverer(oaiEsClient, DARIAHConstants.DARIAHFields, false, true); + private RecordListDeliverer recordList = new RecordListDeliverer( - oaiEsClient,TGConstants.TGFields, - TGConstants.TGWorkFields, true, false); + oaiEsClient,DARIAHConstants.DARIAHFields, + DARIAHConstants.DARIAHFields, false, true); + private boolean textgrid; private boolean dariah; // private RecordListDeliverer recordList = new @@ -64,7 +66,7 @@ public class OaiPmhTest { // "dariah-repository-prototype"); oaiEsClient = new OAI_ESClient("localhost", 9302, - "tg-esx2-instance"); + "dariah-repository-prototype"); oaiEsClient.setEsIndex("textgrid-public"); oaiEsClient.setEsType("metadata"); //oaiEsClient.setEsIndex("dariahreptest"); @@ -396,18 +398,19 @@ public class OaiPmhTest { this.recordList.setTypes(DARIAHConstants.TYPE_LIST); this.recordList.setFormatField(DARIAHConstants.FORMAT); this.recordList.setDateOfObjectCreation(DARIAHConstants.CREATED); - this.recordList.setFieldForRange(DARIAHConstants.CREATED); + this.recordList.setFieldForRange(DARIAHConstants.MODIFIED_FIELD); this.recordList.setDateOfObjectCreation(DARIAHConstants.RANGE_FIELD); - this.recordList.setFormatField("metadata.dc:format"); - this.recordList.setFormatToFilter("metadata"); + this.recordList.setFormatField("descriptiveMetadata.dc:format"); + //this.recordList.setFormatToFilter("text/tg.collection+tg.aggregation+xml"); + this.recordList.setModifiedField(DARIAHConstants.MODIFIED_FIELD); // this.recordList.setFormatToFilter("image/png"); this.recordList - .setRelationToFurtherMetadataObject("metadata.dc:relation"); + .setRelationToFurtherMetadataObject("descriptiveMetadata.dc:relation"); // cregId:hdl:6607/0000-0000-26A5-B // dariah:collection:6607/0000-0000-26A5-B JAXBElement<OAIPMHType> r = this.request.getRequest("ListRecords", "", - "oai_dc", "", "", "", ""); + "oai_dc", "11022/0000-0000-8F60-3", "", "", ""); JAXB.marshal(r, System.out); System.out.println("-----------------------------------\n"); } diff --git a/oaipmh-webapp/pom.xml b/oaipmh-webapp/pom.xml index 8ba7b5e5bc06a9cc324dd418efbe045bb196bced..1184f5529e9e15353ffa93c275535dba05da2a3a 100644 --- a/oaipmh-webapp/pom.xml +++ b/oaipmh-webapp/pom.xml @@ -4,12 +4,12 @@ <parent> <artifactId>oaipmh</artifactId> <groupId>info.textgrid.middleware</groupId> - <version>2.1.2-SNAPSHOT</version> + <version>2.1.3-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-webapp</artifactId> <packaging>war</packaging> - <version>2.1.2-SNAPSHOT</version> + <version>2.1.3-SNAPSHOT</version> <name>DARIAHDE :: OAI-PMH :: Webapp</name> <url>http://maven.apache.org</url> <profiles> diff --git a/pom.xml b/pom.xml index 712e839088249888ac7067272b8cb5018783cda8..58642f20c32bd182b9b9a4f08e7b519704a88f9e 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh</artifactId> - <version>2.1.2-SNAPSHOT</version> + <version>2.1.3-SNAPSHOT</version> <packaging>pom</packaging> <name>DARIAHDE :: OAI-PMH</name> <properties>