diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml index 1eee5520842cdf8475c270d94fbed596a3bc23f7..55763339730524c82c2e4eb2f47ab23096f11361 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.9-SNAPSHOT</version> + <version>1.3.10-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-core</artifactId> - <version>1.3.9-SNAPSHOT</version> + <version>1.3.10-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 6ff296a6a8d26ba47c96f7cb8010edb254530275..10b4a85ab5aa16aa05d47bf4f94b89bf21a61e73 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java @@ -349,13 +349,14 @@ public class DublinCoreFieldLoader { public static List<String> setType(GetResponse responseWorkValues, String[] values){ - for(String field : values){ - if (responseWorkValues.getField(field) != null) { - types.add(responseWorkValues.getField(field) - .getValue().toString()); + if(values != null){ + for(String field : values){ + if (responseWorkValues.getField(field) != null) { + types.add(responseWorkValues.getField(field) + .getValue().toString()); + } } } - return types; } } 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 cf7de915c6250a8166f28b8c1f185d141cd3b686..ee7677ac2032ff25c805ba8d6c67aafb73ed951f 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java @@ -30,6 +30,9 @@ public class IdentifierListDeliverer { private ListIdentifiersType lit = new ListIdentifiersType(); private boolean idExist = true; private OAI_ESClient oaiEsClient; + + private String[] identifierListFields; + private String rangeField; /** @@ -48,14 +51,11 @@ public class IdentifierListDeliverer { private ListIdentifiersType setListIdentifierHeader(String datestamp, String identifier){ HeaderType header = new HeaderType(); - header.setDatestamp(datestamp); header.setIdentifier(identifier); lit.getHeader().add(header); - - return lit; } @@ -91,12 +91,12 @@ public class IdentifierListDeliverer { public ListIdentifiersType getIdentifierList(String from, String to) throws ParseException{ String identifier; - QueryBuilder queryBuilder = QueryBuilders.rangeQuery("created").from(from).to(to); + QueryBuilder queryBuilder = QueryBuilders.rangeQuery(rangeField).from(from).to(to); SearchRequestBuilder getListIdentifiersValuesBuilder = oaiEsClient.getOaiESClient() .prepareSearch(oaiEsClient.getEsIndex()) .setTypes(oaiEsClient.getEsType()) - .addFields("textgridUri", "created") + .addFields(identifierListFields) .setQuery(queryBuilder) .setSize(10); @@ -140,9 +140,7 @@ public class IdentifierListDeliverer { String[] setParts = set.split(":"); - System.out.println(setParts[0] + " " + setParts[1]); - - QueryBuilder rangeQuery = QueryBuilders.rangeQuery("created").from(from).to(to); + QueryBuilder rangeQuery = QueryBuilders.rangeQuery(rangeField).from(from).to(to); QueryBuilder fieldQuer = QueryBuilders.matchPhraseQuery(setParts[0], setParts[1]); @@ -151,7 +149,7 @@ public class IdentifierListDeliverer { SearchRequestBuilder getListIdentifiersValuesBuilder = oaiEsClient.getOaiESClient() .prepareSearch(oaiEsClient.getEsIndex()) .setTypes(oaiEsClient.getEsType()) - .addFields("textgridUri", "created") + .addFields(identifierListFields) .setQuery(boolQuery) .setSize(10); @@ -217,4 +215,20 @@ public class IdentifierListDeliverer { public boolean getIdExist(){ return idExist; } + + public String[] getIdentifierListFields() { + return identifierListFields; + } + + public void setIdentifierListFields(String[] identifierListFields) { + this.identifierListFields = identifierListFields; + } + + public String getFieldForRange() { + return rangeField; + } + + public void setFieldForRange(String fieldForRange) { + this.rangeField = fieldForRange; + } } 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 94875f4baf11e20b13ab04bf008510465ae06364..e09a1e76c2568bca860ef3e7045706425e08e04d 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java @@ -20,10 +20,6 @@ public class MetadataFormatListDeliverer { public ListMetadataFormatsType setMetadataFormatList(String id){ - /*OAI_ESClient esClient = new OAI_ESClient("10.160.254.106", TGConstants.ES_PORT, "tg-search-es-ws4"); - esClient.setEsIndex("textgrid-public-ws4"); - esClient.setEsType("metadata");*/ - GetRequestBuilder recordById = oaiEsClient.getOaiESClient().prepareGet() .setIndex(oaiEsClient.getEsIndex()) .setType(oaiEsClient.getEsType()) 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 4e77725ccacf14251c8a33b26809867de82d77a0..f0e99b99655294ac548a5ae83c36d418846c4f26 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java @@ -47,19 +47,27 @@ public class OAIPMHImpl implements OAIPMHProducer{ private RepIdentification rep; private RecordListDeliverer recordList; private RecordDeliverer recDeliv; + private MetadataFormatListDeliverer metadataFormatList; + private SetDeliverer setList; + private IdentifierListDeliverer identifierList; public OAIPMHImpl(OAI_ESClient oaiEsClient, RepIdentification rep, RecordDeliverer recDeliv, - RecordListDeliverer recordList){ - + RecordListDeliverer recordList, + MetadataFormatListDeliverer metadataFormatList, + SetDeliverer setList, + IdentifierListDeliverer identifierList){ this.oaiEsClient=oaiEsClient; this.rep = rep; this.recDeliv = recDeliv; this.recordList = recordList; + this.metadataFormatList = metadataFormatList; + this.setList = setList; + this.identifierList = identifierList; } public OAIPMHImpl(OAI_ESClient oaiEsClient, RepIdentification rep){ @@ -264,10 +272,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); + //IdentifierListDeliverer listIdDeliv = new IdentifierListDeliverer(oaiEsClient); JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai); - if(listIdDeliv.requestChecker(request)){ + if(identifierList.requestChecker(request)){ if(!request.getMetadataPrefix().equals(TGConstants.METADATA_DC_PREFIX)){ try { @@ -286,8 +294,8 @@ public class OAIPMHImpl implements OAIPMHProducer{ try { if(request.getSet()==null){ - if(listIdDeliv.getIdentifierList(request.getFrom(), request.getUntil())!=null){ - listIDs = listIdDeliv.getIdentifierList(request.getFrom(), request.getUntil()); + if(identifierList.getIdentifierList(request.getFrom(), request.getUntil())!=null){ + listIDs = identifierList.getIdentifierList(request.getFrom(), request.getUntil()); oai.setListIdentifiers(listIDs); }else{ error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " + @@ -295,8 +303,8 @@ public class OAIPMHImpl implements OAIPMHProducer{ oai.getError().add(error.setError(TGConstants.OAI_NO_RECORD_MATCH)); } }else{ - if(request.getSet()!=null && listIdDeliv.getIdentifierListWithSet(request.getFrom(), request.getUntil(), request.getSet())!=null){ - listIDs = listIdDeliv.getIdentifierListWithSet(request.getFrom(), request.getUntil(), request.getSet()); + 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); }else{ error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " + @@ -332,10 +340,10 @@ public class OAIPMHImpl implements OAIPMHProducer{ public JAXBElement<OAIPMHType> listSetsRequest(ObjectFactory obf, OAIPMHType oai, RequestType request){ ListSetsType setList = new ListSetsType(); - SetDeliverer sets = new SetDeliverer(oaiEsClient); + //SetDeliverer sets = new SetDeliverer(oaiEsClient); JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai); - setList = sets.setListBuilder(); + setList = this.setList.setListBuilder(); oai.setListSets(setList); @@ -348,15 +356,14 @@ public class OAIPMHImpl implements OAIPMHProducer{ public JAXBElement<OAIPMHType> listMetadataFormatsRequest(String id, ObjectFactory obf, OAIPMHType oai, RequestType request){ List<String> errorValues = new ArrayList<String>(); ListMetadataFormatsType listMF = new ListMetadataFormatsType(); - MetadataFormatListDeliverer mfld = new MetadataFormatListDeliverer(oaiEsClient); JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai); - if(mfld.requestChecker(request)){ + if(metadataFormatList.requestChecker(request)){ if(id.isEmpty()){ - listMF = mfld.setMetadataFormatListWithoutId(); + listMF = metadataFormatList.setMetadataFormatListWithoutId(); }else { - listMF = mfld.setMetadataFormatList(request.getIdentifier()); + listMF = metadataFormatList.setMetadataFormatList(request.getIdentifier()); } if(listMF!=null){ 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 80030e77ee274cde4b45a3de8b4899a39a3c0a47..dbfdae6cd7d34fe78a857d3105d80f8e247d54a3 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java @@ -54,6 +54,23 @@ public class RecordDeliverer { private List<String> titles = new ArrayList<String>(); private List<String> types = new ArrayList<String>(); + private String[] contributorList; + private String[] coverageList; + private String[] creatorList; + private String[] dateList; + private String[] descriptionList; + private String[] formatList; + private String[] identifierList; + private String[] languageList; + private String[] publisherList; + private String[] relationList; + private String[] relationForWorkList; + private String[] rightList; + private String[] sourceList; + private String[] subjectList; + private String[] titleList; + private String[] typeList; + private static org.apache.commons.logging.Log log = LogFactory.getLog(RecordDeliverer.class); private RecordType record = new RecordType(); @@ -159,24 +176,24 @@ public class RecordDeliverer { } - public void putContentIntoDCFieldLists(GetResponse responseWorkValues, GetResponse responseWorkValues2){ + public void putContentIntoDCFieldLists(GetResponse responseWorkValues, GetResponse relatedWorkObject){ - contributors = DublinCoreFieldLoader.setContributor(responseWorkValues, TGConstants.CONTRIBUTOR_LIST); - formats = DublinCoreFieldLoader.setFormat(responseWorkValues, TGConstants.FORMAT_LIST); - identifiers = DublinCoreFieldLoader.setIdentifier(responseWorkValues, TGConstants.IDENTIFIER_LIST); - languages = DublinCoreFieldLoader.setLanguage(responseWorkValues, TGConstants.LANGUAGE_LIST); - publishers = DublinCoreFieldLoader.setPublisher(responseWorkValues, TGConstants.PUBLISHER_LIST); - relations = DublinCoreFieldLoader.setRelationForWork(responseWorkValues, TGConstants.RELATIONS_LIST); - rights = DublinCoreFieldLoader.setRights(responseWorkValues, TGConstants.RIGHTS_LIST); - sources = DublinCoreFieldLoader.setSources(responseWorkValues, TGConstants.SOURCE_LIST); - titles = DublinCoreFieldLoader.setTitle(responseWorkValues, TGConstants.TITLE_LIST); - coverages = DublinCoreFieldLoader.setCoverage(responseWorkValues, TGConstants.COVERAGE_LIST); - creators = DublinCoreFieldLoader.setCreator(responseWorkValues2, TGConstants.CREATOR_LIST); - dates = DublinCoreFieldLoader.setDate(responseWorkValues2, TGConstants.DATE_LIST); - descriptions = DublinCoreFieldLoader.setDescription(responseWorkValues2, TGConstants.DESCRIPTION_LIST); - relations = DublinCoreFieldLoader.setRelationForWork(responseWorkValues2, TGConstants.RELATIONS_FOR_WORK_LIST); - subjects = DublinCoreFieldLoader.setSubject(responseWorkValues2, TGConstants.SUBJECT_LIST); - types = DublinCoreFieldLoader.setType(responseWorkValues2, TGConstants.TYPE_LIST); + contributors = DublinCoreFieldLoader.setContributor(responseWorkValues, contributorList); + formats = DublinCoreFieldLoader.setFormat(responseWorkValues, formatList); + identifiers = DublinCoreFieldLoader.setIdentifier(responseWorkValues, identifierList); + languages = DublinCoreFieldLoader.setLanguage(responseWorkValues, languageList); + publishers = DublinCoreFieldLoader.setPublisher(responseWorkValues, publisherList); + relations = DublinCoreFieldLoader.setRelationForWork(responseWorkValues, relationList); + rights = DublinCoreFieldLoader.setRights(responseWorkValues, rightList); + sources = DublinCoreFieldLoader.setSources(responseWorkValues, sourceList); + titles = DublinCoreFieldLoader.setTitle(responseWorkValues, titleList); + coverages = DublinCoreFieldLoader.setCoverage(responseWorkValues, coverageList); + creators = DublinCoreFieldLoader.setCreator(relatedWorkObject, creatorList); + dates = DublinCoreFieldLoader.setDate(relatedWorkObject, dateList); + descriptions = DublinCoreFieldLoader.setDescription(relatedWorkObject, descriptionList); + relations = DublinCoreFieldLoader.setRelationForWork(relatedWorkObject, relationForWorkList); + subjects = DublinCoreFieldLoader.setSubject(relatedWorkObject, subjectList); + types = DublinCoreFieldLoader.setType(relatedWorkObject, typeList); } @@ -205,7 +222,71 @@ public class RecordDeliverer { dbc.setType(types); } - + + public void setContributor(String[] contributorList){ + this.contributorList = contributorList; + } + + public void setCoverage(String[] coveragesList){ + this.coverageList = coveragesList; + } + + public void setCreators(String[] creatorsList){ + this.creatorList = creatorsList; + } + + public void setDates(String[] datesList){ + this.dateList = datesList; + } + + 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; + } + /** * Checking if necessary values are set and not allowed values are not set * @param request the request from the client 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 12a6e5ccb3d8a8d4f7988a0e625fdb3a25008188..f2b3e5bf901920ecae58a9394997cf9419e528c6 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java @@ -75,7 +75,25 @@ public class RecordListDeliverer { private List<String> subjects = new ArrayList<String>(); private List<String> titles = new ArrayList<String>(); private List<String> types = new ArrayList<String>(); - + + + private String[] contributorList; + private String[] coverageList; + private String[] creatorList; + private String[] dateList; + private String[] descriptionList; + private String[] formatList; + private String[] identifierList; + private String[] languageList; + private String[] publisherList; + private String[] relationList; + private String[] relationForWorkList; + private String[] rightList; + private String[] sourceList; + private String[] subjectList; + private String[] titleList; + private String[] typeList; + // TODO Make configurable! //private String aggregatorURL = "http://textgrid-esx2.gwdg.de/1.0/aggregator/teicorpus/"; @@ -111,9 +129,12 @@ 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; } @@ -169,11 +190,12 @@ 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 .length()); - + System.out.println(workUri); putContentIntoDCFieldLists(hit, furtherDCElements(workUri, oaiEsClient)); } @@ -185,24 +207,26 @@ public class RecordListDeliverer { } } + + public void putContentIntoDCFieldLists(SearchHit hit, GetResponse responseWorkValues){ - contributors = DublinCoreFieldLoader.setContributor(hit, TGConstants.CONTRIBUTOR_LIST); - formats = DublinCoreFieldLoader.setFormat(hit, TGConstants.FORMAT_LIST); - identifiers = DublinCoreFieldLoader.setIdentifier(hit, TGConstants.IDENTIFIER_LIST); - languages = DublinCoreFieldLoader.setLanguage(hit, TGConstants.LANGUAGE_LIST); - publishers = DublinCoreFieldLoader.setPublisher(hit, TGConstants.PUBLISHER_LIST); - relations = DublinCoreFieldLoader.setRelation(hit, TGConstants.RELATIONS_LIST); - rights = DublinCoreFieldLoader.setRights(hit, TGConstants.RIGHTS_LIST); - sources = DublinCoreFieldLoader.setSources(hit, TGConstants.SOURCE_LIST); - titles = DublinCoreFieldLoader.setTitle(hit, TGConstants.TITLE_LIST); - coverages = DublinCoreFieldLoader.setCoverage(responseWorkValues, TGConstants.COVERAGE_LIST); - creators = DublinCoreFieldLoader.setCreator(responseWorkValues, TGConstants.CREATOR_LIST); - dates = DublinCoreFieldLoader.setDate(responseWorkValues, TGConstants.DATE_LIST); - descriptions = DublinCoreFieldLoader.setDescription(responseWorkValues, TGConstants.DESCRIPTION_LIST); - relations = DublinCoreFieldLoader.setRelationForWork(responseWorkValues, TGConstants.RELATIONS_FOR_WORK_LIST); - subjects = DublinCoreFieldLoader.setSubject(responseWorkValues, TGConstants.SUBJECT_LIST); - types = DublinCoreFieldLoader.setType(responseWorkValues, TGConstants.TYPE_LIST); + contributors = DublinCoreFieldLoader.setContributor(hit, contributorList); + coverages = DublinCoreFieldLoader.setCoverage(responseWorkValues, coverageList); + creators = DublinCoreFieldLoader.setCreator(responseWorkValues, creatorList); + dates = DublinCoreFieldLoader.setDate(responseWorkValues, dateList); + descriptions = DublinCoreFieldLoader.setDescription(responseWorkValues, descriptionList); + formats = DublinCoreFieldLoader.setFormat(hit, formatList); + identifiers = DublinCoreFieldLoader.setIdentifier(hit, identifierList); + languages = DublinCoreFieldLoader.setLanguage(hit, languageList); + publishers = DublinCoreFieldLoader.setPublisher(hit, publisherList); + relations = DublinCoreFieldLoader.setRelation(hit, relationList); + relations = DublinCoreFieldLoader.setRelationForWork(responseWorkValues, relationForWorkList); + rights = DublinCoreFieldLoader.setRights(hit, rightList); + sources = DublinCoreFieldLoader.setSources(hit, sourceList); + subjects = DublinCoreFieldLoader.setSources(hit, subjectList); + titles = DublinCoreFieldLoader.setTitle(hit, titleList); + types = DublinCoreFieldLoader.setType(responseWorkValues, typeList); } @@ -320,6 +344,70 @@ public class RecordListDeliverer { this.types.clear(); } + public void setContributor(String[] contributorList){ + this.contributorList = contributorList; + } + + public void setCoverage(String[] coveragesList){ + this.coverageList = coveragesList; + } + + public void setCreators(String[] creatorsList){ + this.creatorList = creatorsList; + } + + public void setDates(String[] datesList){ + this.dateList = datesList; + } + + 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; + } + /** * @param request * @return 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 7bdd71880f7080c43a377188ed2e168a8c45fd97..e9947c44a8aff88cae7fe7da2aca02b007ec8cdb 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java @@ -111,13 +111,8 @@ public final class TGConstants { public static final String[] SUBJECT_LIST = {WORK_ID}; public static final String[] TITLE_LIST = {TITLE}; - - - - - - - public static final String[] TYPE_LIST = {WORK_GENRE, WORK_TYPE}; + public static final String[] IDENTIFIER_LIST_FIELDS = {URI, CREATED}; + 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 b8667bbe8614c15056b53fc0fcb578ada39ef12d..33dadfd14707acc3c2b9891108c4c95587af728f 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -24,18 +24,25 @@ public class OaiPmhTest { 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 RecordListDeliverer recordList = new RecordListDeliverer(oaiEsClient, TGConstants.TGFields, TGConstants.TGWorkFields, true, false); + private MetadataFormatListDeliverer metadataFormatList = new MetadataFormatListDeliverer(oaiEsClient); + private SetDeliverer setList = new SetDeliverer(oaiEsClient); + private IdentifierListDeliverer identifierList = new IdentifierListDeliverer(oaiEsClient); - //private OAIPMHImpl testRequest = new OAIPMHImpl(oaiEsClient, record); - //private OAIPMHImpl repIdentificationTestRequest = new OAIPMHImpl(oaiEsClient, rep); - //private OAIPMHImpl recordListRequest = new OAIPMHImpl(oaiEsClient, recordList); - private OAIPMHImpl request = new OAIPMHImpl(oaiEsClient, rep, record, recordList); + private OAIPMHImpl request = new OAIPMHImpl( + oaiEsClient, + rep, + record, + recordList, + metadataFormatList, + setList, + identifierList); @BeforeClass public static void setUp() throws Exception { - oaiEsClient = new OAI_ESClient("localhost", 9302, "esx-1-test-instance"); + oaiEsClient = new OAI_ESClient("localhost", 9302, "tg-dev1-test-instance"); oaiEsClient.setEsIndex("textgrid-public"); oaiEsClient.setEsType("metadata"); @@ -108,7 +115,6 @@ public class OaiPmhTest { JAXB.marshal(z, System.out); System.out.println("-----------------------------------\n"); } - @Test @Ignore @@ -124,10 +130,27 @@ public class OaiPmhTest { @Test @Ignore public void testGetRequestGetRecordError2() throws ParseException { - System.out - .println("Test for the verb \"GetRecord\" with succesfull response"); + + record.setContributor(TGConstants.CONTRIBUTOR_LIST); + record.setCoverage(TGConstants.COVERAGE_LIST); + record.setCreators(TGConstants.CREATOR_LIST); + record.setDates(TGConstants.DATE_LIST); + record.setDescriptions(TGConstants.DESCRIPTION_LIST); + record.setFormats(TGConstants.FORMAT_LIST); + record.setIdentifiers(TGConstants.IDENTIFIER_LIST); + record.setLanguages(TGConstants.LANGUAGE_LIST); + record.setPublishers(TGConstants.PUBLISHER_LIST); + record.setRelations(TGConstants.RELATIONS_LIST); + record.setRelationsForWork(TGConstants.RELATIONS_FOR_WORK_LIST); + record.setRights(TGConstants.RIGHTS_LIST); + record.setSources(TGConstants.SOURCE_LIST); + record.setSubjects(TGConstants.SUBJECT_LIST); + record.setTitles(TGConstants.TITLE_LIST); + record.setTypes(TGConstants.TYPE_LIST); + + System.out.println("Test for the verb \"GetRecord\" with succesfull response"); JAXBElement<OAIPMHType> p = request.getRequest("GetRecord", - "wr71.0", "oai_dc", "", "", "", ""); + "7t.0", "oai_dc", "", "", "", ""); JAXB.marshal(p, System.out); System.out.println("-----------------------------------\n"); } @@ -174,11 +197,37 @@ public class OaiPmhTest { System.out); System.out.println("-----------------------------------\n"); } + @Test + @Ignore + public void testListRecords2() throws ParseException{ + recordList.setContributor(TGConstants.CONTRIBUTOR_LIST); + recordList.setCoverage(TGConstants.COVERAGE_LIST); + recordList.setCreators(TGConstants.CREATOR_LIST); + recordList.setDates(TGConstants.DATE_LIST); + recordList.setDescriptions(TGConstants.DESCRIPTION_LIST); + recordList.setFormats(TGConstants.FORMAT_LIST); + recordList.setIdentifiers(TGConstants.IDENTIFIER_LIST); + recordList.setLanguages(TGConstants.LANGUAGE_LIST); + recordList.setPublishers(TGConstants.PUBLISHER_LIST); + recordList.setRelations(TGConstants.RELATIONS_LIST); + recordList.setRelationsForWork(TGConstants.RELATIONS_FOR_WORK_LIST); + recordList.setRights(TGConstants.RIGHTS_LIST); + recordList.setSources(TGConstants.SOURCE_LIST); + recordList.setSubjects(TGConstants.SUBJECT_LIST); + recordList.setTitles(TGConstants.TITLE_LIST); + recordList.setTypes(TGConstants.TYPE_LIST); + + + JAXBElement<OAIPMHType> r = request.getRequest("ListRecords", "", + "oai_dc", "", "", "", ""); JAXB.marshal(r, + System.out); System.out.println("-----------------------------------\n"); + } + @Test @Ignore public void testListMetadataFormats() throws ParseException{ JAXBElement<OAIPMHType> r = request.getRequest("ListMetadataFormats", - "wr67.0", "", "", "", "", ""); JAXB.marshal(r, System.out); + "7t.0", "", "", "", "", ""); JAXB.marshal(r, System.out); System.out.println("-----------------------------------\n"); } @@ -195,7 +244,9 @@ public class OaiPmhTest { @Test @Ignore public void testListIdentifiers() throws ParseException{ - + identifierList.setFieldForRange(TGConstants.RANGE_FIELD); + identifierList.setIdentifierListFields(TGConstants.IDENTIFIER_LIST_FIELDS); + 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 32e139608d867026c630ec5a216da220267f515d..ae01b7aa7707bab11baf57d66c9cc11688facbe2 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.9-SNAPSHOT</version> + <version>1.3.10-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-webapp</artifactId> <packaging>war</packaging> - <version>1.3.9-SNAPSHOT</version> + <version>1.3.10-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 9cd691dc3f0a9a4396ac04eaee10dfedff1c5bfe..be8b69dc50087ddd92528ca3c989202eeffb7e8b 100644 --- a/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml +++ b/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml @@ -74,6 +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="1"> <value>${fields}</value> </constructor-arg> @@ -86,9 +87,28 @@ 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}" /> </bean> + + <bean id="Record" class="info.textgrid.middleware.RecordDeliverer"> + <constructor-arg ref="ElasticSearchClient" /> <constructor-arg index="1"> <value>${fields}</value> </constructor-arg> @@ -101,8 +121,31 @@ 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}" /> </bean> + + <bean id="ListIdentifier" class="info.textgrid.middleware.ListIdentifierDeliverer"> + <property name="rangeField" value="${rangeField}"/> + <property name="identifierListFields" value="created"></property> + </bean> + + <!-- REST Interface --> <bean id="rest" class="info.textgrid.middleware.Rest" /> @@ -115,7 +158,9 @@ 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="RepIdentification"/> + <constructor-arg ref="RecordList"/> + <constructor-arg ref="record"/> </bean> diff --git a/pom.xml b/pom.xml index 3792c0ab0ddd56e4030292af09c1674c9437e278..f29078f8d74852aefae94a1a120e44d292047415 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.9-SNAPSHOT</version> + <version>1.3.10-SNAPSHOT</version> <packaging>pom</packaging> <name>TextGrid :: TG-OAI-PMH :: Parent</name> <properties>