From a8c0ad3cf3f20ead3e8f2ac3b9236dbacf2108ad Mon Sep 17 00:00:00 2001
From: Maximilian Brodhun <brodhun@sub.uni-goettingen.de>
Date: Fri, 13 Sep 2019 15:43:26 +0200
Subject: [PATCH] adapted ListIdentifiers and ListRecords to ES6

---
 .../middleware/DublinCoreFieldLoader.java     | 207 +++++-------------
 .../middleware/IdentifierListDelivererDC.java |  29 ++-
 .../middleware/RecordDelivererDC.java         |   8 +-
 .../middleware/RecordListDelivererDC.java     |  70 +++---
 .../info/textgrid/middleware/OaiPmhTest.java  |  12 +-
 5 files changed, 110 insertions(+), 216 deletions(-)

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 c14a85c6..7d7ea073 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
@@ -39,14 +39,14 @@ public class DublinCoreFieldLoader {
 
     List<String> contributors = new ArrayList<String>();
 
-    for (String field : fields) {
+/*    for (String field : fields) {
       if (hit.getFields().get(field) != null) {
         contributors.add(hit.getFields().get(field).getValues().get(0)
             .toString());
       }
-    }
+    }*/
 
-    return contributors;
+    return fillList(hit, fields);
   }
 
   /**
@@ -79,16 +79,7 @@ public class DublinCoreFieldLoader {
    */
   public static List<String> setCreator(SearchHit hit, String[] fields) {
 
-    List<String> creators = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        creators.add(hit.getFields().get(field).getValues().get(0)
-            .toString());
-      }
-    }
-
-    return creators;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -106,17 +97,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setCoverage(SearchHit hit, String[] fields) {
-
-    List<String> coverages = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        coverages.add(hit.getFields().get(field).getValues().get(0)
-            .toString());
-      }
-    }
-
-    return coverages;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -137,7 +118,7 @@ public class DublinCoreFieldLoader {
   public static List<String> setDate(SearchHit hit, String[] fields) {
 
     List<String> dates = new ArrayList<String>();
-
+    System.out.println("TADA");
     for (String field : fields) {
       if (hit.getFields().get(field) != null) {
 
@@ -173,17 +154,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setDescription(SearchHit hit, String[] fields) {
-
-    List<String> descriptions = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        descriptions.add(hit.getFields().get(field).getValues().get(0)
-            .toString());
-      }
-    }
-
-    return descriptions;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -192,17 +163,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setFormat(SearchHit hit, String[] fields) {
-
-    List<String> formats = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        formats.add(hit.getFields().get(field).getValues().get(0)
-            .toString());
-      }
-    }
-
-    return formats;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -221,25 +182,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setIdentifier(SearchHit hit, String[] fields) {
-
-    List<String> identifiers = new ArrayList<String>();
-
-    String identifier = "";
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        for (int i = 0; i < hit.getFields().get(field).getValues().size(); i++) {
-          if (hit.getFields().get(field).getValues().get(i).toString().startsWith("textgrid")) {
-            identifier = hit.getFields().get(field).getValues().get(i).toString();
-            identifier = identifier.replace(identifier, "https://textgridrep.org/" + identifier);
-            identifiers.add(identifier);
-          } else {
-            identifiers.add(hit.getFields().get(field).getValues().get(i).toString());
-          }
-        }
-      }
-    }
-
-    return identifiers;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -258,16 +201,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setLanguage(SearchHit hit, String[] fields) {
-
-    List<String> languages = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        languages.add(hit.getFields().get(field).getValues().get(0).toString());
-      }
-    }
-
-    return languages;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -286,16 +220,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setPublisher(SearchHit hit, String[] fields) {
-
-    List<String> publishers = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        publishers.add(hit.getFields().get(field).getValues().get(0).toString());
-      }
-    }
-
-    return publishers;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -314,18 +239,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setRelation(SearchHit hit, String[] fields) {
-
-    List<String> relations = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        for (int i = 0; i < hit.getFields().get(field).getValues().size(); i++) {
-          relations.add(hit.getFields().get(field).getValues().get(i).toString());
-        }
-      }
-    }
-
-    return relations;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -345,9 +259,9 @@ public class DublinCoreFieldLoader {
    */
   public static List<String> setRelationForWork(GetResponse responseWorkValues, String[] fields) {
 
-	  for(String field : fields) {
+	  /*for(String field : fields) {
 		  System.out.println(field);
-	  }
+	  }*/
 	  
 	  return fillList(responseWorkValues, fields);
   }
@@ -358,16 +272,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setRights(SearchHit hit, String[] fields) {
-
-    List<String> rights = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        rights.add(hit.getFields().get(field).getValues().get(0).toString());
-      }
-    }
-
-    return rights;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -376,7 +281,6 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setRights(GetResponse responseWorkValues, String[] fields) {
-
 	  return fillList(responseWorkValues, fields);
   }
 
@@ -386,16 +290,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setSources(SearchHit hit, String[] fields) {
-
-    List<String> sources = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        sources.add(hit.getFields().get(field).getValues().get(0).toString());
-      }
-    }
-
-    return sources;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -424,16 +319,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setSubject(SearchHit hit, String[] fields) {
-
-    List<String> subjects = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        subjects.add(hit.getFields().get(field).getValues().get(0).toString());
-      }
-    }
-
-    return subjects;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -442,18 +328,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setTitle(SearchHit hit, String[] fields) {
-
-    List<String> titles = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        for (int i = 0; i < hit.getFields().get(field).getValues().size(); i++) {
-          titles.add(hit.getFields().get(field).getValues().get(i).toString());
-        }
-      }
-    }
-
-    return titles;
+	  return fillList(hit, fields);
   }
 
   /**
@@ -485,18 +360,7 @@ public class DublinCoreFieldLoader {
    * @return all elements mapped from TetxGrid metadata scheme to Dublin Core
    */
   public static List<String> setType(SearchHit hit, String[] fields) {
-
-    List<String> types = new ArrayList<String>();
-
-    for (String field : fields) {
-      if (hit.getFields().get(field) != null) {
-        for (int i = 0; i < hit.getFields().get(field).getValues().size(); i++) {
-          types.add(hit.getFields().get(field).getValues().get(i).toString());
-        }
-      }
-    }
-
-    return types;
+	  return fillList(hit, fields);
   }
   
   public static List<String> fillList(GetResponse responseWorkValues, String[] fields){
@@ -518,7 +382,6 @@ public class DublinCoreFieldLoader {
 		            		nestedMap2!=null && nestedMap2.get(requestedField[i])!=null ) {
 		              valueOfRequestedField =nestedMap2.get(requestedField[i]).toString();
 		              if(valueOfRequestedField.length()>0) {
-		            	  System.out.println("VALUE: " + valueOfRequestedField);
 		              	list.add(valueOfRequestedField);
 		              }
 		            }
@@ -534,5 +397,37 @@ public class DublinCoreFieldLoader {
 	  return list;
   }
   
+  public static List<String> fillList(SearchHit hit, String[] fields){
+	  List<String> list = new ArrayList<String>();	  
+	    
+	        if (fields != null) {	          
+	          for (String field : fields) {    
+	            if(hit.getSourceAsMap().get(field)==null ) {	
+		          String[] requestedField = field.split("\\.");
+		          Map<String, Object> nestedMap = hit.getSourceAsMap();
+		          String valueOfRequestedField=null;
+		          Map<String, Object> nestedMap2 = null;
+		          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]);
+		            }            
+		            if(i==requestedField.length-1 &&  
+		            		nestedMap2!=null && nestedMap2.get(requestedField[i])!=null ) {
+		              valueOfRequestedField =nestedMap2.get(requestedField[i]).toString();
+		              if(valueOfRequestedField.length()>0) {
+		              	list.add(valueOfRequestedField);
+		              }
+		            }
+		            nestedMap= nestedMap2;
+		          }
+	            }else {
+	            	list.add(hit.getSourceAsMap().get(field).toString());
+	            }
+	        }
+	      }
+	    
+	  
+	  return list;
+  }
 
 }
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 146f56d2..ca8c1f03 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java
@@ -14,12 +14,15 @@ import org.apache.commons.logging.LogFactory;
 import org.elasticsearch.action.search.SearchRequest;
 import org.elasticsearch.action.search.SearchResponse;
 import org.elasticsearch.action.search.SearchScrollRequest;
