- adds @JsonIdentityInfo annotations for export
- implements IdGenerators and IdResolvers for the use of @JsonIdentityInfo

git-svn-id: https://svn.libreccm.org/ccm/trunk@4632 8810af33-2d31-482b-a856-94f89814c4df
master
tosmers 2017-03-15 19:08:45 +00:00
parent ad7c872d3a
commit d61efd3d30
14 changed files with 61 additions and 3 deletions

View File

@ -23,6 +23,7 @@ import com.arsdigita.portation.AbstractMarshaller;
import com.arsdigita.portation.Portable; import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.core.CcmObject; import com.arsdigita.portation.modules.core.core.CcmObject;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIdentityReference;
/** /**
@ -33,6 +34,8 @@ import com.fasterxml.jackson.annotation.JsonIdentityReference;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = CategorizationIdGenerator.class,
property = "customCatId")
public class Categorization implements Portable { public class Categorization implements Portable {
private long categorizationId; private long categorizationId;

View File

@ -25,9 +25,10 @@ import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.core.CcmObject; import com.arsdigita.portation.modules.core.core.CcmObject;
import com.arsdigita.portation.modules.core.l10n.LocalizedString; import com.arsdigita.portation.modules.core.l10n.LocalizedString;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIdentityReference;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -45,6 +46,9 @@ import java.util.Locale;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = CategoryIdResolver.class,
property = "uuid")
public class Category extends CcmObject implements Portable { public class Category extends CcmObject implements Portable {
private String uniqueId; private String uniqueId;

View File

@ -23,7 +23,9 @@ import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.categorization.Categorization; import com.arsdigita.portation.modules.core.categorization.Categorization;
import com.arsdigita.portation.modules.core.categorization.Category; import com.arsdigita.portation.modules.core.categorization.Category;
import com.arsdigita.portation.modules.core.security.Permission; import com.arsdigita.portation.modules.core.security.Permission;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -46,6 +48,9 @@ import java.util.UUID;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = CcmObjectIdResolver.class,
property = "uuid")
public class CcmObject { public class CcmObject {
private long objectId; private long objectId;

View File

@ -21,7 +21,9 @@ package com.arsdigita.portation.modules.core.security;
import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.AbstractMarshaller;
import com.arsdigita.portation.Portable; import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@ -30,6 +32,9 @@ import java.util.Set;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 31.05.16 * @version created on 31.05.16
*/ */
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = GroupIdResolver.class,
property = "name")
public class Group extends Party implements Portable { public class Group extends Party implements Portable {
@JsonIgnore @JsonIgnore

View File

@ -22,12 +22,15 @@ import com.arsdigita.kernel.ACSObject;
import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.AbstractMarshaller;
import com.arsdigita.portation.Portable; import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIdentityReference;
/** /**
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = GroupMembershipIdGenerator.class,
property = "customMemId")
public class GroupMembership implements Portable { public class GroupMembership implements Portable {
private long membershipId; private long membershipId;

View File

@ -19,7 +19,9 @@
package com.arsdigita.portation.modules.core.security; package com.arsdigita.portation.modules.core.security;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@ -28,6 +30,9 @@ import java.util.Set;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 01.06.16 * @version created on 01.06.16
*/ */
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = PartyIdResolver.class,
property = "name")
public class Party { public class Party {
private long partyId; private long partyId;

View File

@ -24,6 +24,7 @@ import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.core.CcmObject; import com.arsdigita.portation.modules.core.core.CcmObject;
import com.arsdigita.portation.modules.core.security.util.PermissionIdMapper; import com.arsdigita.portation.modules.core.security.util.PermissionIdMapper;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIdentityReference;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -33,6 +34,9 @@ import java.util.Date;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = PermissionIdGenerator.class,
resolver = PermissionIdResolver.class,
property = "customPermId")
public class Permission implements Portable { public class Permission implements Portable {
private long permissionId; private long permissionId;

View File

@ -23,7 +23,9 @@ import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.l10n.LocalizedString; import com.arsdigita.portation.modules.core.l10n.LocalizedString;
import com.arsdigita.portation.modules.core.workflow.TaskAssignment; import com.arsdigita.portation.modules.core.workflow.TaskAssignment;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
@ -35,6 +37,9 @@ import java.util.Set;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = RoleIdResolver.class,
property = "name")
public class Role implements Portable { public class Role implements Portable {
private long roleId; private long roleId;

View File

@ -22,12 +22,15 @@ import com.arsdigita.kernel.ACSObject;
import com.arsdigita.portation.AbstractMarshaller; import com.arsdigita.portation.AbstractMarshaller;
import com.arsdigita.portation.Portable; import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIdentityReference;
/** /**
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = RoleMembershipIdGenerator.class,
property = "customMemId")
public class RoleMembership implements Portable { public class RoleMembership implements Portable {
private long membershipId; private long membershipId;

View File

@ -22,8 +22,9 @@ import com.arsdigita.portation.AbstractMarshaller;
import com.arsdigita.portation.Portable; import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.core.EmailAddress; import com.arsdigita.portation.modules.core.core.EmailAddress;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
@ -35,7 +36,9 @@ import java.util.Set;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 31.05.16 * @version created on 31.05.16
*/ */
@JsonIgnoreProperties(ignoreUnknown=true) @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = UserIdResolver.class,
property = "name")
public class User extends Party implements Portable { public class User extends Party implements Portable {
private String givenName; private String givenName;

View File

@ -22,7 +22,9 @@ import com.arsdigita.portation.AbstractMarshaller;
import com.arsdigita.portation.Portable; import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.security.User; import com.arsdigita.portation.modules.core.security.User;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -32,6 +34,9 @@ import java.util.List;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = AssignableTaskIdResolver.class,
property = "uuid")
public class AssignableTask extends Task implements Portable { public class AssignableTask extends Task implements Portable {
private boolean locked; private boolean locked;

View File

@ -21,8 +21,10 @@ package com.arsdigita.portation.modules.core.workflow;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.l10n.LocalizedString; import com.arsdigita.portation.modules.core.l10n.LocalizedString;
import com.arsdigita.portation.modules.core.workflow.util.StateMapper; import com.arsdigita.portation.modules.core.workflow.util.StateMapper;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIdentityReference;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -33,6 +35,9 @@ import java.util.UUID;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = TaskIdResolver.class,
property = "uuid")
public class Task { public class Task {
private long taskId; private long taskId;

View File

@ -23,12 +23,15 @@ import com.arsdigita.portation.AbstractMarshaller;
import com.arsdigita.portation.Portable; import com.arsdigita.portation.Portable;
import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.security.Role; import com.arsdigita.portation.modules.core.security.Role;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIdentityReference;
/** /**
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = TaskAssignmentIdGenerator.class,
property = "customAssignId")
public class TaskAssignment implements Portable { public class TaskAssignment implements Portable {
private long taskAssignmentId; private long taskAssignmentId;

View File

@ -24,7 +24,9 @@ import com.arsdigita.portation.conversion.NgCollection;
import com.arsdigita.portation.modules.core.core.CcmObject; import com.arsdigita.portation.modules.core.core.CcmObject;
import com.arsdigita.portation.modules.core.l10n.LocalizedString; import com.arsdigita.portation.modules.core.l10n.LocalizedString;
import com.arsdigita.portation.modules.core.workflow.util.StateMapper; import com.arsdigita.portation.modules.core.workflow.util.StateMapper;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -35,6 +37,9 @@ import java.util.UUID;
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a> * @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
* @version created on 6/15/16 * @version created on 6/15/16
*/ */
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = WorkflowIdResolver.class,
property = "uuid")
public class Workflow implements Portable { public class Workflow implements Portable {
private long workflowId; private long workflowId;