From 5cd79a6368610a946d19e4884480c568e699d557 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 7 Jun 2022 10:56:44 +0300 Subject: [PATCH] When Exporting DMP to word/pdf sort it's Datasets based on creation date --- .../managers/DataManagementPlanManager.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java index d0d051375..bdc9b1826 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java @@ -97,7 +97,7 @@ import java.util.stream.Stream; @Component public class DataManagementPlanManager { private static final Logger logger = LoggerFactory.getLogger(DataManagementPlanManager.class); - private static final ObjectMapper objectMapper = new ObjectMapper(); + private final ObjectMapper objectMapper; private final Map notificationPaths = Stream.of(new Object[][] { {NotificationType.DMP_MODIFIED, "/plans/edit"}, @@ -125,6 +125,7 @@ public class DataManagementPlanManager { this.userManager = userManager; this.metricsManager = metricsManager; this.configLoader = configLoader; + this.objectMapper = new ObjectMapper(); } /* @@ -1232,10 +1233,11 @@ public class DataManagementPlanManager { .filter(item -> item.getStatus() != Dataset.Status.CANCELED.getValue()) .filter(item -> item.getStatus() != Dataset.Status.DELETED.getValue()) .filter(item -> !isPublic && !isFinalized || item.getStatus() == Dataset.Status.FINALISED.getValue()) + .sorted(Comparator.comparing(Dataset::getCreated)) .forEach(datasetEntity -> { Map properties = new HashMap<>(); if (datasetEntity.getProperties() != null) { - ObjectMapper objectMapper = new ObjectMapper(); + //ObjectMapper objectMapper = new ObjectMapper(); try { properties = objectMapper.readValue(datasetEntity.getProperties(), LinkedHashMap.class); } catch (IOException e) { @@ -1691,7 +1693,7 @@ public class DataManagementPlanManager { dm.setAssociatedUsers(associatedUsers); // Sets associatedUsers property. dm.setDynamicFields(dynamicFields); // Sets dynamicFields property. dm.setDefinition(dmpProfile); - ObjectMapper mapper = new ObjectMapper(); + //ObjectMapper mapper = new ObjectMapper(); Map extraPropertiesMap = new HashMap<>(); if (dataManagementPlans.get(0).getLanguage() != null) { extraPropertiesMap.put("language", dataManagementPlans.get(0).getLanguage()); @@ -1703,7 +1705,7 @@ public class DataManagementPlanManager { extraPropertiesMap.put("publicDate", dataManagementPlans.get(0).getPublicDate()); } if (dataManagementPlans.get(0).getCosts() != null && !dataManagementPlans.get(0).getCosts().isEmpty()) { - extraPropertiesMap.put("costs", mapper.readValue(dataManagementPlans.get(0).getCosts(), ArrayList.class)); + extraPropertiesMap.put("costs", objectMapper.readValue(dataManagementPlans.get(0).getCosts(), ArrayList.class)); } dm.setExtraProperties(extraPropertiesMap); @@ -1734,7 +1736,7 @@ public class DataManagementPlanManager { } catch (Exception ignored) { dataset.setProfile(databaseRepository.getDatasetProfileDao().find(associatedProfiles.get(0).getId())); } - dataset.setProperties(new ObjectMapper().writeValueAsString(das.getFieldImportModels())); + dataset.setProperties(objectMapper.writeValueAsString(das.getFieldImportModels())); dataset.setStatus((short) 0); dataset.setRegistries(new HashSet<>()); dataset.setDatasetDataRepositories(new HashSet<>()); @@ -2162,8 +2164,8 @@ public class DataManagementPlanManager { } return finalDoi; } catch (HttpClientErrorException | HttpServerErrorException ex) { - ObjectMapper ob = new ObjectMapper(); - Map parsedException = ob.readValue(ex.getResponseBodyAsString(), HashMap.class); + //ObjectMapper ob = new ObjectMapper(); + Map parsedException = objectMapper.readValue(ex.getResponseBodyAsString(), HashMap.class); throw new IOException(parsedException.get("message"), ex); } }