+import org.elasticsearch.action.search.SearchType;
 import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.common.Strings;
 import org.elasticsearch.common.unit.TimeValue;
 import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.search.SearchHit;
 import org.elasticsearch.search.builder.SearchSourceBuilder;
+import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
 
 
 
@@ -44,7 +47,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract {
   private String dateOfObjectCreation; // Field for the object creation in the repository
   private String repositoryObjectURIPrefix; //
   private String identifierField;
-  private static final int lifeTimeResToken = 10000;
+  private static final int lifeTimeResToken = 100;
 
   public static Map<String, Integer> cursorCollector = new Hashtable<String, Integer>();
 
@@ -109,14 +112,20 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract {
 
     ListIdentifiersType lit = new ListIdentifiersType();
     QueryBuilder query = setOrNot(set, from, to);
-    SearchResponse listListIdentiferValues;
+    SearchResponse listListIdentiferValues;    
+ 
+    String[] includes = this.identifierListFields;
+    String[] excludes = Strings.EMPTY_ARRAY;
+    FetchSourceContext fetchSourceContext =
+        new FetchSourceContext(true, includes, excludes);
     
     
-    SearchRequest searchRequest = new SearchRequest(OAI_ESClient.getEsIndex());
+    SearchRequest searchRequest = new SearchRequest(OAI_ESClient.getEsIndex()).searchType(SearchType.QUERY_THEN_FETCH);
+    
     SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
     searchSourceBuilder.query(query);
     searchSourceBuilder.size(this.searchResponseSize);
-    
+    searchSourceBuilder.fetchSource(includes, excludes);
 
     
     if (resumptionToken != null) {
@@ -128,7 +137,11 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract {
     } else {
         searchRequest.source(searchSourceBuilder);
         searchRequest.scroll(TimeValue.timeValueMinutes(lifeTimeResToken));
-        listListIdentiferValues = OAI_ESClient.getEsClient().search(searchRequest, RequestOptions.DEFAULT);        
+              listListIdentiferValues = OAI_ESClient.getEsClient()
+        		.search(
+        				searchRequest, 
+        				RequestOptions.DEFAULT
+        				);        
     }
     listListIdentiferValues =
         hitHandling(listListIdentiferValues, lit, set, listListIdentiferValues.getScrollId());
@@ -150,8 +163,8 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract {
     for (SearchHit hit : listFurtherValues.getHits().getHits()) {
       i++;
       if (this.textgrid) {
-
-        String datestamp = hit.getFields().get(this.dateOfObjectCreation).getValue().toString();
+    	//hit.getSourceAsMap().get(this.dateOfObjectCreation).toString();
+        String datestamp = hit.getSourceAsMap().get(this.dateOfObjectCreation).toString();
         try {
           datestamp = OAIPMHUtillities.convertDateFormat(datestamp).toXMLFormat();
         } catch (ParseException e1) {
@@ -159,7 +172,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract {
         } catch (DatatypeConfigurationException e1) {
           log.debug(e1);
         }
-        String identifier = hit.getFields().get(this.identifierField).getValue().toString();
+        String identifier = hit.getSourceAsMap().get(this.identifierField).toString();
 
         lit = setListIdentifierHeader(datestamp, identifier, lit, set);
       }
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 d1c2ff0d..5d0d7063 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java
@@ -158,13 +158,9 @@ public class RecordDelivererDC extends RecordDelivererAbstract {
     		}
         	if(i==requestedField.length-1) {
         		valueOfRequestedField =nestedMap2.get(requestedField[i]).toString();
-        	}
-        	
-
+        	}       	
     	}
     	
-    	
-    	
     	//Map<String, Object> nestedMap2 = (Map<String, Object>)nestedMap.get("edition");
     	
         String workUri = nestedMap2.get("isEditionOf").toString();
@@ -269,7 +265,7 @@ public class RecordDelivererDC extends RecordDelivererAbstract {
 
     // Set DublinCore lists with content from elastic search results due to configuration.
     result.setContributor(
-        DublinCoreFieldLoader.setContributor(responseWorkValues, this.contributorList));
+        DublinCoreFieldLoader.fillList(responseWorkValues, this.contributorList));
     result.setCoverage(DublinCoreFieldLoader.setCoverage(responseWorkValues, this.coverageList));
     result.setCreator(DublinCoreFieldLoader.setCreator(relatedWorkObject, this.creatorList));
     result.setDate(DublinCoreFieldLoader.setDate(relatedWorkObject, this.dateList));
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 e43ab7d5..0d56dc64 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java
@@ -80,7 +80,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
   private String[] titleList;
   private String[] typeList;
   private String modifiedValue;
-  private static final int lifeTimeResToken = 60000;
+  private static final int lifeTimeResToken = 600;
 
   static Map<String, Integer> cursorCollector = new Hashtable<String, Integer>();
 
@@ -112,27 +112,18 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
       } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
       }
-	    String[] includes = this.workFields;
-	    String[] excludes = Strings.EMPTY_ARRAY;
-	    FetchSourceContext fetchSourceContext =
-	        new FetchSourceContext(true, includes, excludes);
+	  String[] includes = this.workFields;
+	  String[] excludes = Strings.EMPTY_ARRAY;
+	  FetchSourceContext fetchSourceContext = new FetchSourceContext(true, includes, excludes);
       GetRequest getRequest = new GetRequest(OAI_ESClient.getEsIndex(), OAI_ESClient.getEsType(), id).fetchSourceContext(fetchSourceContext);
       
-      /*GetRequestBuilder getWorkValues =
-          OAI_ESClient.getOaiESClient()
-              .prepareGet()
-              .setIndex(OAI_ESClient.getEsIndex())
-              .setType(OAI_ESClient.getEsType())
-              .setId(id)
-              .setFields();*/
-
       GetResponse responseWorkValues=null;
-	try {
+      try {
 		responseWorkValues = OAI_ESClient.getEsClient().get(getRequest, RequestOptions.DEFAULT);
-	} catch (IOException e) {
+      } catch (IOException e) {
 		// TODO Auto-generated catch block
 		e.printStackTrace();
-	}
+      }
 
       return responseWorkValues;
     }
@@ -169,21 +160,21 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
     SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    
     scrollResp=null;
-    
-    if (resumptionToken == null) {
-    	
-        searchSourceBuilder.query(recordFilter);
-        searchSourceBuilder.size(this.searchResponseSize); 
-        searchRequest.source(searchSourceBuilder);
+
+    searchSourceBuilder.query(recordFilter);
+    searchSourceBuilder.size(this.searchResponseSize); 
+    searchRequest.source(searchSourceBuilder);
+    if (resumptionToken != null) {
+
         SearchScrollRequest scrollRequest = new SearchScrollRequest(resumptionToken);
         scrollRequest.scroll(TimeValue.timeValueSeconds(lifeTimeResToken));        
         
-        try {
+        try { 
 			scrollResp = OAI_ESClient.getEsClient().scroll(scrollRequest, RequestOptions.DEFAULT);
 		} catch (IOException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
-		}   
+		}
 
     } else {
     	
@@ -213,10 +204,12 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
 
         if (hit != null && hit.getFields() != null) {
           try {
-            if (hit.getFields().get(this.dateOfObjectCreation) != null) {
+            if (hit.getSourceAsMap().get(this.dateOfObjectCreation) != null) {
+
               String datestamp =
-                  hit.getFields().get(this.dateOfObjectCreation).getValue().toString();
+                  hit.getSourceAsMap().get(this.dateOfObjectCreation).toString();
               datestamp = OAIPMHUtillities.convertDateFormat(datestamp).toXMLFormat();
+
             }
           } catch (ParseException e1) {
             log.debug(e1);
@@ -224,27 +217,26 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
             log.debug(e1);
           }
 
-          this.modifiedValue = hit.getFields().get(this.modifiedField).getValue().toString();
+          this.modifiedValue = hit.getSourceAsMap().get(this.modifiedField).toString();
 
           // TextGrid search!
           String workUri = "";
-
-          if (this.textgrid == true && hit.getFields().get(this.formatField).getValues().get(0)
+          String[] blaFields = new String[] {this.relationToFurtherMetadataObject};
+          if (this.textgrid == true && hit.getSourceAsMap().get(this.formatField)
               .toString().equals(this.formatToFilter)) {
-            if (hit.getFields().get(this.relationToFurtherMetadataObject) != null) {
-              workUri = hit.getFields().get(this.relationToFurtherMetadataObject).getValues().get(0)
-                  .toString().substring(this.repositoryObjectURIPrefix.length());
+
+            if (DublinCoreFieldLoader.fillList(hit, blaFields).get(0)!=null) {
+              workUri = DublinCoreFieldLoader.fillList(hit, blaFields).get(0).substring(this.repositoryObjectURIPrefix.length());
 
               if (!workUri.endsWith(".0")) {
                 workUri = workUri.concat(".0");
               }
             }
-
             dublinCoreBuilder = putContentIntoDCFieldLists(hit,
                 furtherDCElements(workUri, OAI_ESClient.getEsClient()));
 
             buildRecord(recordList, set,
-                hit.getFields().get(this.identifierField).getValue().toString(), dublinCoreBuilder);
+                hit.getSourceAsMap().get(this.identifierField).toString(), dublinCoreBuilder);
           }
 
           if (this.dariah == true) {
@@ -273,13 +265,11 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
    * @param responseWorkValues
    * @return
    */
-  public DublinCoreBuilder putContentIntoDCFieldLists(SearchHit hit,
-      GetResponse responseWorkValues) {
+  public DublinCoreBuilder putContentIntoDCFieldLists(SearchHit hit, GetResponse responseWorkValues) {
 
     DublinCoreBuilder result = new DublinCoreBuilder();
-
-    result.setContributor(
-        DublinCoreFieldLoader.setContributor(responseWorkValues, this.contributorList));
+    System.out.println("BLA");
+    result.setContributor(DublinCoreFieldLoader.setContributor(responseWorkValues, this.contributorList));
     result.setCoverage(DublinCoreFieldLoader.setCoverage(responseWorkValues, this.coverageList));
     result.setCreator(DublinCoreFieldLoader.setCreator(responseWorkValues, this.creatorList));
     result.setDate(DublinCoreFieldLoader.setDate(responseWorkValues, this.dateList));
@@ -310,7 +300,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
       GetResponse responseWorkValues) {
 
     DublinCoreBuilder result = new DublinCoreBuilder();
-
+    
     result.setContributor(DublinCoreFieldLoader.setContributor(hit, this.contributorList));
     result.setCoverage(DublinCoreFieldLoader.setCoverage(hit, this.coverageList));
     result.setCreator(DublinCoreFieldLoader.setCreator(hit, this.creatorList));
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 e9946dd8..56f671b5 100644
--- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java
+++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java
@@ -168,7 +168,7 @@ public class OaiPmhTest {
    * @throws ParseException
    */
   @Test
- // @Ignore
+  @Ignore
   public void testGetRequestGetRecordTextGrid() throws ParseException {
 
     record.setContributor(TGConstants.CONTRIBUTOR_LIST);
@@ -236,7 +236,7 @@ public class OaiPmhTest {
    * @throws ParseException
    */
   @Test
-  //@Ignore
+  @Ignore
   public void testListIdentifierSetsDC() throws ParseException {
 	 
     OaiPmhTest.identifierList.setFieldForRange(TGConstants.RANGE_FIELD);
@@ -247,7 +247,7 @@ public class OaiPmhTest {
     OaiPmhTest.identifierList.setSearchResponseSize("100");
     System.out.println("Test for the verb \"ListIdentifiers\" with succesfull response");
     JAXBElement<OAIPMHType> p = this.request.getRequest("ListIdentifiers", "", "oai_dc",
-        "project:TGPR-26236625-1acc-b921-a5fa-53567c3eeb80", "", "", "");
+        "", "", "", "");
     JAXB.marshal(p, System.out);
     System.out.println("-----------------------------------\n");
   }
@@ -356,7 +356,7 @@ public class OaiPmhTest {
         this.request.getRequest("ListRecords", "", "oai_dc", "", "", "", "");
     JAXB.marshal(p, System.out);
     
-    String resToken ="";
+    /*String resToken ="";
     for(Map.Entry<String, Integer> entry : RecordListDelivererDC.cursorCollector.entrySet()) {
     	resToken = entry.getKey();
     }   
@@ -365,7 +365,7 @@ public class OaiPmhTest {
             "", "", "", resToken);
     JAXB.marshal(p2, System.out);
     System.out.println("HASH MAP AFTER: ");
-    System.out.println(RecordListDelivererDC.cursorCollector);
+    System.out.println(RecordListDelivererDC.cursorCollector);*/
     
     
     System.out.println("-----------------------------------\n");
@@ -406,7 +406,7 @@ public class OaiPmhTest {
   public void testListRecords() throws ParseException {
 
     JAXBElement<OAIPMHType> r =
-        this.request.getRequest("ListRecords", "", "oai_dc", "", "2011-02-06T20:48:39", "", "");
+        this.request.getRequest("ListRecords", "", "oai_dc", "", "", "", "");
     JAXB.marshal(r, System.out);
     System.out.println("-----------------------------------\n");
   }
-- 
GitLab