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 f9a8499ca..acb51508e 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 @@ -1404,7 +1404,9 @@ public class DataManagementPlanManager { } databaseRepository.getDmpDao().createOrUpdate(dmp); assignUser(dmp, me); - this.updateIndex(dmp); + if (this.apiContext.getOperationsContext().getElasticRepository().getDmpRepository().getClient() != null) { + this.updateIndex(dmp); + } dmp.getDataset().forEach(dataset -> { dataset.setStatus(Dataset.Status.SAVED.getValue()); dataset.setCreated(new Date()); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RDAManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RDAManager.java index 4145a094f..242a365c9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RDAManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RDAManager.java @@ -34,8 +34,9 @@ public class RDAManager { ObjectMapper mapper = new ObjectMapper(); mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")); - DMPWrap wrap = new DMPWrap(rdaDmp); - result = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(wrap); + RDAModel model = new RDAModel(); + model.setDmp(rdaDmp); + result = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(model); return result; } @@ -44,28 +45,7 @@ public class RDAManager { ObjectMapper mapper = new ObjectMapper(); mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")); - - Dmp rda = mapper.readValue(json, DMPWrap.class).getDmp(); + Dmp rda = mapper.readValue(json, RDAModel.class).getDmp(); return dmpRDAMapper.toEntity(rda, profiles); } - - public static class DMPWrap implements Serializable { - @JsonProperty("dmp") - private Dmp dmp; - - public DMPWrap() { - } - - public DMPWrap(Dmp dmp) { - this.dmp = dmp; - } - - public Dmp getDmp() { - return dmp; - } - - public void setDmp(Dmp dmp) { - this.dmp = dmp; - } - } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/elastic/DmpMapper.java b/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/elastic/DmpMapper.java index 5a25990f1..956af3b5b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/elastic/DmpMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/elastic/DmpMapper.java @@ -58,7 +58,7 @@ public class DmpMapper { } if (dmp.getDataset() != null) { - elastic.setDatasets(dmp.getDataset().stream().map(dataset -> { + elastic.setDatasets(dmp.getDataset().stream().filter(dataset -> dataset.getId() != null).map(dataset -> { List tags = null; try { Dataset dataset1 = apiContext.getOperationsContext().getElasticRepository().getDatasetRepository().findDocument(dataset.getId().toString()); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java index e235de3ba..082a67fbe 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java @@ -217,20 +217,22 @@ public class DatasetRDAMapper { properties.putAll(DistributionRDAMapper.toProperties(rda.getDistribution().get(0), datasetDescriptionObj)); } - List keywordIds = rda.getAdditionalProperties().entrySet().stream().filter(entry -> entry.getKey().startsWith("keyword")).map(entry -> entry.getValue().toString()).collect(Collectors.toList()); - boolean takeAll = false; - if (keywordIds.size() < rda.getKeyword().size()) { - takeAll = true; - } - for (int i = 0; i < keywordIds.size(); i++) { - if (takeAll) { - List tags = new ArrayList<>(); - for (String keyword: rda.getKeyword()) { - tags.add(mapper.writeValueAsString(toTagEntity(keyword))); + if (rda.getKeyword() != null) { + List keywordIds = rda.getAdditionalProperties().entrySet().stream().filter(entry -> entry.getKey().startsWith("keyword")).map(entry -> entry.getValue().toString()).collect(Collectors.toList()); + boolean takeAll = false; + if (keywordIds.size() < rda.getKeyword().size()) { + takeAll = true; + } + for (int i = 0; i < keywordIds.size(); i++) { + if (takeAll) { + List tags = new ArrayList<>(); + for (String keyword : rda.getKeyword()) { + tags.add(mapper.writeValueAsString(toTagEntity(keyword))); + } + properties.put(keywordIds.get(i), tags); + } else { + properties.put(keywordIds.get(i), mapper.writeValueAsString(toTagEntity(rda.getKeyword().get(i)))); } - properties.put(keywordIds.get(i), tags); - } else { - properties.put(keywordIds.get(i), mapper.writeValueAsString(toTagEntity(rda.getKeyword().get(i)))); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DmpRDAMapper.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DmpRDAMapper.java index a4350b53a..a64649c86 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DmpRDAMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DmpRDAMapper.java @@ -42,7 +42,9 @@ public class DmpRDAMapper { rda.setTitle(dmp.getLabel()); Map extraProperties = new org.json.JSONObject(dmp.getExtraProperties()).toMap(); - rda.setLanguage(LanguageRDAMapper.mapLanguageIsoToRDAIso(extraProperties.get("language").toString())); + if (!extraProperties.isEmpty()) { + rda.setLanguage(LanguageRDAMapper.mapLanguageIsoToRDAIso(extraProperties.get("language").toString())); + } UserInfo creator; if (dmp.getCreator() != null) {