From 8e83dce720789160ae867c53b7da63b4f31f1b8a Mon Sep 17 00:00:00 2001 From: "Stefan E. Funk" <funk@sub.uni-goettingen.de> Date: Thu, 8 Jul 2021 18:49:32 +0200 Subject: [PATCH] Remove sysouts Add logs Correct loggers Remove deprecated classes (one stays, because it is yst used!) Increase version --- oaipmh-core/pom.xml | 2 +- .../middleware/DublinCoreBuilder.java | 26 +++++-------------- .../middleware/DublinCoreFieldLoader.java | 24 +++++++++++++---- .../IdentifierListDelivererIDIOM.java | 8 +++++- .../textgrid/middleware/OAIPMHUtilities.java | 5 ++-- .../textgrid/middleware/OpenAireRecord.java | 24 ++++++++++++----- .../middleware/RecordDelivererDATACITE.java | 4 ++- .../middleware/RecordDelivererIDIOM.java | 3 ++- .../RecordListDelivererAbstract.java | 21 +++++++++------ .../middleware/RecordListDelivererDC.java | 7 +++-- .../middleware/RecordListDelivererIDIOM.java | 10 +++---- .../middleware/OaiPmhTextgridOnlineTests.java | 2 +- oaipmh-webapp/pom.xml | 2 +- pom.xml | 2 +- 14 files changed, 80 insertions(+), 60 deletions(-) diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml index ca53bd66..1cd86897 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.4.1-SNAPSHOT</version> + <version>3.4.2-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-core</artifactId> diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java index d4ac8719..35dc7c8e 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java @@ -4,6 +4,8 @@ import java.text.ParseException; import java.util.List; import javax.xml.bind.JAXBElement; import javax.xml.datatype.DatatypeConfigurationException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import info.textgrid.middleware.oaipmh.ElementType; import info.textgrid.middleware.oaipmh.MetadataType; import info.textgrid.middleware.oaipmh.OaiDcType; @@ -24,6 +26,8 @@ import info.textgrid.middleware.oaipmh.ObjectFactory; public final class DublinCoreBuilder { + private static Log log = LogFactory.getLog(RecordListDelivererAbstract.class); + // Object factory for all the DC elements. private static ObjectFactory oaiDcObj = new ObjectFactory(); @@ -163,12 +167,12 @@ public final class DublinCoreBuilder { */ public void setIdentifier(List<String> identifiers) { - System.out.println("idlist: " + (identifiers == null ? "NULL" : identifiers)); + log.debug("idlist: " + (identifiers == null ? "NULL" : identifiers)); if (identifiers != null) { for (String dcidentifier : identifiers) { - System.out.println("id: " + dcidentifier); + log.debug("id: " + dcidentifier); ElementType identifierElement = new ElementType(); identifierElement.setValue(dcidentifier); @@ -328,22 +332,4 @@ public final class DublinCoreBuilder { return this.metadata; } - /** - * @return tgMappedDc - * @deprecated - */ - @Deprecated - public OaiDcType getTgMappedDC() { - return this.tgMappedDC; - } - - /** - * @return oaiDcObj - * @deprecated - */ - @Deprecated - public static ObjectFactory getOaiDcObj() { - return oaiDcObj; - } - } 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 208423ed..222b6b42 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.xml.datatype.DatatypeConfigurationException; +import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.search.SearchHit; @@ -31,7 +32,7 @@ public class DublinCoreFieldLoader { // STATICS // ** - private static org.apache.commons.logging.Log log = LogFactory.getLog(OAIPMHImpl.class); + private static Log log = LogFactory.getLog(DublinCoreFieldLoader.class); /** * This function takes the results of the ElasticSearch request and fills the String-Lists with @@ -93,8 +94,7 @@ public class DublinCoreFieldLoader { List<String> dates = new ArrayList<String>(); - // FIXME TADAA? TADAAAAA??????? - // System.out.println("TADA"); + log.debug("TADAAAAAAA! (tadaaaaa?)"); for (String field : fields) { if (hit.getFields().get(field) != null) { @@ -115,6 +115,13 @@ public class DublinCoreFieldLoader { return dates; } + /** + * @param responseWorkValues + * @param fields + * @return + * @deprecated + */ + @SuppressWarnings("unchecked") @Deprecated public static List<String> fillList(GetResponse responseWorkValues, String[] fields) { @@ -131,8 +138,13 @@ public class DublinCoreFieldLoader { for (int i = 0; i < requestedField.length; i++) { if (i < requestedField.length - 1 && nestedMap != null && nestedMap.get(requestedField[i]) != null) { - - nestedMap2 = (Map<String, Object>) nestedMap.get(requestedField[i]); + try { + nestedMap2 = (Map<String, Object>) nestedMap.get(requestedField[i]); + } catch (ClassCastException e) { + e.printStackTrace(); + } + if (nestedMap.get(requestedField[i]) instanceof Map<?, ?>) { + } } if (i == requestedField.length - 1 && nestedMap2 != null && nestedMap2.get(requestedField[i]) != null) { @@ -151,6 +163,7 @@ public class DublinCoreFieldLoader { } } } + return list; } @@ -159,6 +172,7 @@ public class DublinCoreFieldLoader { * @param fields * @return */ + @SuppressWarnings("unchecked") public static List<String> fillList(SearchHit hit, String[] fields) { List<String> list = new ArrayList<String>(); 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 14808796..6fb950c2 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererIDIOM.java @@ -2,6 +2,8 @@ package info.textgrid.middleware; import java.io.IOException; import java.text.ParseException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchScrollRequest; @@ -21,6 +23,8 @@ import info.textgrid.middleware.oaipmh.ResumptionTokenType; */ public class IdentifierListDelivererIDIOM extends IdentifierListDelivererAbstract { + private static Log log = LogFactory.getLog(IdentifierListDelivererIDIOM.class); + /** * @param textgrid * @param dariah @@ -105,7 +109,9 @@ public class IdentifierListDelivererIDIOM extends IdentifierListDelivererAbstrac String textgridURI = OAIPMHUtilities.fieldLoader(new JSONObject(hit.getSourceAsMap()), "textgridUri"); // hit.getFields().get("textgridUri").getValue().toString().replace(".0", ""); - // System.out.println(textgridURI); + + log.debug("TewxtGrid URI: " + textgridURI); + RecordDelivererIDIOM idiomRecord = new RecordDelivererIDIOM(true, false); identifierList.getHeader() diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java index 795817c1..bb32c74c 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java @@ -381,8 +381,7 @@ public class OAIPMHUtilities { for (String field : fields) { String[] fieldPathForESIndex = field.split(ES_DIVIDER_REGEXP); - System.out.println("field[" + count + "]: " + field); - count++; + log.debug("field[" + count++ + "]: " + field); JSONObject singlePath = resultFromGetRequestInES; for (int i = 0; i < fieldPathForESIndex.length; i++) { @@ -405,7 +404,7 @@ public class OAIPMHUtilities { fieldResulsts.add(resultiDingsda.toString()); } catch (JSONException e) { - System.out.println("IGNORING JSON ERROR: " + e.getMessage()); + log.error("IGNORING JSON ERROR: " + e.getMessage()); } } else { diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecord.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecord.java index 8346710a..a5e326c7 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecord.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecord.java @@ -9,6 +9,7 @@ import java.util.Properties; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.datatype.DatatypeConfigurationException; +import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.elasticsearch.common.Strings; import org.json.JSONException; @@ -65,7 +66,7 @@ import info.textgrid.middleware.oaipmh.TitleType; public class OpenAireRecord extends RecordDelivererAbstract { // Logger for errors and info - private static org.apache.commons.logging.Log log = LogFactory.getLog(OpenAireRecord.class); + private static Log log = LogFactory.getLog(OpenAireRecord.class); // Array containing all fields to get from the edition dataset in elasticsearch private String[] fields; @@ -154,7 +155,8 @@ public class OpenAireRecord extends RecordDelivererAbstract { public GetRecordType getRecordById(String idInElasticSearchIndex) throws ParseException, DatatypeConfigurationException, IOException { this.jsonObj = new JSONObject(OAIPMHUtilities - .getRcordByIDFromElasticSearch(OAI_ESClient.getEsIndex(), idInElasticSearchIndex.replace("textgrid:", ""), this.fields, + .getRcordByIDFromElasticSearch(OAI_ESClient.getEsIndex(), + idInElasticSearchIndex.replace("textgrid:", ""), this.fields, Strings.EMPTY_ARRAY) .getSource()); @@ -191,7 +193,8 @@ public class OpenAireRecord extends RecordDelivererAbstract { HeaderType header = new HeaderType(); this.jsonObj = new JSONObject(OAIPMHUtilities - .getRcordByIDFromElasticSearch(OAI_ESClient.getEsIndex(), idInElasticSearchIndex, this.fields, Strings.EMPTY_ARRAY) + .getRcordByIDFromElasticSearch(OAI_ESClient.getEsIndex(), idInElasticSearchIndex, + this.fields, Strings.EMPTY_ARRAY) .getSource()); // Setting the header for the oaipmh response @@ -342,7 +345,9 @@ public class OpenAireRecord extends RecordDelivererAbstract { OAIPMHUtilities.fieldLoader(this.jsonObj, relatedIdentifierField).replace("textgrid:", ""); relatedIdentifier.setValue(OAIPMHUtilities.fieldLoader(new JSONObject(OAIPMHUtilities - .getRcordByIDFromElasticSearch(OAI_ESClient.getEsIndex(), uriForWork, workFields, Strings.EMPTY_ARRAY).getSource()), + .getRcordByIDFromElasticSearch(OAI_ESClient.getEsIndex(), uriForWork, workFields, + Strings.EMPTY_ARRAY) + .getSource()), this.handle)); relatedIdentifiers.getRelatedIdentifier().add(relatedIdentifier); } @@ -366,7 +371,8 @@ public class OpenAireRecord extends RecordDelivererAbstract { OAIPMHUtilities.fieldLoader(this.jsonObj, this.relationToWorkObject).replace("textgrid:", ""); JSONObject resultOfFurtherObject = new JSONObject(OAIPMHUtilities - .getRcordByIDFromElasticSearch(OAI_ESClient.getEsIndex(), idForWorkObject, this.workFields, Strings.EMPTY_ARRAY) + .getRcordByIDFromElasticSearch(OAI_ESClient.getEsIndex(), idForWorkObject, + this.workFields, Strings.EMPTY_ARRAY) .getSource()); String abstractFoFWork = OAIPMHUtilities.fieldLoader( @@ -485,7 +491,9 @@ public class OpenAireRecord extends RecordDelivererAbstract { for (String dateField : this.dateFields) { Date dateInOpenAireRecord = new Date(); - // System.out.println(dateField); + + log.debug("date field: " + dateField); + try { dateInOpenAireRecord.setValue( OAIPMHUtilities @@ -515,7 +523,9 @@ public class OpenAireRecord extends RecordDelivererAbstract { private Identifier addIdentifier() { Identifier identifier = new Identifier(); identifier.setIdentifierType("Handle"); - // System.out.println(jsonObj.get("textgridUri").toString()); + + log.debug("TextGrid URI: " + this.jsonObj.get("textgridUri").toString()); + try { identifier.setValue(this.jsonObj.getJSONObject("pid").get("value").toString()); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDATACITE.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDATACITE.java index 270c6ba2..e08db81e 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDATACITE.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDATACITE.java @@ -486,7 +486,9 @@ public class RecordDelivererDATACITE extends RecordDelivererAbstract { Identifier identifier = new Identifier(); identifier.setIdentifierType("Handle"); - // System.out.println(jsonObj.get("textgridUri").toString()); + + log.debug("TextGrud URI: " + this.jsonObj.get("textgridUri").toString()); + try { identifier.setValue(this.jsonObj.getJSONObject("pid").get("value").toString()); } catch (JSONException fieldNotFound) { 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 ac211b34..5de61f9b 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java @@ -5,6 +5,7 @@ import java.io.StringReader; import java.text.ParseException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.classicmayan.tools.ClassicMayanMetsMods; import org.elasticsearch.action.get.GetRequest; @@ -31,7 +32,7 @@ import info.textgrid.middleware.oaipmh.RecordType; @Component public class RecordDelivererIDIOM extends RecordDelivererAbstract { - private static org.apache.commons.logging.Log log = LogFactory.getLog(RecordDelivererIDIOM.class); + private static Log log = LogFactory.getLog(RecordDelivererIDIOM.class); private String dateOfLastOblectModification; diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java index ab4125eb..5168371e 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.Hashtable; import java.util.List; import java.util.Map; +import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; @@ -50,8 +51,7 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer // private static final int LIFETIME_RES_TOKEN = 600; protected static Map<String, Integer> cursorCollector = new Hashtable<String, Integer>(); - private static org.apache.commons.logging.Log log = - LogFactory.getLog(RecordListDelivererAbstract.class); + private static Log log = LogFactory.getLog(RecordListDelivererAbstract.class); /** * @param textgrid @@ -72,7 +72,9 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer public List<String> getUriList(String from, String to, String set, String resumptionToken) { QueryBuilder query; - // System.out.println("RANGEFIELD: " + "created"); + + log.debug("RANGEFIELD: " + "created"); + QueryBuilder rangeQuery = QueryBuilders.rangeQuery("created").from(from).to(to); QueryBuilder filterSandBox = QueryBuilders.matchPhraseQuery("nearlyPublished", "true"); @@ -175,14 +177,15 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer i); } - // System.out.println("TADA: "); - // System.out.println(cursorCollector); + log.debug("cursorCollector: " + cursorCollector); } else { setFoundItems(false); } - // System.out.println(resTokenForResponse.getValue()); - // System.out.println(resTokenForResponse.getCursor()); + + log.debug("restok value: " + this.resTokenForResponse.getValue()); + log.debug("restok cursor: " + this.resTokenForResponse.getCursor()); + return uriList; } @@ -289,7 +292,9 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer * @param searchResponseSize */ public void setSearchResponseSize(int searchResponseSize) { - // System.out.println("SearchResponseSize: " + searchResponseSize); + + log.debug("SearchResponseSize: " + searchResponseSize); + this.searchResponseSize = searchResponseSize; } 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 9a6e159e..dc74ff77 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java @@ -5,6 +5,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; import javax.xml.datatype.DatatypeConfigurationException; +import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.elasticsearch.action.get.GetRequest; import org.elasticsearch.action.get.GetResponse; @@ -42,7 +43,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { // STATICS // ** - private static org.apache.commons.logging.Log log = LogFactory.getLog(OAIPMHImpl.class); + private static Log log = LogFactory.getLog(RecordListDelivererDC.class); // ** // DC-Field Lists @@ -278,8 +279,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { recordList.setResumptionToken(resTokenForResponse); - log.debug("RESTOKEN: "); - log.debug(recordList.getResumptionToken()); + log.debug("RESTOK: " + recordList.getResumptionToken()); // } @@ -334,7 +334,6 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { result.setCoverage(DublinCoreFieldLoader.fillList(responseWorkValues, this.coverageList)); result.setCreator(DublinCoreFieldLoader.fillList(responseWorkValues, this.creatorList)); result.setDate(DublinCoreFieldLoader.fillList(responseWorkValues, this.dateList)); - result.setDescription( DublinCoreFieldLoader.fillList(responseWorkValues, this.descriptionList)); result.setFormat(DublinCoreFieldLoader.fillList(hit, this.formatList)); 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 b2e4e11f..6f8c6e68 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java @@ -26,7 +26,7 @@ import info.textgrid.middleware.oaipmh.ResumptionTokenType; */ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { - private static Log log = LogFactory.getLog(OAIPMHImpl.class); + private static Log log = LogFactory.getLog(RecordListDelivererIDIOM.class); /** * @param textgrid @@ -63,7 +63,6 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { public ListRecordsType getRecords(final String from, final String to, final String set, final String resumptionToken) throws ParseException, IOException { - // System.out.println("BUFF"); ListRecordsType recordList = new ListRecordsType(); BoolQueryBuilder recordFilterForClassicMayan; @@ -120,16 +119,15 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { for (SearchHit hit : scrollResp.getHits().getHits()) { i++; - // System.out.println("testitest"); - // System.out.println(); - String textgridURI = OAIPMHUtilities.fieldLoader(new JSONObject(hit.getSourceAsMap()), "textgridUri"); log.debug("IDIOM URIs: " + textgridURI); // hit.getFields().get("textgridUri").getValue().toString().replace(".0", ""); - // System.out.println("Processing: " + textgridURI); + + log.debug("Processing: " + textgridURI); + RecordDelivererIDIOM idiomRecord = new RecordDelivererIDIOM(true, false); recordList.getRecord() .add(idiomRecord.getRecordById(textgridURI.replace(".0", "")).getRecord()); diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTextgridOnlineTests.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTextgridOnlineTests.java index b2c8c4ca..2c5f96a6 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTextgridOnlineTests.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTextgridOnlineTests.java @@ -26,7 +26,7 @@ import info.textgrid.utils.httpclient.TGHttpResponse; * * @author Stefan E. Funk, SUB Göttingen */ - @Ignore +// @Ignore public class OaiPmhTextgridOnlineTests { private static final String OAI_DC_PREFIX = "oai_dc"; diff --git a/oaipmh-webapp/pom.xml b/oaipmh-webapp/pom.xml index bae999c0..c3cbfeb5 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.4.1-SNAPSHOT</version> + <version>3.4.2-SNAPSHOT</version> </parent> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh-webapp</artifactId> diff --git a/pom.xml b/pom.xml index 2c99eb7c..c092bc25 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.4.1-SNAPSHOT</version> + <version>3.4.2-SNAPSHOT</version> <packaging>pom</packaging> <name>DARIAHDE :: OAI-PMH DataProvider</name> <properties> -- GitLab