From ad7c872d3ae1fe50518651988d6cae50d5ae700d Mon Sep 17 00:00:00 2001 From: tosmers Date: Wed, 15 Mar 2017 16:10:25 +0000 Subject: [PATCH] [UPDATE] - changes jackson annotations, removes managed-back referenced connections and replaces them with jsonIgnore-jsonIdentityReference(alwaysAsId) links git-svn-id: https://svn.libreccm.org/ccm/trunk@4631 8810af33-2d31-482b-a856-94f89814c4df --- .../src/com/arsdigita/kernel/ACSObject.java | 2 +- .../core/categorization/Categorization.java | 15 +++++------- .../modules/core/categorization/Category.java | 16 ++++--------- .../modules/core/core/CcmObject.java | 10 +++----- .../modules/core/core/EmailAddress.java | 4 ---- .../modules/core/l10n/LocalizedString.java | 2 -- .../modules/core/security/Group.java | 8 +++---- .../core/security/GroupMembership.java | 12 ++++------ .../modules/core/security/Party.java | 7 ++---- .../modules/core/security/Permission.java | 15 +++++------- .../portation/modules/core/security/Role.java | 18 ++++++--------- .../modules/core/security/RoleMembership.java | 12 ++++------ .../portation/modules/core/security/User.java | 7 ++---- .../modules/core/workflow/AssignableTask.java | 10 +++----- .../portation/modules/core/workflow/Task.java | 23 +++++-------------- .../modules/core/workflow/TaskAssignment.java | 13 +++++------ .../modules/core/workflow/TaskComment.java | 4 +--- .../modules/core/workflow/Workflow.java | 11 ++------- .../core/workflow/WorkflowTemplate.java | 2 -- 19 files changed, 63 insertions(+), 128 deletions(-) diff --git a/ccm-core/src/com/arsdigita/kernel/ACSObject.java b/ccm-core/src/com/arsdigita/kernel/ACSObject.java index 4fa97a9c4..7793c3a46 100755 --- a/ccm-core/src/com/arsdigita/kernel/ACSObject.java +++ b/ccm-core/src/com/arsdigita/kernel/ACSObject.java @@ -504,7 +504,7 @@ public abstract class ACSObject extends ObservableDomainObject { super.beforeSave(); } - static BigDecimal generateID() throws PersistenceException { + public static BigDecimal generateID() throws PersistenceException { try { return Sequences.getNextValue(); } catch (SQLException e) { diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/categorization/Categorization.java b/ccm-core/src/com/arsdigita/portation/modules/core/categorization/Categorization.java index bbf42824a..e6d7c0eac 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/categorization/Categorization.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/categorization/Categorization.java @@ -18,12 +18,12 @@ */ package com.arsdigita.portation.modules.core.categorization; +import com.arsdigita.kernel.ACSObject; import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.Portable; import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.modules.core.core.CcmObject; -import com.fasterxml.jackson.annotation.JsonBackReference; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonIdentityReference; /** * Association class describing the association between a category and an @@ -33,25 +33,22 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; * @author Tobias Osmers<\a> * @version created on 6/15/16 */ -@JsonIgnoreProperties(ignoreUnknown=true) public class Category extends CcmObject implements Portable { private String uniqueId; private String name; - private LocalizedString title; private LocalizedString description; - private boolean enabled; private boolean visible; private boolean abstractCategory; - - @JsonManagedReference + @JsonIgnore private List objects; - - @JsonManagedReference + @JsonIgnore private List subCategories; - @JsonBackReference + @JsonIdentityReference(alwaysAsId = true) private Category parentCategory; - private long categoryOrder; diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/core/CcmObject.java b/ccm-core/src/com/arsdigita/portation/modules/core/core/CcmObject.java index 98e74efb1..c66a8eca0 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/core/CcmObject.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/core/CcmObject.java @@ -23,8 +23,7 @@ import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.modules.core.categorization.Categorization; import com.arsdigita.portation.modules.core.categorization.Category; import com.arsdigita.portation.modules.core.security.Permission; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonManagedReference; +import com.fasterxml.jackson.annotation.JsonIgnore; import java.util.ArrayList; import java.util.List; @@ -47,17 +46,14 @@ import java.util.UUID; * @author Tobias Osmers<\a> * @version created on 6/15/16 */ -@JsonIgnoreProperties(ignoreUnknown=true) public class EmailAddress { private String address; - private boolean bouncing; private boolean verified; diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/l10n/LocalizedString.java b/ccm-core/src/com/arsdigita/portation/modules/core/l10n/LocalizedString.java index 4d7fc0003..4412761ba 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/l10n/LocalizedString.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/l10n/LocalizedString.java @@ -19,7 +19,6 @@ package com.arsdigita.portation.modules.core.l10n; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import java.util.Collections; import java.util.HashMap; @@ -36,7 +35,6 @@ import java.util.Set; * @author Tobias Osmers<\a> * @version created on 31.05.16 */ -@JsonIgnoreProperties(ignoreUnknown=true) public class Group extends Party implements Portable { - @JsonManagedReference + @JsonIgnore private Set memberships; + public Group(final com.arsdigita.kernel.Group trunkGroup) { super(trunkGroup); - this.memberships = new HashSet<>(); NgCollection.groups.put(this.getPartyId(), this); diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/security/GroupMembership.java b/ccm-core/src/com/arsdigita/portation/modules/core/security/GroupMembership.java index a5af03f00..549bc3266 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/security/GroupMembership.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/security/GroupMembership.java @@ -18,28 +18,26 @@ */ package com.arsdigita.portation.modules.core.security; +import com.arsdigita.kernel.ACSObject; import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.Portable; import com.arsdigita.portation.conversion.NgCollection; -import com.fasterxml.jackson.annotation.JsonBackReference; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonIdentityReference; /** * @author Tobias Osmers<\a> * @version created on 01.06.16 */ -@JsonIgnoreProperties(ignoreUnknown=true) public class Party { private long partyId; private String name; - - @JsonManagedReference + @JsonIgnore private Set roleMemberships; public Party(final com.arsdigita.kernel.Party trunkParty) { diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/security/Permission.java b/ccm-core/src/com/arsdigita/portation/modules/core/security/Permission.java index ee7a94c03..6c0057fc4 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/security/Permission.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/security/Permission.java @@ -18,13 +18,13 @@ */ package com.arsdigita.portation.modules.core.security; +import com.arsdigita.kernel.ACSObject; import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.Portable; import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.modules.core.core.CcmObject; import com.arsdigita.portation.modules.core.security.util.PermissionIdMapper; -import com.fasterxml.jackson.annotation.JsonBackReference; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import java.math.BigDecimal; import java.util.Date; @@ -33,17 +33,14 @@ import java.util.Date; * @author Tobias Osmers<\a> * @version created on 6/15/16 */ -@JsonIgnoreProperties(ignoreUnknown=true) public class RoleMembership implements Portable { private long membershipId; - - @JsonBackReference + @JsonIdentityReference(alwaysAsId = true) private Role role; - @JsonBackReference + @JsonIdentityReference(alwaysAsId = true) private Party member; public RoleMembership(final Role role, final Party member) { - this.membershipId = NgCollection.roleMemberships.size() + 1; + this.membershipId = ACSObject.generateID().longValue(); this.role = role; this.member = member; diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/security/User.java b/ccm-core/src/com/arsdigita/portation/modules/core/security/User.java index 6d3c21a99..92f54e311 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/security/User.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/security/User.java @@ -22,8 +22,8 @@ import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.Portable; import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.modules.core.core.EmailAddress; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonManagedReference; import java.util.ArrayList; import java.util.HashSet; @@ -40,15 +40,12 @@ public class User extends Party implements Portable { private String givenName; private String familyName; - private EmailAddress primaryEmailAddress; private List emailAddresses; - private boolean banned; private String password; private boolean passwordResetRequired; - - @JsonManagedReference + @JsonIgnore private Set groupMemberships; public User(final com.arsdigita.kernel.User trunkUser) { diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/AssignableTask.java b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/AssignableTask.java index 605a7aba6..6b0d249fd 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/AssignableTask.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/AssignableTask.java @@ -22,8 +22,7 @@ import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.Portable; import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.modules.core.security.User; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonManagedReference; +import com.fasterxml.jackson.annotation.JsonIgnore; import java.util.ArrayList; import java.util.Date; @@ -33,21 +32,18 @@ import java.util.List; * @author Tobias Osmers<\a> * @version created on 6/15/16 */ -@JsonIgnoreProperties(ignoreUnknown=true) public class Task { private long taskId; private String uuid; - private LocalizedString label; private LocalizedString description; - private boolean active; private TaskState taskState; - - @JsonBackReference + @JsonIdentityReference(alwaysAsId = true) private Workflow workflow; - - @JsonIdentityInfo( - generator = ObjectIdGenerators.PropertyGenerator.class, - property = "taskId") + @JsonIgnore private List dependentTasks; - @JsonIdentityInfo( - generator = ObjectIdGenerators.PropertyGenerator.class, - property = "taskId") + @JsonIdentityReference(alwaysAsId = true) private List dependsOn; - private List comments; + public Task(final com.arsdigita.workflow.simple.Task trunkTask) { this.taskId = trunkTask.getID().longValue(); this.uuid = UUID.randomUUID().toString(); diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskAssignment.java b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskAssignment.java index 103ce689b..3c7eacc9b 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskAssignment.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskAssignment.java @@ -18,29 +18,28 @@ */ package com.arsdigita.portation.modules.core.workflow; +import com.arsdigita.kernel.ACSObject; import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.Portable; import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.modules.core.security.Role; -import com.fasterxml.jackson.annotation.JsonBackReference; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonIdentityReference; /** * @author Tobias Osmers * @version created on 11/18/16 */ -@JsonIgnoreProperties(ignoreUnknown=true) public class TaskComment { private long commentId; private String uuid; - private String comment; private User author; + public TaskComment(com.arsdigita.workflow.simple.TaskComment trunkTaskComment) { this.commentId = trunkTaskComment.getCommentID().longValue(); diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Workflow.java b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Workflow.java index 5f2cc3fb4..8a6a39625 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Workflow.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Workflow.java @@ -24,8 +24,7 @@ import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.modules.core.core.CcmObject; import com.arsdigita.portation.modules.core.l10n.LocalizedString; import com.arsdigita.portation.modules.core.workflow.util.StateMapper; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonManagedReference; +import com.fasterxml.jackson.annotation.JsonIgnore; import java.util.ArrayList; import java.util.List; @@ -36,24 +35,18 @@ import java.util.UUID; * @author Tobias Osmers * @version created on 11/18/16 */ -@JsonIgnoreProperties(ignoreUnknown=true) public class WorkflowTemplate extends Workflow {