diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml index 75858b55eaf10bb377a5914a32426a98603fbefc..7bcb7e48930f357a45b85b3fe5aafcd3e19a39bf 100644 --- a/oaipmh-core/pom.xml +++ b/oaipmh-core/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>oaipmh</artifactId> <groupId>info.textgrid.middleware</groupId> - <version>3.1.4-SNAPSHOT</version> + <version>3.1.5-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-core</artifactId> 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 90cda9e10aff7e5951d5b99aabaa658d9dc8c818..23a08fc77dcc0abea9f41cb865cf3c373df9ae56 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java @@ -11,16 +11,17 @@ import org.elasticsearch.search.SearchHit; /** * <p> - * The Dublin Core Field Loader takes the results of the - * ElasticSearch request and puts them into a String-List. - * For each element of Dublin Core exists a seperate list. + * The Dublin Core Field Loader takes the results of the ElasticSearch request and puts them into a + * String-List. For each element of Dublin Core exists a seperate list. + * </p> * - * For each element two functions are necessary because the datatype "SeachHit" - * could contain more then one results and the GetResponse just one + * <p> + * For each element two functions are necessary because the datatype "SeachHit" could contain more + * then one results and the GetResponse just one * </p> * - * @author Maximilian Brodhun, SUB Goettingen - * @author Stefan E. Funk, SUB Goettingen + * @author Maximilian Brodhun, SUB Göttingen + * @author Stefan E. Funk, SUB Göttingen * @version 24.05.2019 * @since 18.02.2014 */ @@ -160,7 +161,7 @@ public class DublinCoreFieldLoader { try { // FIXME DO SET VALUES VIA CONFIG FILE! if (responseWorkValues.getField(field) != null) { - dates.add(OAIPMHUtillities + dates.add(OAIPMHUtilities .convertDateFormat(responseWorkValues.getField(field).getValue().toString()) .toXMLFormat()); } @@ -196,7 +197,7 @@ public class DublinCoreFieldLoader { if (hit.getFields().get(field) != null) { try { - dates.add(OAIPMHUtillities.convertDateFormat( + dates.add(OAIPMHUtilities.convertDateFormat( hit.getFields().get(field).values().get(0).toString()).toXMLFormat()); } catch (ParseException e) { // TODO Auto-generated catch block diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java index e740ef3f4f192bf602209ce1768aa289532393bd..6dd234652ce7fac69e2b44696972cd27e38c449d 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java @@ -141,7 +141,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { String datestamp = hit.getFields().get(this.dateOfObjectCreation).getValue().toString(); try { - datestamp = OAIPMHUtillities.convertDateFormat(datestamp).toXMLFormat(); + datestamp = OAIPMHUtilities.convertDateFormat(datestamp).toXMLFormat(); } catch (ParseException e1) { log.debug(e1); } catch (DatatypeConfigurationException e1) { @@ -158,7 +158,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { try { this.datestamp = hit.getFields().get(this.dateOfObjectCreation).getValue().toString(); - this.datestamp = OAIPMHUtillities.convertDateFormat(this.datestamp).toXMLFormat(); + this.datestamp = OAIPMHUtilities.convertDateFormat(this.datestamp).toXMLFormat(); } catch (ParseException e1) { log.debug(e1); } catch (DatatypeConfigurationException e1) { @@ -171,7 +171,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { } // Check the need for a resumption token! - ResumptionTokenType resTokenForResponse = OAIPMHUtillities.getResumptionToken( + ResumptionTokenType resTokenForResponse = OAIPMHUtilities.getResumptionToken( listFurtherValues.getHits().getTotalHits(), resumptionToken, cursorCollector, listFurtherValues.getScrollId(), this.searchResponseSize, i); if (resTokenForResponse != null) { diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java index d9b56b130a4c3a87da9d1aff692770071bfca300..d6366a3337289940626552e100262b2dda2b1cce 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java @@ -59,7 +59,7 @@ public class IdentifierListDelivererIDIOM extends IdentifierListDelivererAbstrac } // Check the need for a resumption token! - ResumptionTokenType resTokenForResponse = OAIPMHUtillities.getResumptionToken(listSize, + ResumptionTokenType resTokenForResponse = OAIPMHUtilities.getResumptionToken(listSize, resumptionToken, cursorCollector, resTokenValue, 30, i); if (resTokenForResponse != null) { 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 dfc6d91aad5ea0a6eae059ac2f00513a22f05898..6f43397e45deb2dfea88839daab401e6f5acc8ea 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java @@ -6,14 +6,24 @@ import info.textgrid.middleware.oaipmh.ListMetadataFormatsType; import info.textgrid.middleware.oaipmh.MetadataFormatType; import info.textgrid.middleware.oaipmh.RequestType; +/** + * + */ public class MetadataFormatListDeliverer { private boolean idExist = true; + /** + * + */ public MetadataFormatListDeliverer() { - + // } + /** + * @param id + * @return + */ public ListMetadataFormatsType setMetadataFormatList(String id) { ListMetadataFormatsType lmft = new ListMetadataFormatsType(); @@ -29,9 +39,9 @@ public class MetadataFormatListDeliverer { if (tgObject.isExists()) { setIdExist(true); - mft.setMetadataNamespace("http://www.openarchives.org/OAI/2.0/oai_dc/"); mft.setMetadataPrefix(TGConstants.METADATA_DC_PREFIX); - mft.setSchema("https://www.openarchives.org/OAI/2.0/oai_dc.xsd"); + mft.setMetadataNamespace(OAIPMHUtilities.OAIDC_NAMESPACE); + mft.setSchema(OAIPMHUtilities.OAIDC_SCHEMA_LOCATION); lmft.getMetadataFormat().add(mft); } else { setIdExist(false); @@ -41,26 +51,34 @@ public class MetadataFormatListDeliverer { return lmft; } + /** + * @return + */ public ListMetadataFormatsType setMetadataFormatListWithoutId() { ListMetadataFormatsType lmft = new ListMetadataFormatsType(); MetadataFormatType mft = new MetadataFormatType(); MetadataFormatType mftIdiomMets = 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"); + mft.setMetadataNamespace(OAIPMHUtilities.OAIDC_NAMESPACE); + mft.setSchema(OAIPMHUtilities.OAIDC_SCHEMA_LOCATION); lmft.getMetadataFormat().add(mft); - mftIdiomMets.setMetadataNamespace("http://www.loc.gov/METS/"); mftIdiomMets.setMetadataPrefix(TGConstants.METADATA_IDIOM_PREFIX); - mftIdiomMets.setSchema("http://www.loc.gov/standards/mets/mets.xsd"); + mftIdiomMets.setMetadataNamespace(OAIPMHUtilities.METS_NAMESPACE); + mftIdiomMets.setSchema(OAIPMHUtilities.METS_SCHEMA_LOCATION); lmft.getMetadataFormat().add(mftIdiomMets); - return lmft; + return lmft; } + /** + * @param request + * @return + */ public boolean requestChecker(RequestType request) { + boolean requestCheck = true; if (request.getFrom() != null || @@ -75,13 +93,18 @@ public class MetadataFormatListDeliverer { } return requestCheck; - } + /** + * @return + */ public boolean isIdExist() { return this.idExist; } + /** + * @param idExist + */ public void setIdExist(boolean idExist) { this.idExist = idExist; } 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 55f9e4e868baef7363bfe7db0fcb2419abf650eb..69ae318a94cd4e250f1cc2dc9373574f70968261 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java @@ -32,22 +32,11 @@ import info.textgrid.middleware.oaipmh.VerbType; * * @author Maximilian Brodhun, SUB Göttingen * @author Stefan E. Funk, SUB Göttingen - * @version 2019-10-21 + * @version 2019-10-29 * @since 2014-01-29 */ public class OAIPMHImpl implements OAIPMHProducer { - // ** - // FINALS - // ** - - private static final String OAIPMH_SCHEMA_LOCATION = - "http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"; - private static final String OAIDC_SCHEMA_LOCATION = - "http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"; - private static final String DC_SCHEMA_LOCATION = - "http://purl.org/dc/elements/1.1/ https://dublincore.org/schemas/xmls/simpledc20021212.xsd"; - // ** // STATICS // ** @@ -604,8 +593,8 @@ public class OAIPMHImpl implements OAIPMHProducer { // Set the responseDate of today. try { XMLGregorianCalendar convertedDateFormat; - convertedDateFormat = OAIPMHUtillities - .convertDateFormat(OAIPMHUtillities.getXMLGregorianCalendarNow().toString()); + convertedDateFormat = OAIPMHUtilities + .convertDateFormat(OAIPMHUtilities.getXMLGregorianCalendarNow().toString()); response.setResponseDate(convertedDateFormat); } catch (ParseException e) { this.log.debug("can not parse date format"); @@ -670,10 +659,13 @@ public class OAIPMHImpl implements OAIPMHProducer { String result = ""; // Always add OAIPMH schema location. - String schemaLocations = OAIPMH_SCHEMA_LOCATION; + String schemaLocations = + OAIPMHUtilities.OAIPMH_NAMESPACE + " " + OAIPMHUtilities.OAIPMH_SCHEMA_LOCATION; // Add OAI_DC and DC schema location if needed. if (theVerb.equals("GetRecord") || theVerb.endsWith("ListRecords")) { - schemaLocations += OAIDC_SCHEMA_LOCATION + " " + DC_SCHEMA_LOCATION; + schemaLocations += + OAIPMHUtilities.OAIDC_NAMESPACE + " " + OAIPMHUtilities.OAIDC_SCHEMA_LOCATION; + schemaLocations += OAIPMHUtilities.DC_NAMESPACE + " " + OAIPMHUtilities.DC_SCHEMA_LOCATION; } // PLEASE NOTE We always get oai_dc and dc prefixes defined in the root element due to the diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtillities.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java similarity index 85% rename from oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtillities.java rename to oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java index 3fb618339e11c2d6a310704680367f0ed3209985..1457e8932cfedd5fae9c8c5a729c4c1c8c02e811 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtillities.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java @@ -18,24 +18,41 @@ import info.textgrid.middleware.oaipmh.ResumptionTokenType; /** * <p> * OAIPMHUtillities is responsible to implement all necessary functions to implement the arguments - * of a request + * of a request. * </p> * - * @author Maximilian Brodhun: SUB - * @version 1.0 - * @since 29.01.2014 - * + * @author Maximilian Brodhun, SUB Göttingen + * @version 2019-10-29 + * @since 2014-01-29 */ +public class OAIPMHUtilities { + + // ** + // FINALS + // ** + + public static final String OAIPMH_NAMESPACE = "http://www.openarchives.org/OAI/2.0/"; + public static final String OAIPMH_SCHEMA_LOCATION = + "http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"; + public static final String OAIDC_NAMESPACE = "http://www.openarchives.org/OAI/2.0/oai_dc/"; + public static final String OAIDC_SCHEMA_LOCATION = + "http://www.openarchives.org/OAI/2.0/oai_dc.xsd"; + public static final String DC_NAMESPACE = "http://purl.org/dc/elements/1.1/"; + public static final String DC_SCHEMA_LOCATION = + "https://dublincore.org/schemas/xmls/simpledc20021212.xsd"; + public static final String METS_NAMESPACE = "http://www.loc.gov/METS/"; + public static final String METS_SCHEMA_LOCATION = "http://www.loc.gov/standards/mets/mets.xsd"; + + // ** + // STATICS + // ** -public class OAIPMHUtillities { - - /** - * - */ private static org.apache.commons.logging.Log log = LogFactory.getLog(OAIPMHImpl.class); /** - * Since textGrid just supports dc the only returned MetadataFormat is dublinCore + * <p> + * Since TextGrid just supports DC the only returned MetadataFormat is DublinCore. + * </p> * * @return */ diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java index 66551599ffe3321ecc718a5d1f2af317333f239f..be88db7b8646cb9735e96be9703bc0d15c7fd777 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java @@ -99,7 +99,7 @@ public class RecordDelivererDC extends RecordDelivererAbstract { if (esResultObject.getField(this.dateOfObjectCreation) != null) { try { - dateOfCreation = OAIPMHUtillities + dateOfCreation = OAIPMHUtilities .convertDateFormat( esResultObject.getField(this.dateOfObjectCreation).getValue().toString()) .toXMLFormat(); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java index 7a3939fbac29ff9e49c7e57e25056ecd0b7c68e0..3fc1607fb47a11f216458f80be0995cb075c5347 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java @@ -158,7 +158,7 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { HeaderType recordHeader = new HeaderType(); recordHeader.setIdentifier(identifier); - recordHeader.setDatestamp(OAIPMHUtillities.datestampAsString(dateOfCreation)); + recordHeader.setDatestamp(OAIPMHUtilities.datestampAsString(dateOfCreation)); this.record.setHeader(recordHeader); // return recordHeader; } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java index 7b434caeb0313fc9b58394c743fed69ff41fc7e1..621f45e1c84bff637d80cc36963de3a1e8119e00 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java @@ -178,7 +178,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { if (hit.getFields().get(this.dateOfObjectCreation) != null) { String datestamp = hit.getFields().get(this.dateOfObjectCreation).getValue().toString(); - datestamp = OAIPMHUtillities.convertDateFormat(datestamp).toXMLFormat(); + datestamp = OAIPMHUtilities.convertDateFormat(datestamp).toXMLFormat(); } } catch (ParseException e1) { log.debug(e1); @@ -219,7 +219,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { } // Check the need for a resumption token! - ResumptionTokenType resTokenForResponse = OAIPMHUtillities.getResumptionToken( + ResumptionTokenType resTokenForResponse = OAIPMHUtilities.getResumptionToken( completeListSize, resumptionToken, cursorCollector, scrollID, this.searchResponseSize, i); if (resTokenForResponse != null) { recordList.setResumptionToken(resTokenForResponse); @@ -374,7 +374,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { // Set date in XML format. try { - header.setDatestamp(OAIPMHUtillities.convertDateFormat(this.modifiedValue).toXMLFormat()); + header.setDatestamp(OAIPMHUtilities.convertDateFormat(this.modifiedValue).toXMLFormat()); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java index 4eacaf08c7cb0c0444db87991807a9180fefc5e7..3f9453d92d9ee281432fe4e5de0ba99e6a7e90aa 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java @@ -85,7 +85,7 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { } // Check the need for a resumption token! - ResumptionTokenType resTokenForResponse = OAIPMHUtillities.getResumptionToken(listSize, + ResumptionTokenType resTokenForResponse = OAIPMHUtilities.getResumptionToken(listSize, resumptionToken, cursorCollector, resTokenValue, 30, i); if (resTokenForResponse != null) { 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 919ebcd4f7477823f83dd59588dc30399311884f..50a57cf9d37fbe3eadbd3781c7d04a7fe53d2ef4 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java @@ -22,7 +22,7 @@ public final class TGConstants { Arrays.asList("textgrid-support@gwdg.de"); /* - * Rep Identification String Constants + * Repository Identification String Constants */ public static final String TG_REP_BASEURL = "www.textgridrep.de"; 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 a3bdc2e3c327a1392f93aed330ff21448fc9fe80..8aa5dc45fa0756caadef55e63921b171be65261c 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -87,7 +87,7 @@ public class OaiPmhTest { @Ignore public void testDateNow() throws DatatypeConfigurationException { System.out.println("---------------Test Datestamp Parsing with now date -----------------"); - XMLGregorianCalendar nowTest = OAIPMHUtillities.getXMLGregorianCalendarNow(); + XMLGregorianCalendar nowTest = OAIPMHUtilities.getXMLGregorianCalendarNow(); System.out.println(nowTest); System.out.println("-------------------------------------------"); } @@ -102,7 +102,7 @@ public class OaiPmhTest { String dateformatbefore = "2012-02-06T20:48:39.614+01:00"; System.out.println("--------- Test Datestamp Parsing with a given date ---------------"); System.out.println("Original date: " + dateformatbefore); - XMLGregorianCalendar testDate = OAIPMHUtillities.convertDateFormat(dateformatbefore); + XMLGregorianCalendar testDate = OAIPMHUtilities.convertDateFormat(dateformatbefore); System.out.println("Date after conversion: " + testDate); System.out.println("---------------------------------------------"); } @@ -117,7 +117,7 @@ public class OaiPmhTest { String dateformatbefore = "2012-02-06T20:48:39.614+01:00"; System.out.println("------------String Version-------------------"); System.out.println("Original date: " + dateformatbefore); - String testDate = OAIPMHUtillities.datestampAsString(dateformatbefore); + String testDate = OAIPMHUtilities.datestampAsString(dateformatbefore); System.out.println("Date after conversion: " + testDate); System.out.println("---------------------------------------------"); } diff --git a/oaipmh-webapp/pom.xml b/oaipmh-webapp/pom.xml index 8c69ae8459d3df37c05ae4789d65fa0158419d6b..b3633f6ded39dfd790426a86fdecfde0dee4f44f 100644 --- a/oaipmh-webapp/pom.xml +++ b/oaipmh-webapp/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>oaipmh</artifactId> <groupId>info.textgrid.middleware</groupId> - <version>3.1.4-SNAPSHOT</version> + <version>3.1.5-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-webapp</artifactId> diff --git a/pom.xml b/pom.xml index bbffdac54c876be96996df45967210897a9c33b8..43244e7556ec3749aa4471ce5553f8f5bf4ecec9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh</artifactId> - <version>3.1.4-SNAPSHOT</version> + <version>3.1.5-SNAPSHOT</version> <packaging>pom</packaging> <name>DARIAHDE :: OAI-PMH DataProvider</name> <properties>