From 38cd336bc923cd2a64cbc0b3e83b29e63a1f39ea Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Thu, 18 Nov 2021 18:27:20 +0200 Subject: [PATCH] Add transactional to makeFinalize on DMP and remove jackson parsing when depositing to zenodo --- .../data/dao/databaselayer/service/DatabaseService.java | 2 ++ .../main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java | 2 ++ .../eudat/logic/managers/DataManagementPlanManager.java | 8 +++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/databaselayer/service/DatabaseService.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/databaselayer/service/DatabaseService.java index 8f3487a40..6355da0e2 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/databaselayer/service/DatabaseService.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/databaselayer/service/DatabaseService.java @@ -7,6 +7,7 @@ import eu.eudat.queryable.queryableentity.DataEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.transaction.Transactional; import java.util.Set; @@ -28,6 +29,7 @@ public class DatabaseService { return this.databaseCtx.getQueryable(tClass); } + @Transactional public T createOrUpdate(T item, Class tClass) { return this.databaseCtx.createOrUpdate(item, tClass); } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java index 378112713..ca33c0830 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java @@ -16,6 +16,7 @@ import org.springframework.stereotype.Component; import javax.persistence.criteria.Join; import javax.persistence.criteria.JoinType; +import javax.transaction.Transactional; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -106,6 +107,7 @@ public class DMPDaoImpl extends DatabaseAccess implements DMPDao { } @Override + @Transactional public DMP createOrUpdate(DMP item) { return this.getDatabaseService().createOrUpdate(item, DMP.class); } 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 b9dcd6d62..3071a7510 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 @@ -79,6 +79,7 @@ import org.springframework.web.multipart.MultipartFile; import org.w3c.dom.Document; import org.w3c.dom.Element; +import javax.transaction.Transactional; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; @@ -1034,6 +1035,7 @@ public class DataManagementPlanManager { } } + @Transactional public void makeFinalize(UUID id, Principal principal, DatasetsToBeFinalized datasetsToBeFinalized) throws Exception { DMP dmp = this.apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(id); if (!isUserOwnerOfDmp(dmp, principal)) @@ -2093,10 +2095,10 @@ public class DataManagementPlanManager { } dataBuilder.append(" }\n").append("}"); createData = dataBuilder.toString(); - ObjectMapper mapper = new ObjectMapper(); + /*ObjectMapper mapper = new ObjectMapper(); mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); - JsonNode createDataJSON = mapper.readTree(createData); - HttpEntity request = new HttpEntity<>(createDataJSON, headers); + JsonNode createDataJSON = mapper.readTree(createData);*/ + HttpEntity request = new HttpEntity<>(createData, headers); Map createResponse = null; LinkedHashMap links = null; String previousDOI = this.getPreviousDOI(dmp.getGroupId(), dmp.getId());