From a6db3ffd2f430a366874c91b3562d8a7eae0d932 Mon Sep 17 00:00:00 2001 From: tosmers Date: Thu, 5 Jan 2017 16:45:54 +0000 Subject: [PATCH] [UPDATE] - adds @Transitional annotation to all marshaller implementations- - updates export test data git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4513 8810af33-2d31-482b-a856-94f89814c4df --- .../categorization/CategoryMarshaller.java | 2 ++ .../libreccm/security/GroupMarshaller.java | 2 ++ .../security/GroupMembershipMarshaller.java | 2 ++ .../security/PermissionMarshaller.java | 2 ++ .../org/libreccm/security/RoleMarshaller.java | 2 ++ .../security/RoleMembershipMarshaller.java | 2 ++ .../org/libreccm/security/UserMarshaller.java | 2 ++ .../workflow/AssignableTaskMarshaller.java | 2 ++ .../main/java/org/libreccm/workflow/Task.java | 26 +++++++++++-------- .../workflow/TaskAssignmentMarshaller.java | 2 ++ .../libreccm/workflow/WorkflowMarshaller.java | 2 ++ .../workflow/WorkflowTemplateMarshaller.java | 2 ++ 12 files changed, 37 insertions(+), 11 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/categorization/CategoryMarshaller.java b/ccm-core/src/main/java/org/libreccm/categorization/CategoryMarshaller.java index c5aaec025..2174c8bd5 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/CategoryMarshaller.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/CategoryMarshaller.java @@ -21,6 +21,7 @@ package org.libreccm.categorization; import org.libreccm.portation.AbstractMarshaller; import javax.inject.Inject; +import javax.transaction.Transactional; /** * @author Tobias Osmers @@ -37,6 +38,7 @@ public class GroupMarshaller extends AbstractMarshaller { } @Override + @Transactional(Transactional.TxType.REQUIRED) protected void insertIntoDb(Group portableObject) { groupRepository.save(portableObject); } diff --git a/ccm-core/src/main/java/org/libreccm/security/GroupMembershipMarshaller.java b/ccm-core/src/main/java/org/libreccm/security/GroupMembershipMarshaller.java index a8b8dd026..7c98a7335 100644 --- a/ccm-core/src/main/java/org/libreccm/security/GroupMembershipMarshaller.java +++ b/ccm-core/src/main/java/org/libreccm/security/GroupMembershipMarshaller.java @@ -22,6 +22,7 @@ import org.libreccm.portation.AbstractMarshaller; import javax.inject.Inject; import javax.persistence.EntityManager; +import javax.transaction.Transactional; /** * @author Tobias Osmers @@ -38,6 +39,7 @@ public class PermissionMarshaller extends AbstractMarshaller { } @Override + @Transactional(Transactional.TxType.REQUIRED) protected void insertIntoDb(Permission portableObject) { if (portableObject.getPermissionId() == 0) { entityManager.persist(portableObject); diff --git a/ccm-core/src/main/java/org/libreccm/security/RoleMarshaller.java b/ccm-core/src/main/java/org/libreccm/security/RoleMarshaller.java index 024302276..40423ee88 100644 --- a/ccm-core/src/main/java/org/libreccm/security/RoleMarshaller.java +++ b/ccm-core/src/main/java/org/libreccm/security/RoleMarshaller.java @@ -21,6 +21,7 @@ package org.libreccm.security; import org.libreccm.portation.AbstractMarshaller; import javax.inject.Inject; +import javax.transaction.Transactional; /** * @author Tobias Osmers @@ -38,6 +39,7 @@ public class RoleMembershipMarshaller extends AbstractMarshaller } @Override + @Transactional(Transactional.TxType.REQUIRED) protected void insertIntoDb(RoleMembership portableObject) { if (portableObject.getMembershipId() == 0) { entityManager.persist(portableObject); diff --git a/ccm-core/src/main/java/org/libreccm/security/UserMarshaller.java b/ccm-core/src/main/java/org/libreccm/security/UserMarshaller.java index 51b93cc16..450553d95 100644 --- a/ccm-core/src/main/java/org/libreccm/security/UserMarshaller.java +++ b/ccm-core/src/main/java/org/libreccm/security/UserMarshaller.java @@ -21,6 +21,7 @@ package org.libreccm.security; import org.libreccm.portation.AbstractMarshaller; import javax.inject.Inject; +import javax.transaction.Transactional; /** * @author Tobias Osmers @@ -37,6 +38,7 @@ public class AssignableTaskMarshaller extends AbstractMarshaller } @Override + @Transactional(Transactional.TxType.REQUIRED) protected void insertIntoDb(AssignableTask portableObject) { assignableTaskRepository.save(portableObject); } diff --git a/ccm-core/src/main/java/org/libreccm/workflow/Task.java b/ccm-core/src/main/java/org/libreccm/workflow/Task.java index 8303f7c31..7ff527165 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/Task.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/Task.java @@ -18,20 +18,13 @@ */ package org.libreccm.workflow; -import static org.libreccm.core.CoreConstants.*; - import com.fasterxml.jackson.annotation.JsonBackReference; -import com.fasterxml.jackson.annotation.JsonManagedReference; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; import org.libreccm.core.CcmObject; import org.libreccm.core.Identifiable; import org.libreccm.l10n.LocalizedString; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; - import javax.persistence.AssociationOverride; import javax.persistence.Column; import javax.persistence.Embedded; @@ -52,6 +45,13 @@ import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +import static org.libreccm.core.CoreConstants.DB_SCHEMA; /** * A task is part of a workflow and represents a specific step in the creation @@ -166,7 +166,9 @@ public class Task implements Identifiable, Serializable { * Tasks which the depends of this task. */ @ManyToMany(mappedBy = "dependsOn") - @JsonManagedReference(value = "dependent-dependson") + @JsonIdentityInfo( + generator = ObjectIdGenerators.PropertyGenerator.class, + property = "taskId") private List dependentTasks; /** @@ -179,7 +181,9 @@ public class Task implements Identifiable, Serializable { @JoinColumn(name = "DEPENDS_ON_TASK_ID")}, inverseJoinColumns = { @JoinColumn(name = "DEPENDENT_TASK_ID")}) - @JsonBackReference(value = "dependent-dependson") + @JsonIdentityInfo( + generator = ObjectIdGenerators.PropertyGenerator.class, + property = "taskId") private List dependsOn; /** diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentMarshaller.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentMarshaller.java index 5a39d987b..1df7c75dd 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentMarshaller.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentMarshaller.java @@ -22,6 +22,7 @@ import org.libreccm.portation.AbstractMarshaller; import javax.inject.Inject; import javax.persistence.EntityManager; +import javax.transaction.Transactional; /** * @author Tobias Osmers @@ -37,6 +38,7 @@ public class WorkflowMarshaller extends AbstractMarshaller { } @Override + @Transactional(Transactional.TxType.REQUIRED) protected void insertIntoDb(Workflow portableObject) { workflowRepository.save(portableObject); } diff --git a/ccm-core/src/main/java/org/libreccm/workflow/WorkflowTemplateMarshaller.java b/ccm-core/src/main/java/org/libreccm/workflow/WorkflowTemplateMarshaller.java index 1cae65498..49f9119fe 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/WorkflowTemplateMarshaller.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/WorkflowTemplateMarshaller.java @@ -21,6 +21,7 @@ package org.libreccm.workflow; import org.libreccm.portation.AbstractMarshaller; import javax.inject.Inject; +import javax.transaction.Transactional; /** * @author