diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml index 55763339730524c82c2e4eb2f47ab23096f11361..3a0c2822f9653dac439afb39162e1b9efec21f98 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>1.3.10-SNAPSHOT</version> + <version>1.3.11-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-core</artifactId> - <version>1.3.10-SNAPSHOT</version> + <version>1.3.11-SNAPSHOT</version> <packaging>jar</packaging> <name>TextGrid :: TG-OAI-PMH :: Core</name> <url>http://maven.apache.org</url> diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java index 10b4a85ab5aa16aa05d47bf4f94b89bf21a61e73..2603655dfe00eb30ebc978dd871ef5162ece2963 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java @@ -90,7 +90,7 @@ public class DublinCoreFieldLoader { for(String field : values){ try { - if (responseWorkValues.getField(field) != null) { + if (responseWorkValues.getField("created") != null) { dates.add(OAIPMHUtillities.convertDateFormat( responseWorkValues.getField(field).getValue() .toString()).toXMLFormat()); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java index ee7677ac2032ff25c805ba8d6c67aafb73ed951f..149206c6a8f49ab32bec9f6b12a2084f529a4db0 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java @@ -27,12 +27,17 @@ public class IdentifierListDeliverer { private static org.apache.commons.logging.Log log = LogFactory.getLog(IdentifierListDeliverer.class); private String datestamp; - private ListIdentifiersType lit = new ListIdentifiersType(); + //private ListIdentifiersType lit = new ListIdentifiersType(); private boolean idExist = true; private OAI_ESClient oaiEsClient; private String[] identifierListFields; private String rangeField; + private String formatToFilter; + private String formatField; + private String dateOfObjectCreation; + private String repositoryObjectURIPrefix; + private String identifierPrefix; /** @@ -48,7 +53,7 @@ public class IdentifierListDeliverer { this.oaiEsClient = oaiEsClient; } - private ListIdentifiersType setListIdentifierHeader(String datestamp, String identifier){ + private ListIdentifiersType setListIdentifierHeader(String datestamp, String identifier, ListIdentifiersType lit){ HeaderType header = new HeaderType(); header.setDatestamp(datestamp); @@ -59,7 +64,7 @@ public class IdentifierListDeliverer { return lit; } - private ListIdentifiersType setListIdentifierHeaderWithSet(String datestamp, String identifier, String set){ + private ListIdentifiersType setListIdentifierHeaderWithSet(String datestamp, String identifier, String set, ListIdentifiersType lit){ HeaderType header = new HeaderType(); @@ -68,9 +73,7 @@ public class IdentifierListDeliverer { header.getSetSpec().add(set); lit.getHeader().add(header); - - - + return lit; } @@ -88,7 +91,8 @@ public class IdentifierListDeliverer { * @throws ParseException */ - public ListIdentifiersType getIdentifierList(String from, String to) throws ParseException{ + public ListIdentifiersType processIdentifierList(String from, String to) throws ParseException{ + ListIdentifiersType lit = new ListIdentifiersType(); String identifier; QueryBuilder queryBuilder = QueryBuilders.rangeQuery(rangeField).from(from).to(to); @@ -98,7 +102,7 @@ public class IdentifierListDeliverer { .setTypes(oaiEsClient.getEsType()) .addFields(identifierListFields) .setQuery(queryBuilder) - .setSize(10); + .setSize(1000); SearchResponse listListIdentiierValues = getListIdentifiersValuesBuilder.execute().actionGet(); @@ -106,8 +110,9 @@ public class IdentifierListDeliverer { for(SearchHit hit : listListIdentiierValues.getHits().getHits()) { - datestamp = hit.getFields().get("created").getValue().toString(); - + if(hit.getFields().get(formatField).getValue().toString().equals(formatToFilter)){ + + datestamp = hit.getFields().get(dateOfObjectCreation).getValue().toString(); try { //XMLGregorianCalendar convertedDateFormat= OAIPMHUtillities.convertDateFormat(datestamp); @@ -115,27 +120,32 @@ public class IdentifierListDeliverer { } catch (DatatypeConfigurationException e) { log.debug(e); } - - identifier = hit.getFields().get("textgridUri").getValue().toString(); - + + identifier = hit.getFields().get(identifierPrefix).getValue().toString(); - lit=setListIdentifierHeader(datestamp, identifier); + lit=setListIdentifierHeader(datestamp, identifier, lit); + } } } else{ lit=null; } - - + + return lit; + } + + public ListIdentifiersType getLit(ListIdentifiersType lit) { return lit; } public ListIdentifiersType getIdentifierListWithSet(String from, String to, String set) throws ParseException{ + ListIdentifiersType lit = new ListIdentifiersType(); + String identifier; String[] setParts = set.split(":"); @@ -159,7 +169,7 @@ public class IdentifierListDeliverer { for(SearchHit hit : listListIdentiierValues.getHits().getHits()) { - datestamp = hit.getFields().get("created").getValue().toString(); + datestamp = hit.getFields().get(dateOfObjectCreation).getValue().toString(); try { @@ -169,11 +179,11 @@ public class IdentifierListDeliverer { log.debug(e); } - identifier = hit.getFields().get("textgridUri").getValue().toString(); + identifier = hit.getFields().get(repositoryObjectURIPrefix).getValue().toString(); - lit=setListIdentifierHeaderWithSet(datestamp, identifier, set); + lit=setListIdentifierHeaderWithSet(datestamp, identifier, set, lit); } @@ -209,6 +219,30 @@ public class IdentifierListDeliverer { } + public void setFormatToFilter(String formatToFilter){ + this.formatToFilter = formatToFilter; + } + + public void setFormatField(String formatField){ + this.formatField = formatField; + } + + public String getDateOfObjectCreation() { + return dateOfObjectCreation; + } + + public void setDateOfObjectCreation(String dateOfObjectCreation) { + this.dateOfObjectCreation = dateOfObjectCreation; + } + + public void setRepositoryObjectURIPrefix(String repositoryObjectURIPrefix) { + this.repositoryObjectURIPrefix = repositoryObjectURIPrefix; + } + + public String getRepositoryObjectURIPrefix() { + return repositoryObjectURIPrefix; + } + public void setIdExist(boolean validItem){ idExist=validItem; } @@ -231,4 +265,12 @@ public class IdentifierListDeliverer { public void setFieldForRange(String fieldForRange) { this.rangeField = fieldForRange; } + + public String getIdentifierPrefix() { + return identifierPrefix; + } + + public void setIdentifierPrefix(String identifierPrefix) { + this.identifierPrefix = identifierPrefix; + } } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java index e09a1e76c2568bca860ef3e7045706425e08e04d..64ab0b4e756fd75c4c9834a4bba26742bf1da0eb 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java @@ -10,8 +10,6 @@ import info.textgrid.middleware.oaipmh.RequestType; public class MetadataFormatListDeliverer { private boolean idExist = true; - private ListMetadataFormatsType lmft = new ListMetadataFormatsType(); - private MetadataFormatType mft = new MetadataFormatType(); private OAI_ESClient oaiEsClient; public MetadataFormatListDeliverer(OAI_ESClient oaiEsClient){ @@ -19,32 +17,37 @@ public class MetadataFormatListDeliverer { } public ListMetadataFormatsType setMetadataFormatList(String id){ + + ListMetadataFormatsType lmft = new ListMetadataFormatsType(); + MetadataFormatType mft = new MetadataFormatType(); - GetRequestBuilder recordById = oaiEsClient.getOaiESClient().prepareGet() - .setIndex(oaiEsClient.getEsIndex()) - .setType(oaiEsClient.getEsType()) - .setFields("textgridUri") - .setId(id); - - GetResponse tgObject = recordById.execute().actionGet(); + GetRequestBuilder recordById = oaiEsClient.getOaiESClient().prepareGet() + .setIndex(oaiEsClient.getEsIndex()) + .setType(oaiEsClient.getEsType()) + .setFields("textgridUri") + .setId(id); - if(tgObject.isExists()){ - setIdExist(true); - mft.setMetadataNamespace("http://www.openarchives.org/OAI/2.0/oai_dc/"); - mft.setMetadataPrefix(TGConstants.METADATA_DC_PREFIX); - mft.setSchema("http://www.openarchives.org/OAI/2.0/oai_dc.xsd"); - lmft.getMetadataFormat().add(mft); - }else{ - setIdExist(false); - lmft=null; - } - + GetResponse tgObject = recordById.execute().actionGet(); + if(tgObject.isExists()){ + setIdExist(true); + mft.setMetadataNamespace("http://www.openarchives.org/OAI/2.0/oai_dc/"); + mft.setMetadataPrefix(TGConstants.METADATA_DC_PREFIX); + mft.setSchema("http://www.openarchives.org/OAI/2.0/oai_dc.xsd"); + lmft.getMetadataFormat().add(mft); + }else{ + setIdExist(false); + lmft=null; + } + return lmft; } public ListMetadataFormatsType setMetadataFormatListWithoutId(){ + ListMetadataFormatsType lmft = new ListMetadataFormatsType(); + MetadataFormatType mft = new MetadataFormatType(); + mft.setMetadataNamespace("http://www.openarchives.org/OAI/2.0/oai_dc/"); mft.setMetadataPrefix(TGConstants.METADATA_DC_PREFIX); mft.setSchema("http://www.openarchives.org/OAI/2.0/oai_dc.xsd"); 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 f0e99b99655294ac548a5ae83c36d418846c4f26..ae713f26b1d906c1ecebdfd73c4b18f0ce387875 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java @@ -41,15 +41,17 @@ public class OAIPMHImpl implements OAIPMHProducer{ private ErrorHandler error = new ErrorHandler(); private org.apache.commons.logging.Log log = LogFactory.getLog(OAIPMHImpl.class); - private ListIdentifiersType listIDs = new ListIdentifiersType(); private OAI_ESClient oaiEsClient; - //private static String[] fields; private RepIdentification rep; private RecordListDeliverer recordList; private RecordDeliverer recDeliv; private MetadataFormatListDeliverer metadataFormatList; private SetDeliverer setList; private IdentifierListDeliverer identifierList; + + ListIdentifiersType lit = new ListIdentifiersType(); + + @@ -68,21 +70,7 @@ public class OAIPMHImpl implements OAIPMHProducer{ this.metadataFormatList = metadataFormatList; this.setList = setList; this.identifierList = identifierList; - } - - public OAIPMHImpl(OAI_ESClient oaiEsClient, RepIdentification rep){ - this.oaiEsClient=oaiEsClient; - this.rep = rep; - } - - public OAIPMHImpl(OAI_ESClient oaiEsClient, RecordDeliverer recDeliv){ - this.oaiEsClient=oaiEsClient; - this.recDeliv = recDeliv; - } - - public OAIPMHImpl(OAI_ESClient oaiEsClient, RecordListDeliverer recordList){ - this.oaiEsClient=oaiEsClient; - this.recordList = recordList; + } /** @@ -169,17 +157,9 @@ public class OAIPMHImpl implements OAIPMHProducer{ public JAXBElement<OAIPMHType> identifyRequest(ObjectFactory obf, OAIPMHType oai, RequestType request){ List<String> errorValues = new ArrayList<String>(); JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai); - //RepIdentification repIdentification = new RepIdentification(); IdentifyType tgRepIdentificationRequest = new IdentifyType(); if(rep.requestChecker(request)){ - //tgRepIdentificationRequest.setBaseURL(repIdentification.getBaseUrl()); - //tgRepIdentificationRequest.setDeletedRecord(repIdentification.getDeletedRecordStatus()); - //tgRepIdentificationRequest.setEarliestDatestamp(repIdentification.getEarliestDatestamp()); - //tgRepIdentificationRequest.setGranularity(repIdentification.getGranularity()); - //tgRepIdentificationRequest.setRepositoryName(repIdentification.getRepositoryName()); - //tgRepIdentificationRequest.setProtocolVersion(repIdentification.getProtocolVersion()); - //tgRepIdentificationRequest.getAdminEmail().add(repIdentification.getAdminMaiAddresss()); tgRepIdentificationRequest.setBaseURL(rep.getBaseUrl()); tgRepIdentificationRequest.setDeletedRecord(rep.getDeletedRecordStatus()); @@ -231,9 +211,14 @@ public class OAIPMHImpl implements OAIPMHProducer{ } else if(recDeliv.requestChecker(request)){ - - GetRecordType getRecord = recDeliv.getRecordById(request.getIdentifier()); + + //recDeliv.getRecordById(request.getIdentifier()); + + GetRecordType getRecord = new GetRecordType(); + getRecord = recDeliv.getRecordById(request.getIdentifier()); + if(getRecord!=null){ + //getRecord = recDeliv.getRecordById(request.getIdentifier()); oai.setGetRecord(getRecord); } else{ @@ -272,9 +257,10 @@ public class OAIPMHImpl implements OAIPMHProducer{ public JAXBElement<OAIPMHType> listIdentifiersRequest(ObjectFactory obf, OAIPMHType oai, RequestType request) throws ParseException{ List<String> errorValues = new ArrayList<String>(); - //IdentifierListDeliverer listIdDeliv = new IdentifierListDeliverer(oaiEsClient); JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai); + + if(identifierList.requestChecker(request)){ if(!request.getMetadataPrefix().equals(TGConstants.METADATA_DC_PREFIX)){ @@ -294,9 +280,10 @@ public class OAIPMHImpl implements OAIPMHProducer{ try { if(request.getSet()==null){ - if(identifierList.getIdentifierList(request.getFrom(), request.getUntil())!=null){ - listIDs = identifierList.getIdentifierList(request.getFrom(), request.getUntil()); - oai.setListIdentifiers(listIDs); + identifierList.processIdentifierList(request.getFrom(), request.getUntil()); + if(identifierList.processIdentifierList(request.getFrom(), request.getUntil())!=null){ + lit = identifierList.processIdentifierList(request.getFrom(), request.getUntil()); + oai.setListIdentifiers(lit); }else{ error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " + request.getUntil() + " results in an empty list"); @@ -304,8 +291,8 @@ public class OAIPMHImpl implements OAIPMHProducer{ } }else{ if(request.getSet()!=null && identifierList.getIdentifierListWithSet(request.getFrom(), request.getUntil(), request.getSet())!=null){ - listIDs = identifierList.getIdentifierListWithSet(request.getFrom(), request.getUntil(), request.getSet()); - oai.setListIdentifiers(listIDs); + lit = identifierList.getIdentifierListWithSet(request.getFrom(), request.getUntil(), request.getSet()); + oai.setListIdentifiers(lit); }else{ error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " + request.getUntil() + " results in an empty list"); @@ -330,6 +317,7 @@ public class OAIPMHImpl implements OAIPMHProducer{ oai.getError().add(error.setError(TGConstants.OAI_BAD_ARGUMENT)); } + return oaipmhRoot; } @@ -416,29 +404,14 @@ public class OAIPMHImpl implements OAIPMHProducer{ + request.getIdentifier()); oai.getError().add(error.setError(TGConstants.OAI_METADATA_FORMAT_ERROR)); }else{ - - //if(request.getSet()==null){ - - listRecords = recordList.getRecordsWithSet(request.getFrom(), request.getUntil(), request.getSet()); - if(listRecords!=null){ - oai.setListRecords(listRecords); - }else{ - error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " + - request.getUntil() + " results in an empty list"); - oai.getError().add(error.setError(TGConstants.OAI_NO_RECORD_MATCH)); - } - //} - /*else{ - listRecords = recordList.getRecordsWithSet(request.getFrom(), request.getUntil(), request.getSet()); - if(listRecords!=null){ - - oai.setListRecords(listRecords); - }else{ - error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " + - request.getUntil() + " results in an empty list"); - oai.getError().add(error.setError(TGConstants.OAI_NO_RECORD_MATCH)); - } - }*/ + listRecords = recordList.getRecordsWithSet(request.getFrom(), request.getUntil(), request.getSet()); + if(listRecords!=null){ + oai.setListRecords(listRecords); + }else{ + error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " + + request.getUntil() + " results in an empty list"); + oai.getError().add(error.setError(TGConstants.OAI_NO_RECORD_MATCH)); + } } }else{ if(request.getIdentifier()!=null){ @@ -583,8 +556,4 @@ public class OAIPMHImpl implements OAIPMHProducer{ return request; } - - /*public void setFields(String[] fields){ - OAIPMHImpl.fields = fields; - }*/ } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java index dbfdae6cd7d34fe78a857d3105d80f8e247d54a3..4eb447b65600049997b45fa038c1c463532cc044 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java @@ -16,7 +16,6 @@ import info.textgrid.middleware.oaipmh.OaiDcType; import info.textgrid.middleware.oaipmh.ObjectFactory; import info.textgrid.middleware.oaipmh.RecordType; import info.textgrid.middleware.oaipmh.RequestType; -import info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes; /** * Query ElasticSearch index for the values mapped to dublinCore for a specific object and collect them into lists @@ -34,6 +33,13 @@ public class RecordDeliverer { private boolean textgrid; private boolean dariah; + private String formatField; + private String formatToFilter; + private String dateOfObjectCreation; + private String relationToFurtherMetadataObject; + private String repositoryObjectURIPrefix; + private String identifierPrefix; + /* * Lists for the Dublin Core elements. Lists are needed since each DC fields is possible to occures several times */ @@ -73,21 +79,13 @@ public class RecordDeliverer { private static org.apache.commons.logging.Log log = LogFactory.getLog(RecordDeliverer.class); - private RecordType record = new RecordType(); - private HeaderType recordHeader = new HeaderType(); - private ObjectFactory of = new ObjectFactory(); - private OaiDcType odt = new OaiDcType(); - private GetRecordType grt = new GetRecordType(); - private DublinCoreBuilder dbc = new DublinCoreBuilder(odt, of); private OAI_ESClient oaiEsClient; public RecordDeliverer(OAI_ESClient oaiEsClient, - String[] fields, String[] workFields, boolean textgrid, boolean dariah){ this.oaiEsClient=oaiEsClient; - this.fields = fields; this.workFields = workFields; this.textgrid = textgrid; this.dariah = dariah; @@ -102,10 +100,16 @@ public class RecordDeliverer { public GetRecordType getRecordById(String id){ + ObjectFactory of = new ObjectFactory(); + OaiDcType odt = new OaiDcType(); + GetRecordType grt = new GetRecordType(); + RecordType record = new RecordType(); String changedId = id; + DublinCoreBuilder dbc = new DublinCoreBuilder(odt, of); - if(id.startsWith(TGConstants.TG_ITEM_IDENTIFIER_PREFIX)){ - changedId = changedId.replace(TGConstants.TG_ITEM_IDENTIFIER_PREFIX, ""); + + if(id.startsWith(repositoryObjectURIPrefix)){ + changedId = changedId.replace(repositoryObjectURIPrefix, ""); } GetRequestBuilder recordById = oaiEsClient.getOaiESClient().prepareGet() @@ -116,27 +120,30 @@ public class RecordDeliverer { GetResponse tgObject = recordById.execute().actionGet(); - - if(tgObject.isExists() && tgObject.getField(TGConstants.FORMAT).getValue().toString().equals(TextGridMimetypes.EDITION)){ + if(tgObject.isExists() && tgObject.getField(formatField).getValue() + .toString().equals(formatToFilter)){ if(dariah == true){ } if(textgrid == true){ - String workUri = tgObject.getField(TGConstants.EDITION_ISEDITIONOF).getValue().toString(); - workUri = workUri.substring(TGConstants.TG_ITEM_IDENTIFIER_PREFIX.length()); - + String workUri = tgObject.getField(relationToFurtherMetadataObject).getValue().toString(); + workUri = workUri.substring(repositoryObjectURIPrefix.length()); putContentIntoDCFieldLists(tgObject, furtherDCElements(workUri)); } - recordHeader.setIdentifier(tgObject.getField(TGConstants.URI).getValue().toString()); - recordHeader.setDatestamp(dates.get(0)); + String identifier = tgObject.getField(identifierPrefix) + .getValue().toString(); + String dateOfCreation = tgObject.getField(dateOfObjectCreation).getValue().toString(); - setDCObject(odt, of); + setRecordHeader(dateOfCreation, identifier, record, dbc); + + + setDCObject(odt, of, dbc); record.setMetadata(dbc.getDC()); - record.setHeader(recordHeader); grt.setRecord(record); + listClearer(); } else{ @@ -146,7 +153,18 @@ public class RecordDeliverer { return grt; } - + public RecordType setRecordHeader(String dateOfCreation, String identifier, RecordType record, DublinCoreBuilder dbc){ + + HeaderType recordHeader = new HeaderType(); + + recordHeader.setIdentifier(identifier); + recordHeader.setDatestamp(dateOfCreation); + record.setMetadata(dbc.getDC()); + record.setHeader(recordHeader); + + + return record; + } public GetResponse furtherDCElements(String id){ @@ -155,14 +173,13 @@ public class RecordDeliverer { .setType(oaiEsClient.getEsType()) .setId(id) .setFields(workFields); - GetResponse responseWorkValues = getWorkValues.execute().actionGet(); try { - if (responseWorkValues.getField(TGConstants.CREATED) != null) { + if (responseWorkValues.getField(dateOfObjectCreation) != null) { dates.add(OAIPMHUtillities.convertDateFormat( - responseWorkValues.getField(TGConstants.CREATED).getValue() + responseWorkValues.getField(dateOfObjectCreation).getValue() .toString()).toXMLFormat()); } } catch (ParseException e) { @@ -203,7 +220,7 @@ public class RecordDeliverer { * @param of jaxb object factory the DublinCore elements */ - public void setDCObject(OaiDcType odt, ObjectFactory of){ + public void setDCObject(OaiDcType odt, ObjectFactory of, DublinCoreBuilder dbc){ dbc.setContributor(contributors); dbc.setCoverage(coverages); @@ -223,67 +240,160 @@ public class RecordDeliverer { } + public void listClearer() { + this.contributors.clear(); + this.coverages.clear(); + this.creators.clear(); + this.dates.clear(); + this.descriptions.clear(); + this.formats.clear(); + this.identifiers.clear(); + this.languages.clear(); + this.publishers.clear(); + this.relations.clear(); + this.rights.clear(); + this.sources.clear(); + this.subjects.clear(); + this.titles.clear(); + this.types.clear(); + } + + public void setFormatToFilter(String formatToFilter){ + this.formatToFilter = formatToFilter; + } + + public void setFormatField(String formatField){ + this.formatField = formatField; + } + + public String getDateOfObjectCreation() { + return dateOfObjectCreation; + } + + public void setDateOfObjectCreation(String dateOfObjectCreation) { + this.dateOfObjectCreation = dateOfObjectCreation; + } + + public String getRelationToFurtherMetadataObject() { + return relationToFurtherMetadataObject; + } + + public void setRelationToFurtherMetadataObject( + String relationToFurtherMetadataObject) { + this.relationToFurtherMetadataObject = relationToFurtherMetadataObject; + } + + public String getRepositoryObjectURIPrefix() { + return repositoryObjectURIPrefix; + } + + public void setRepositoryObjectURIPrefix(String repositoryObjectURIPrefix) { + this.repositoryObjectURIPrefix = repositoryObjectURIPrefix; + } + + public String getIdentifierPrefix() { + return identifierPrefix; + } + + public void setIdentifierPrefix(String identifierPrefix) { + this.identifierPrefix = identifierPrefix; + } + + public void setFields(String[] fields){ + this.fields = fields; + } + + public String[] getFields(){ + return this.fields; + + } + + public void setWorkFields(String[] workFields){ + this.workFields = workFields; + } + public void setContributor(String[] contributorList){ + this.contributorList = contributorList; } + public String[] getContributor(){ + + return this.contributorList; + } + public void setCoverage(String[] coveragesList){ + this.coverageList = coveragesList; } - public void setCreators(String[] creatorsList){ + public void setCreator(String[] creatorsList){ + this.creatorList = creatorsList; } public void setDates(String[] datesList){ + this.dateList = datesList; } - public void setDescriptions(String[]descriptionsList){ + public void setDescriptions(String[] descriptionsList){ + this.descriptionList = descriptionsList; } public void setFormats(String[] formatsList){ + this.formatList = formatsList; } public void setIdentifiers(String[] identifiersList){ + this.identifierList = identifiersList; } public void setLanguages(String[] languagesList){ + this.languageList = languagesList; } public void setPublishers(String[] publishersList){ + this.publisherList = publishersList; } public void setRelations(String[] relationsList){ + this.relationList = relationsList; } public void setRelationsForWork(String[] relationsList){ + this.relationForWorkList = relationsList; } public void setRights(String[] rightsList){ + this.rightList = rightsList; } public void setSources(String[] sourcesList){ + this.sourceList = sourcesList; } public void setSubjects(String[] subjectsList){ + this.subjectList = subjectsList; } public void setTitles(String[] titlesList){ + this.titleList = titlesList; } public void setTypes(String[] typesList){ + this.typeList = typesList; } @@ -314,4 +424,6 @@ public class RecordDeliverer { return requestCheck; } + + } 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 f2b3e5bf901920ecae58a9394997cf9419e528c6..39cecd90eea1ab064cd0da7977392b345f1e2a7c 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java @@ -54,7 +54,12 @@ public class RecordListDeliverer { private String[] workFields; private boolean textgrid; private boolean dariah; - private ListRecordsType recordList = new ListRecordsType(); + private String formatField; + private String formatToFilter; + private String dateOfObjectCreation; + private String relationToFurtherMetadataObject; + private String repositoryObjectURIPrefix; + private String rangeField; /* * DC-Field Lists @@ -129,12 +134,9 @@ public class RecordListDeliverer { .setType(esClient.getEsType()) .setId(id) .setFields(workFields); - System.out.println("halejulja"); + GetResponse responseWorkValues = getWorkValues.execute().actionGet(); - System.out.println(responseWorkValues.getField("work.genre") - .getValue().toString()); - return responseWorkValues; } @@ -144,7 +146,7 @@ public class RecordListDeliverer { * @param query */ - public void fetchFields(QueryBuilder query){ + public void fetchFields(QueryBuilder query, ListRecordsType recordList){ SearchRequestBuilder getRecordList = oaiEsClient .getOaiESClient() @@ -167,12 +169,12 @@ public class RecordListDeliverer { if (hit != null && hits != null) { //The response should also contains the editions - if (hit.getFields().get(TGConstants.FORMAT).values().get(0).toString() - .equals(TextGridMimetypes.EDITION)) { + if (hit.getFields().get(formatField).values().get(0).toString() + .equals(formatToFilter)) { //The datestamp from textgrid is in not compatible format so it has to be transformed try { - String datestamp = hit.getFields().get(TGConstants.CREATED) + String datestamp = hit.getFields().get(dateOfObjectCreation) .getValue().toString(); datestamp = OAIPMHUtillities.convertDateFormat( datestamp).toXMLFormat(); @@ -190,16 +192,18 @@ public class RecordListDeliverer { } if(textgrid == true){ - System.out.println("work found"); + String workUri = hit.getFields() - .get(TGConstants.EDITION_ISEDITIONOF).values().get(0) - .toString().substring(TGConstants.TG_ITEM_IDENTIFIER_PREFIX + .get(relationToFurtherMetadataObject).values().get(0) + .toString().substring(repositoryObjectURIPrefix .length()); - System.out.println(workUri); + if(!workUri.endsWith(".0")){ + workUri = workUri.concat(".0"); + } putContentIntoDCFieldLists(hit, furtherDCElements(workUri, oaiEsClient)); } - buildRecord(); + buildRecord(recordList); listClearer(); } } @@ -230,7 +234,7 @@ public class RecordListDeliverer { } - public RecordType buildRecord(){ + public RecordType buildRecord(ListRecordsType recordList){ ObjectFactory of = new ObjectFactory(); OaiDcType odt = new OaiDcType(); @@ -260,15 +264,16 @@ public class RecordListDeliverer { } public ListRecordsType getRecordsWithSet(String from, String to, String set) { - + ListRecordsType recordList = new ListRecordsType(); QueryBuilder query; - QueryBuilder rangeQuery = QueryBuilders.rangeQuery(TGConstants.CREATED).from(from).to(to); + QueryBuilder rangeQuery = QueryBuilders.rangeQuery(rangeField).from(from).to(to); if(set!=null){ this.set = set; String[] setParts = set.split(":"); - + if(setParts[0].equals("project")){ + setParts[0] = setParts[0].concat(".value"); } @@ -280,7 +285,7 @@ public class RecordListDeliverer { query = rangeQuery; } - fetchFields(query); + fetchFields(query, recordList); return recordList; } @@ -343,7 +348,52 @@ public class RecordListDeliverer { this.titles.clear(); this.types.clear(); } + + public void setFormatToFilter(String formatToFilter){ + this.formatToFilter = formatToFilter; + } + + public void setFormatField(String formatField){ + this.formatField = formatField; + } + + public String getDateOfObjectCreation() { + return dateOfObjectCreation; + } + + public void setDateOfObjectCreation(String dateOfObjectCreation) { + this.dateOfObjectCreation = dateOfObjectCreation; + } + + public String getRelationToFurtherMetadataObject() { + return relationToFurtherMetadataObject; + } + + public void setRelationToFurtherMetadataObject( + String relationToFurtherMetadataObject) { + this.relationToFurtherMetadataObject = relationToFurtherMetadataObject; + } + + public String getRepositoryObjectURIPrefix() { + return repositoryObjectURIPrefix; + } + + public void setRepositoryObjectURIPrefix(String repositoryObjectURIPrefix) { + this.repositoryObjectURIPrefix = repositoryObjectURIPrefix; + } + public String getFieldForRange() { + return rangeField; + } + + public void setFieldForRange(String fieldForRange) { + this.rangeField = fieldForRange; + } + + /* + * Setter for DublinCore Lists + */ + public void setContributor(String[] contributorList){ this.contributorList = contributorList; } @@ -427,4 +477,10 @@ public class RecordListDeliverer { return requestCheck; } + + + + + + } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java index e2af0ba93aa41125f79fd89430a02d2605a946d7..2d15f67d6b7cbc8f1e99ae7ed8367c7754e83ddc 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java @@ -17,7 +17,7 @@ import org.elasticsearch.search.SearchHit; public class SetDeliverer { - ListSetsType setList = new ListSetsType(); + private OAI_ESClient oaiEsClient; public SetDeliverer(OAI_ESClient oaiEsClient) { @@ -28,6 +28,8 @@ public class SetDeliverer { public ListSetsType setListBuilder(){ + ListSetsType setList = new ListSetsType(); + QueryStringQueryBuilder aggQuery = QueryBuilders.queryString("*"); SearchRequestBuilder request = oaiEsClient.getOaiESClient() diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java b/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java index e9947c44a8aff88cae7fe7da2aca02b007ec8cdb..10dc2bd5fcecabf559190dc084892f13131086ff 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java @@ -91,7 +91,7 @@ public final class TGConstants { /* * String Arrays to define which TextGrid fields belongs to the regarding DC fields */ - + public static final String[] CONTRIBUTOR_LIST = {DATA_CONTRIBUTOR}; public static final String[] COVERAGE_LIST = {WORK_SPATIAL, WORK_TEMPORAL}; public static final String[] CREATOR_LIST = {WORK_AGENT}; @@ -113,6 +113,6 @@ public final class TGConstants { public static final String[] TYPE_LIST = {WORK_GENRE, WORK_TYPE}; - public static final String[] IDENTIFIER_LIST_FIELDS = {URI, CREATED}; + public static final String[] IDENTIFIER_LIST_FIELDS = {URI, CREATED, FORMAT}; public static final String RANGE_FIELD = CREATED; } 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 33dadfd14707acc3c2b9891108c4c95587af728f..2b377af1a2368e0c980a065f8ad9f56b5a9eecb2 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -6,6 +6,7 @@ import java.text.ParseException; import info.textgrid.middleware.oaipmh.DeletedRecordType; import info.textgrid.middleware.oaipmh.GranularityType; import info.textgrid.middleware.oaipmh.OAIPMHType; +import info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes; import javax.xml.bind.JAXB; import javax.xml.bind.JAXBElement; @@ -22,7 +23,7 @@ public class OaiPmhTest { DeletedRecordType bla = DeletedRecordType.NO; GranularityType bla2 = GranularityType.YYYY_MM_DD_THH_MM_SS_Z; private RepIdentification rep = new RepIdentification("TextGrid-Repository", "www.textgridrep.de", bla, "2011-06-11T02:32:40Z", bla2, "2.0", "textgrid-support@gwdg.de"); - private RecordDeliverer record = new RecordDeliverer(oaiEsClient, TGConstants.TGFields, TGConstants.TGWorkFields, true, false); + private RecordDeliverer record = new RecordDeliverer(oaiEsClient, TGConstants.TGWorkFields, true, false); private RecordListDeliverer recordList = new RecordListDeliverer(oaiEsClient, TGConstants.TGFields, TGConstants.TGWorkFields, true, false); private MetadataFormatListDeliverer metadataFormatList = new MetadataFormatListDeliverer(oaiEsClient); private SetDeliverer setList = new SetDeliverer(oaiEsClient); @@ -49,7 +50,7 @@ public class OaiPmhTest { } @Test - //@Ignore + @Ignore public void testDateNow() throws DatatypeConfigurationException { System.out.println("---------------Now Version-----------------"); XMLGregorianCalendar nowTest = OAIPMHUtillities @@ -59,7 +60,7 @@ public class OaiPmhTest { } @Test - //@Ignore + @Ignore public void testDateGregorianType() throws ParseException, DatatypeConfigurationException { String dateformatbefore = "2012-02-06T20:48:39.614+01:00"; @@ -73,7 +74,7 @@ public class OaiPmhTest { } @Test - //@Ignore + @Ignore public void testDateStringType() throws ParseException, DatatypeConfigurationException { String dateformatbefore = "2012-02-06T20:48:39.614+01:00"; @@ -86,7 +87,7 @@ public class OaiPmhTest { } @Test - //@Ignore + @Ignore public void testGetRequestIdentify() throws ParseException { System.out.println("Test for the verb \"Identify\" with succesfull response"); @@ -97,7 +98,7 @@ public class OaiPmhTest { } @Test - //@Ignore + @Ignore public void testGetRequestIdentifyVerbError() throws ParseException { JAXBElement<OAIPMHType> t = request.getRequest("Identify", "", "a", "", "", "", ""); @@ -106,7 +107,7 @@ public class OaiPmhTest { } @Test - //@Ignore + @Ignore public void testGetRequestIdentifyArgumentError() throws ParseException { System.out .println("Test for the verb \"Identify\" with error response"); @@ -133,7 +134,7 @@ public class OaiPmhTest { record.setContributor(TGConstants.CONTRIBUTOR_LIST); record.setCoverage(TGConstants.COVERAGE_LIST); - record.setCreators(TGConstants.CREATOR_LIST); + record.setCreator(TGConstants.CREATOR_LIST); record.setDates(TGConstants.DATE_LIST); record.setDescriptions(TGConstants.DESCRIPTION_LIST); record.setFormats(TGConstants.FORMAT_LIST); @@ -147,6 +148,13 @@ public class OaiPmhTest { record.setSubjects(TGConstants.SUBJECT_LIST); record.setTitles(TGConstants.TITLE_LIST); record.setTypes(TGConstants.TYPE_LIST); + record.setFields(TGConstants.TGFields); + record.setFormatField(TGConstants.FORMAT); + record.setFormatToFilter(TextGridMimetypes.EDITION); + record.setDateOfObjectCreation(TGConstants.CREATED); + record.setRelationToFurtherMetadataObject(TGConstants.EDITION_ISEDITIONOF); + record.setRepositoryObjectURIPrefix(TGConstants.TG_ITEM_IDENTIFIER_PREFIX); + record.setIdentifierPrefix("textgridUri"); System.out.println("Test for the verb \"GetRecord\" with succesfull response"); JAXBElement<OAIPMHType> p = request.getRequest("GetRecord", @@ -216,7 +224,12 @@ public class OaiPmhTest { recordList.setSubjects(TGConstants.SUBJECT_LIST); recordList.setTitles(TGConstants.TITLE_LIST); recordList.setTypes(TGConstants.TYPE_LIST); - + recordList.setFormatField(TGConstants.FORMAT); + recordList.setFormatToFilter(TextGridMimetypes.EDITION); + recordList.setDateOfObjectCreation(TGConstants.CREATED); + recordList.setRelationToFurtherMetadataObject(TGConstants.EDITION_ISEDITIONOF); + recordList.setRepositoryObjectURIPrefix(TGConstants.TG_ITEM_IDENTIFIER_PREFIX); + recordList.setFieldForRange(TGConstants.CREATED); JAXBElement<OAIPMHType> r = request.getRequest("ListRecords", "", "oai_dc", "", "", "", ""); JAXB.marshal(r, @@ -231,6 +244,14 @@ public class OaiPmhTest { System.out.println("-----------------------------------\n"); } + @Test + @Ignore + public void testListMetadataFormatsWithoutID() throws ParseException{ + JAXBElement<OAIPMHType> r = request.getRequest("ListMetadataFormats", + "", "", "", "", "", ""); JAXB.marshal(r, System.out); + System.out.println("-----------------------------------\n"); + } + @Test @Ignore public void testListSets() throws ParseException { @@ -242,11 +263,14 @@ public class OaiPmhTest { } @Test - @Ignore + //@Ignore public void testListIdentifiers() throws ParseException{ identifierList.setFieldForRange(TGConstants.RANGE_FIELD); identifierList.setIdentifierListFields(TGConstants.IDENTIFIER_LIST_FIELDS); - + identifierList.setFormatField(TGConstants.FORMAT); + identifierList.setFormatToFilter(TextGridMimetypes.EDITION); + identifierList.setDateOfObjectCreation(TGConstants.CREATED); + identifierList.setRepositoryObjectURIPrefix("textgridUri"); JAXBElement<OAIPMHType> r = request.getRequest("ListIdentifiers", "", "oai_dc", "", "", "", ""); JAXB.marshal(r, System.out); System.out.println("-----------------------------------\n"); diff --git a/oaipmh-webapp/pom.xml b/oaipmh-webapp/pom.xml index ae01b7aa7707bab11baf57d66c9cc11688facbe2..afa67b5956fea326f799e80db582b5b9d64f1b5f 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>1.3.10-SNAPSHOT</version> + <version>1.3.11-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-webapp</artifactId> <packaging>war</packaging> - <version>1.3.10-SNAPSHOT</version> + <version>1.3.11-SNAPSHOT</version> <name>TextGrid :: OAI-PMH :: Webapp</name> <url>http://maven.apache.org</url> <profiles> diff --git a/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml b/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml index be8b69dc50087ddd92528ca3c989202eeffb7e8b..c6e3774e3a269f36ba4616de086f4ea007597ba4 100644 --- a/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml +++ b/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml @@ -74,7 +74,7 @@ http://www.springframework.org/schema/util/spring-util-3.1.xsd </bean> <bean id="RecordList" class="info.textgrid.middleware.RecordListDeliverer"> - <constructor-arg ref="ElasticSearchClient" /> + <constructor-arg index="0" ref="ElasticSearchClient" /> <constructor-arg index="1"> <value>${fields}</value> </constructor-arg> @@ -87,64 +87,87 @@ http://www.springframework.org/schema/util/spring-util-3.1.xsd <constructor-arg index="4"> <value>${dariah}</value> </constructor-arg> - <property name="contributorList" value="${contributorList}" /> - <property name="coverageList" value="${coverageList}" /> - <property name="creatorList" value="${creatorList}" /> - <property name="datesList" value="${datesList}" /> - <property name="descriptionsList" value="${descriptionsList}" /> - <property name="formatList" value="${formatList}" /> - <property name="identifersList" value="${identifersList}" /> - <property name="languageList" value="${languageList}" /> - <property name="publisherList" value="${publisherList}" /> - <property name="relationList" value="${relationList}" /> - <property name="relationForWorkList" value="${relationForWorkList}" /> - <property name="rightList" value="${rightList}" /> - <property name="sourceList" value="${sourceList}" /> - <property name="subjectList" value="${subjectList}" /> - <property name="titleList" value="${titleList}" /> - <property name="typeList" value="${typeList}" /> + <property name="formatField" value="${formatField}" /> + <property name="formatToFilter" value="${formatToFilter}"/> + <property name="dateOfObjectCreation" value="${dateOfObjectCreation}"/> + <property name="relationToFurtherMetadataObject" value="${relationToFurtherMetadataObject}" /> + <property name="repositoryObjectURIPrefix" value="${repositoryObjectURIPrefix}"/> + <property name="FieldForRange" value="${rangeField}"/> + <property name="contributor" value="${contributorList}" /> + <property name="coverage" value="${coverageList}" /> + <property name="creators" value="${creatorList}" /> + <property name="dates" value="${dateList}" /> + <property name="descriptions" value="${descriptionList}" /> + <property name="formats" value="${formatList}" /> + <property name="identifiers" value="${identifierList}" /> + <property name="languages" value="${languageList}" /> + <property name="publishers" value="${publisherList}" /> + <property name="relations" value="${relationList}" /> + <property name="relationsForWork" value="${relationsForWorkList}" /> + <property name="rights" value="${rightsList}" /> + <property name="sources" value="${sourceList}" /> + <property name="subjects" value="${subjectList}" /> + <property name="titles" value="${titleList}" /> + <property name="types" value="${typeList}" /> </bean> <bean id="Record" class="info.textgrid.middleware.RecordDeliverer"> - <constructor-arg ref="ElasticSearchClient" /> + <constructor-arg index="0" ref="ElasticSearchClient" /> <constructor-arg index="1"> - <value>${fields}</value> - </constructor-arg> - <constructor-arg index="2"> <value>${workFields}</value> </constructor-arg> - <constructor-arg index="3"> + <constructor-arg index="2"> <value>${textgrid}</value> </constructor-arg> - <constructor-arg index="4"> + <constructor-arg index="3"> <value>${dariah}</value> </constructor-arg> - <property name="contributorList" value="${contributorList}" /> - <property name="coverageList" value="${coverageList}" /> - <property name="creatorList" value="${creatorList}" /> - <property name="datesList" value="${datesList}" /> - <property name="descriptionsList" value="${descriptionsList}" /> - <property name="formatList" value="${formatList}" /> - <property name="identifersList" value="${identifersList}" /> - <property name="languageList" value="${languageList}" /> - <property name="publisherList" value="${publisherList}" /> - <property name="relationList" value="${relationList}" /> - <property name="relationForWorkList" value="${relationForWorkList}" /> - <property name="rightList" value="${rightList}" /> - <property name="sourceList" value="${sourceList}" /> - <property name="subjectList" value="${subjectList}" /> - <property name="titleList" value="${titleList}" /> - <property name="typeList" value="${typeList}" /> + <property name="formatField" value="${formatField}" /> + <property name="formatToFilter" value="${formatToFilter}"/> + <property name="dateOfObjectCreation" value="${dateOfObjectCreation}"/> + <property name="relationToFurtherMetadataObject" value="${relationToFurtherMetadataObject}" /> + <property name="repositoryObjectURIPrefix" value="${repositoryObjectURIPrefix}"/> + <property name="identifierPrefix" value="${identifierPrefix}"/> + <property name="fields" value="${fields}" /> + <property name="contributor" value="${contributorList}" /> + <property name="coverage" value="${coverageList}" /> + <property name="creator" value="${creatorList}" /> + <property name="dates" value="${dateList}" /> + <property name="descriptions" value="${descriptionList}" /> + <property name="formats" value="${formatList}" /> + <property name="identifiers" value="${identifierList}" /> + <property name="languages" value="${languageList}" /> + <property name="publishers" value="${publisherList}" /> + <property name="relations" value="${relationList}" /> + <property name="relationsForWork" value="${relationsForWorkList}" /> + <property name="rights" value="${rightsList}" /> + <property name="sources" value="${sourceList}" /> + <property name="subjects" value="${subjectList}" /> + <property name="titles" value="${titleList}" /> + <property name="types" value="${typeList}" /> </bean> - <bean id="ListIdentifier" class="info.textgrid.middleware.ListIdentifierDeliverer"> - <property name="rangeField" value="${rangeField}"/> - <property name="identifierListFields" value="created"></property> + <bean id="ListIdentifier" class="info.textgrid.middleware.IdentifierListDeliverer"> + <constructor-arg index="0" ref="ElasticSearchClient" /> + <property name="formatField" value="${formatField}" /> + <property name="formatToFilter" value="${formatToFilter}"/> + <property name="dateOfObjectCreation" value="${dateOfObjectCreation}"/> + <property name="repositoryObjectURIPrefix" value="${repositoryObjectURIPrefix}"/> + <property name="identifierListFields" value="${identifierListFields}"></property> + <property name="FieldForRange" value="${rangeField}"/> + <property name="identifierPrefix" value="${identifierPrefix}"/> </bean> + <bean id="SetDeliverer" class="info.textgrid.middleware.SetDeliverer"> + <constructor-arg ref="ElasticSearchClient" /> + </bean> + + <bean id="MetadataFormatList" class="info.textgrid.middleware.MetadataFormatListDeliverer"> + <constructor-arg ref="ElasticSearchClient" /> + </bean> <!-- REST Interface --> <bean id="rest" class="info.textgrid.middleware.Rest" /> @@ -159,8 +182,11 @@ http://www.springframework.org/schema/util/spring-util-3.1.xsd <bean id="oai" class="info.textgrid.middleware.OAIPMHImpl"> <constructor-arg ref="ElasticSearchClient" /> <constructor-arg ref="RepIdentification"/> + <constructor-arg ref="Record"/> <constructor-arg ref="RecordList"/> - <constructor-arg ref="record"/> + <constructor-arg ref="MetadataFormatList"/> + <constructor-arg ref="SetDeliverer"/> + <constructor-arg ref="ListIdentifier"/> </bean> diff --git a/pom.xml b/pom.xml index f29078f8d74852aefae94a1a120e44d292047415..f77ff666c7beeda1ba61fcca2227c14a16ad0102 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>1.3.10-SNAPSHOT</version> + <version>1.3.11-SNAPSHOT</version> <packaging>pom</packaging> <name>TextGrid :: TG-OAI-PMH :: Parent</name> <properties> @@ -47,6 +47,11 @@ <downloadJavadocs>true</downloadJavadocs> </configuration> </plugin> + <plugin> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>9.2.2.v20140723</version> + </plugin> </plugins> </build> <modules>