From 16b312ed41290b2f4fede2f76a551d1fcadfaa46 Mon Sep 17 00:00:00 2001 From: tosmers Date: Tue, 20 Dec 2016 19:27:21 +0000 Subject: [PATCH] [UPDATE] - switches json's back-managed references on every attribute in each exportable class git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4496 8810af33-2d31-482b-a856-94f89814c4df --- .../org/libreccm/categorization/Categorization.java | 4 ++-- .../java/org/libreccm/categorization/Category.java | 6 +++--- .../src/main/java/org/libreccm/core/CcmObject.java | 11 ++++------- .../src/main/java/org/libreccm/security/Group.java | 3 ++- .../java/org/libreccm/security/GroupMembership.java | 4 ++-- .../src/main/java/org/libreccm/security/Party.java | 3 ++- .../main/java/org/libreccm/security/Permission.java | 10 +++++----- .../src/main/java/org/libreccm/security/Role.java | 6 +++--- .../java/org/libreccm/security/RoleMembership.java | 4 ++-- .../src/main/java/org/libreccm/security/User.java | 3 ++- .../java/org/libreccm/workflow/AssignableTask.java | 3 ++- .../src/main/java/org/libreccm/workflow/Task.java | 6 +++--- .../java/org/libreccm/workflow/TaskAssignment.java | 4 ++-- .../src/main/java/org/libreccm/workflow/Workflow.java | 3 ++- 14 files changed, 36 insertions(+), 34 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java b/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java index fd89a9980..a0af9fe89 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java @@ -85,7 +85,7 @@ public class Categorization implements Serializable, Portable { */ @ManyToOne @JoinColumn(name = "CATEGORY_ID") - @JsonManagedReference(value = "categorization-category") + @JsonBackReference(value = "category-categorization") private Category category; /** @@ -93,7 +93,7 @@ public class Categorization implements Serializable, Portable { */ @ManyToOne @JoinColumn(name = "OBJECT_ID") - @JsonManagedReference(value = "categorization-object") + @JsonBackReference(value = "object-categorization") private CcmObject categorizedObject; /** diff --git a/ccm-core/src/main/java/org/libreccm/categorization/Category.java b/ccm-core/src/main/java/org/libreccm/categorization/Category.java index 5fa546f68..c2ed03b9e 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/Category.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/Category.java @@ -182,7 +182,7 @@ public class Category extends CcmObject implements InheritsPermissions, */ @OneToMany(mappedBy = "category") @XmlElementWrapper(name = "objects", namespace = CAT_XML_NS) - @JsonBackReference(value = "categorization-category") + @JsonManagedReference(value = "category-categorization") private List objects; /** @@ -191,7 +191,7 @@ public class Category extends CcmObject implements InheritsPermissions, @OneToMany(mappedBy = "parentCategory") @XmlElementWrapper(name = "subcategories", namespace = CAT_XML_NS) @XmlElement(name = "category") - @JsonBackReference(value = "parentcategory-subcategory") + @JsonManagedReference(value = "subcategory-parentcategory") private List subCategories; /** @@ -200,7 +200,7 @@ public class Category extends CcmObject implements InheritsPermissions, */ @ManyToOne @JoinColumn(name = "PARENT_CATEGORY_ID") - @JsonManagedReference(value = "parentcategory-subcategory") + @JsonBackReference(value = "subcategory-parentcategory") private Category parentCategory; /** diff --git a/ccm-core/src/main/java/org/libreccm/core/CcmObject.java b/ccm-core/src/main/java/org/libreccm/core/CcmObject.java index d6ba5efa3..a7a914b4f 100644 --- a/ccm-core/src/main/java/org/libreccm/core/CcmObject.java +++ b/ccm-core/src/main/java/org/libreccm/core/CcmObject.java @@ -21,6 +21,8 @@ package org.libreccm.core; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonManagedReference; import org.hibernate.envers.Audited; +import org.hibernate.search.annotations.Field; +import org.hibernate.search.annotations.IndexedEmbedded; import org.libreccm.categorization.Categorization; import org.libreccm.categorization.Category; import org.libreccm.categorization.CategoryManager; @@ -41,7 +43,6 @@ import javax.validation.constraints.NotNull; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; - import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; @@ -51,10 +52,6 @@ import java.util.Objects; import static org.libreccm.core.CoreConstants.CORE_XML_NS; import static org.libreccm.core.CoreConstants.DB_SCHEMA; -import org.hibernate.search.annotations.Field; -import org.hibernate.search.annotations.FieldBridge; -import org.hibernate.search.annotations.IndexedEmbedded; - /** * Root class of all entities in LibreCCM which need categorisation and * permission services. @@ -125,7 +122,7 @@ public class CcmObject implements Identifiable, Serializable { @IndexedEmbedded(includePaths = {"grantedPrivilege", "grantee.name"}) @XmlElementWrapper(name = "permissions", namespace = CORE_XML_NS) @XmlElement(name = "permission", namespace = CORE_XML_NS) - @JsonBackReference(value = "permission-object") + @JsonManagedReference(value = "object-permission") private List permissions; /** @@ -134,7 +131,7 @@ public class CcmObject implements Identifiable, Serializable { @OneToMany(mappedBy = "categorizedObject") @XmlElementWrapper(name = "categories", namespace = CORE_XML_NS) @XmlElement(name = "category", namespace = CORE_XML_NS) - @JsonBackReference(value = "categorization-object") + @JsonManagedReference(value = "object-categorization") private List categories; public CcmObject() { diff --git a/ccm-core/src/main/java/org/libreccm/security/Group.java b/ccm-core/src/main/java/org/libreccm/security/Group.java index d3353776f..f723d9f83 100644 --- a/ccm-core/src/main/java/org/libreccm/security/Group.java +++ b/ccm-core/src/main/java/org/libreccm/security/Group.java @@ -19,6 +19,7 @@ package org.libreccm.security; import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; import org.libreccm.core.DefaultEntityGraph; import org.libreccm.portation.Portable; @@ -101,7 +102,7 @@ public class Group extends Party implements Serializable, Portable { @OneToMany(mappedBy = "group") @XmlElementWrapper(name = "group-memberships", namespace = CORE_XML_NS) @XmlElement(name = "group-membership", namespace = CORE_XML_NS) - @JsonBackReference(value = "groupmembership-group") + @JsonManagedReference(value = "group-groupmembership") private Set memberships = new HashSet<>(); public Group() { diff --git a/ccm-core/src/main/java/org/libreccm/security/GroupMembership.java b/ccm-core/src/main/java/org/libreccm/security/GroupMembership.java index f8d3afbb9..02fd2048f 100644 --- a/ccm-core/src/main/java/org/libreccm/security/GroupMembership.java +++ b/ccm-core/src/main/java/org/libreccm/security/GroupMembership.java @@ -67,13 +67,13 @@ public class GroupMembership implements Serializable, Portable { @ManyToOne @JoinColumn(name = "GROUP_ID") @XmlTransient - @JsonManagedReference(value = "groupmembership-group") + @JsonBackReference(value = "group-groupmembership") private Group group; @ManyToOne @JoinColumn(name = "MEMBER_ID") @XmlTransient - @JsonManagedReference(value = "groupmembership-user") + @JsonBackReference(value = "user-groupmembership") private User member; public long getMembershipId() { diff --git a/ccm-core/src/main/java/org/libreccm/security/Party.java b/ccm-core/src/main/java/org/libreccm/security/Party.java index e6a2c6ac3..75e31b9d6 100644 --- a/ccm-core/src/main/java/org/libreccm/security/Party.java +++ b/ccm-core/src/main/java/org/libreccm/security/Party.java @@ -19,6 +19,7 @@ package org.libreccm.security; import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; import org.libreccm.core.DefaultEntityGraph; import javax.persistence.Column; @@ -98,7 +99,7 @@ public class Party implements Serializable { @OneToMany(mappedBy = "member") @XmlElementWrapper(name = "role-memberships", namespace = CORE_XML_NS) @XmlElement(name = "role-membership", namespace = CORE_XML_NS) - @JsonBackReference(value = "rolemembership-party") + @JsonManagedReference(value = "party-rolemembership") private Set roleMemberships = new HashSet<>(); protected Party() { diff --git a/ccm-core/src/main/java/org/libreccm/security/Permission.java b/ccm-core/src/main/java/org/libreccm/security/Permission.java index 62e9d4cdb..3c346e035 100644 --- a/ccm-core/src/main/java/org/libreccm/security/Permission.java +++ b/ccm-core/src/main/java/org/libreccm/security/Permission.java @@ -20,6 +20,9 @@ package org.libreccm.security; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonManagedReference; +import org.hibernate.search.annotations.ContainedIn; +import org.hibernate.search.annotations.Field; +import org.hibernate.search.annotations.IndexedEmbedded; import org.libreccm.core.CcmObject; import org.libreccm.portation.Portable; @@ -42,9 +45,6 @@ import javax.xml.bind.annotation.XmlRootElement; import java.io.Serializable; import java.util.Date; import java.util.Objects; -import org.hibernate.search.annotations.ContainedIn; -import org.hibernate.search.annotations.Field; -import org.hibernate.search.annotations.IndexedEmbedded; import static org.libreccm.core.CoreConstants.CORE_XML_NS; import static org.libreccm.core.CoreConstants.DB_SCHEMA; @@ -103,7 +103,7 @@ public class Permission implements Serializable, Portable { @ManyToOne @JoinColumn(name = "OBJECT_ID") @ContainedIn - @JsonManagedReference(value = "permission-object") + @JsonBackReference(value = "object-permission") private CcmObject object; /** @@ -112,7 +112,7 @@ public class Permission implements Serializable, Portable { @ManyToOne @IndexedEmbedded @JoinColumn(name = "GRANTEE_ID") - @JsonManagedReference(value = "permission-role") + @JsonBackReference(value = "role-permission") private Role grantee; /** diff --git a/ccm-core/src/main/java/org/libreccm/security/Role.java b/ccm-core/src/main/java/org/libreccm/security/Role.java index 6c73ecb0b..560201faf 100644 --- a/ccm-core/src/main/java/org/libreccm/security/Role.java +++ b/ccm-core/src/main/java/org/libreccm/security/Role.java @@ -153,7 +153,7 @@ public class Role implements Serializable, Portable { @OneToMany(mappedBy = "role") @XmlElementWrapper(name = "role-memberships", namespace = CORE_XML_NS) @XmlElement(name = "role-membership", namespace = CORE_XML_NS) - @JsonBackReference(value = "rolemembership-role") + @JsonManagedReference(value = "role-rolemembership") private Set memberships = new HashSet<>(); /** @@ -162,11 +162,11 @@ public class Role implements Serializable, Portable { @OneToMany(mappedBy = "grantee") @XmlElementWrapper(name = "permissions", namespace = CORE_XML_NS) @XmlElement(name = "permission", namespace = CORE_XML_NS) - @JsonBackReference(value = "permission-role") + @JsonManagedReference(value = "role-permission") private List permissions = new ArrayList<>(); @OneToMany(mappedBy = "role") - @JsonBackReference(value = "taskassignment-role") + @JsonManagedReference(value = "role-taskassignment") private List assignedTasks; /** diff --git a/ccm-core/src/main/java/org/libreccm/security/RoleMembership.java b/ccm-core/src/main/java/org/libreccm/security/RoleMembership.java index 07940602e..a3a467305 100644 --- a/ccm-core/src/main/java/org/libreccm/security/RoleMembership.java +++ b/ccm-core/src/main/java/org/libreccm/security/RoleMembership.java @@ -68,13 +68,13 @@ public class RoleMembership implements Serializable, Portable { @ManyToOne @JoinColumn(name = "ROLE_ID") @XmlTransient - @JsonManagedReference(value = "rolemembership-role") + @JsonBackReference(value = "role-rolemembership") private Role role; @ManyToOne @JoinColumn(name = "MEMBER_ID") @XmlTransient - @JsonManagedReference(value = "rolemembership-party") + @JsonBackReference(value = "party-rolemembership") private Party member; public long getMembershipId() { diff --git a/ccm-core/src/main/java/org/libreccm/security/User.java b/ccm-core/src/main/java/org/libreccm/security/User.java index 5d30e3c53..5bc5e6a72 100644 --- a/ccm-core/src/main/java/org/libreccm/security/User.java +++ b/ccm-core/src/main/java/org/libreccm/security/User.java @@ -19,6 +19,7 @@ package org.libreccm.security; import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; import org.libreccm.core.DefaultEntityGraph; import org.libreccm.core.EmailAddress; import org.libreccm.portation.Portable; @@ -204,7 +205,7 @@ public class User extends Party implements Serializable, Portable { @OneToMany(mappedBy = "member") @XmlElementWrapper(name = "group-memberships", namespace = CORE_XML_NS) @XmlElement(name = "group-membership", namespace = CORE_XML_NS) - @JsonBackReference(value = "groupmembership-user") + @JsonManagedReference(value = "user-groupmembership") private Set groupMemberships = new HashSet<>(); protected User() { diff --git a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTask.java b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTask.java index df3fd60f6..c04be08a0 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTask.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTask.java @@ -19,6 +19,7 @@ package org.libreccm.workflow; import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; import org.libreccm.portation.Portable; import org.libreccm.security.User; @@ -129,7 +130,7 @@ public class AssignableTask extends Task implements Serializable, Portable { * The roles to which task is assigned. */ @OneToMany(mappedBy = "task") - @JsonBackReference(value = "taskassignment-assignabletask") + @JsonManagedReference(value = "assignabletask-taskassignment") private List assignments; public AssignableTask() { 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 e500dcc99..8303f7c31 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/Task.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/Task.java @@ -159,14 +159,14 @@ public class Task implements Identifiable, Serializable { */ @ManyToOne @JoinColumn(name = "WORKFLOW_ID") - @JsonManagedReference(value = "task-workflow") + @JsonBackReference(value = "workflow-task") private Workflow workflow; /** * Tasks which the depends of this task. */ @ManyToMany(mappedBy = "dependsOn") - @JsonBackReference(value = "dependson-dependent") + @JsonManagedReference(value = "dependent-dependson") private List dependentTasks; /** @@ -179,7 +179,7 @@ public class Task implements Identifiable, Serializable { @JoinColumn(name = "DEPENDS_ON_TASK_ID")}, inverseJoinColumns = { @JoinColumn(name = "DEPENDENT_TASK_ID")}) - @JsonManagedReference(value = "dependson-dependent") + @JsonBackReference(value = "dependent-dependson") private List dependsOn; /** diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignment.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignment.java index 419aee01e..e6bd89be6 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignment.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignment.java @@ -60,7 +60,7 @@ public class TaskAssignment implements Serializable, Portable { */ @ManyToOne @JoinColumn(name = "TASK_ID") - @JsonManagedReference(value = "taskassignment-assignabletask") + @JsonBackReference(value = "assignabletask-taskassignment") private AssignableTask task; /** @@ -68,7 +68,7 @@ public class TaskAssignment implements Serializable, Portable { */ @ManyToOne @JoinColumn(name = "ROLE_ID") - @JsonManagedReference(value = "taskassignment-role") + @JsonBackReference(value = "role-taskassignment") private Role role; public long getTaskAssignmentId() { diff --git a/ccm-core/src/main/java/org/libreccm/workflow/Workflow.java b/ccm-core/src/main/java/org/libreccm/workflow/Workflow.java index 7e646df9d..5366cda86 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/Workflow.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/Workflow.java @@ -21,6 +21,7 @@ package org.libreccm.workflow; import static org.libreccm.core.CoreConstants.*; import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; import org.libreccm.core.CcmObject; import org.libreccm.l10n.LocalizedString; @@ -152,7 +153,7 @@ public class Workflow implements Identifiable, Serializable, Portable { * The tasks belonging to this workflow. */ @OneToMany(mappedBy = "workflow") - @JsonBackReference(value = "task-workflow") + @JsonManagedReference(value = "workflow-task") private List tasks; public Workflow() {