From 8b4f09366488a99484be21c01cbede9a248f2307 Mon Sep 17 00:00:00 2001 From: tosmers Date: Wed, 27 Sep 2017 17:45:08 +0000 Subject: [PATCH] [TRUNK][FEATURE] - adds export capabilities for task comments - minor changes in conversion classes git-svn-id: https://svn.libreccm.org/ccm/trunk@5013 8810af33-2d31-482b-a856-94f89814c4df --- .../portation/conversion/CoreConverter.java | 4 +- .../conversion/NgCoreCollection.java | 18 ++++ .../categorization/CategoryConversion.java | 10 +-- .../core/security/GroupConversion.java | 9 +- .../core/security/PermissionConversion.java | 4 +- .../core/security/RoleConversion.java | 9 +- .../core/security/UserConversion.java | 2 +- .../workflow/AssignableTaskConversion.java | 9 +- .../core/workflow/TaskCommentConversion.java | 87 +++++++++++++++++++ .../core/workflow/WorkflowConversion.java | 5 +- .../workflow/WorkflowTemplateConversion.java | 5 +- .../portation/modules/CoreExporter.java | 45 ++++++---- .../modules/core/security/Permission.java | 1 + .../core/security/PermissionIdGenerator.java | 17 ++-- .../modules/core/workflow/AssignableTask.java | 3 + .../portation/modules/core/workflow/Task.java | 1 + .../modules/core/workflow/TaskComment.java | 15 +++- .../core/workflow/TaskCommentIdResolver.java | 52 +++++++++++ .../core/workflow/TaskCommentMarshaller.java | 28 ++++++ .../modules/core/workflow/Workflow.java | 3 + .../core/workflow/WorkflowIdResolver.java | 1 - .../core/workflow/WorkflowTemplate.java | 5 ++ .../workflow/WorkflowTemplateIdResolver.java | 50 +++++++++++ .../workflow/simple/TaskComment.java | 32 ++++++- .../core/categorization/DomainConversion.java | 9 +- .../core/core/ResourceTypeConversion.java | 2 +- .../core/web/CcmApplicationConversion.java | 2 +- 27 files changed, 366 insertions(+), 62 deletions(-) create mode 100644 ccm-core/src/com/arsdigita/portation/conversion/core/workflow/TaskCommentConversion.java create mode 100644 ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskCommentIdResolver.java create mode 100644 ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskCommentMarshaller.java create mode 100644 ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowTemplateIdResolver.java diff --git a/ccm-core/src/com/arsdigita/portation/conversion/CoreConverter.java b/ccm-core/src/com/arsdigita/portation/conversion/CoreConverter.java index e7b7fc609..86fdcd616 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/CoreConverter.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/CoreConverter.java @@ -25,6 +25,7 @@ import com.arsdigita.portation.conversion.core.security.PermissionConversion; import com.arsdigita.portation.conversion.core.security.RoleConversion; import com.arsdigita.portation.conversion.core.security.UserConversion; import com.arsdigita.portation.conversion.core.workflow.AssignableTaskConversion; +import com.arsdigita.portation.conversion.core.workflow.TaskCommentConversion; import com.arsdigita.portation.conversion.core.workflow.WorkflowConversion; import com.arsdigita.portation.conversion.core.workflow.WorkflowTemplateConversion; import com.arsdigita.portation.modules.core.security.Permission; @@ -70,8 +71,9 @@ public class CoreConverter extends AbstractConverter { } } - WorkflowConversion.convertAll(); WorkflowTemplateConversion.convertAll(); + WorkflowConversion.convertAll(); + TaskCommentConversion.convertAll(); AssignableTaskConversion.convertAll(); } diff --git a/ccm-core/src/com/arsdigita/portation/conversion/NgCoreCollection.java b/ccm-core/src/com/arsdigita/portation/conversion/NgCoreCollection.java index e8d984114..83e70232c 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/NgCoreCollection.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/NgCoreCollection.java @@ -51,6 +51,7 @@ public class NgCoreCollection { public static Map workflows = new HashMap<>(); public static Map workflowTemplates = new HashMap<>(); + public static Map taskComments = new HashMap<>(); public static Map tasks = new HashMap<>(); public static Map assignableTasks = new HashMap<>(); public static Map taskAssignments = new HashMap<>(); @@ -106,4 +107,21 @@ public class NgCoreCollection { sortedCategories.add(category); } } + + /** + * Removes the workflow templates from the list of all workflows for + * easier importation in ng as workflow is the parent class of all + * templates. Now you don't have to consider the already imported + * templates while importing all other workflows and being in danger of + * duplications. + */ + public static void removeTemplatesFromWorkflows() { + int removed = 0; + for (long templateId : workflowTemplates.keySet()) { + workflows.remove(templateId); + removed++; + } + System.err.printf("\t\tRemoved %d templates from over all workflows." + + "\n", removed); + } } diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/categorization/CategoryConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/categorization/CategoryConversion.java index 32c071f3a..ac925a2ca 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/categorization/CategoryConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/categorization/CategoryConversion.java @@ -53,7 +53,6 @@ public class CategoryConversion { System.err.printf("\tConverting categories and categorizations...\n"); createCategoryAndCategorizations(trunkCategories); setRingAssociations(trunkCategories); - System.err.printf("\tSorting categories...\n"); NgCoreCollection.sortCategories(); @@ -70,7 +69,7 @@ public class CategoryConversion { */ private static void createCategoryAndCategorizations( List trunkCategories) { - long processedCategories = 0, processedCategorizations = 0; + int processedCategories = 0, processedCategorizations = 0; for (com.arsdigita.categorization.Category @@ -88,8 +87,9 @@ public class CategoryConversion { processedCategories++; } - System.err.printf("\t\tCreated %d categories and %d categorizations." + - "\n", processedCategories, processedCategorizations); + System.err.printf("\t\tCreated %d categories and\n" + + "\t\tcreated %d categorizations.\n", + processedCategories, processedCategorizations); } /** @@ -106,7 +106,7 @@ public class CategoryConversion { private static long createCategorizations(Category category, CategorizedCollection categorizedObjects) { - long processed = 0; + int processed = 0; while (categorizedObjects.next()) { CcmObject categorizedObject = NgCoreCollection diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/security/GroupConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/security/GroupConversion.java index 1792b0e65..fb6c6a17b 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/security/GroupConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/security/GroupConversion.java @@ -63,7 +63,7 @@ public class GroupConversion { */ private static void createGroupsAndSetAssociations( List trunkGroups) { - long pGroups = 0, pMemberships = 0; + int pGroups = 0, pMemberships = 0; for (com.arsdigita.kernel.Group trunkGroup : trunkGroups) { // create groups @@ -75,8 +75,9 @@ public class GroupConversion { pGroups++; } - System.err.printf("\t\tCreated %d groups and %d group memberships.\n", - pGroups, pMemberships); + System.err.printf("\t\tCreated %d groups and\n" + + "\t\tcreated %d group memberships.\n", + pGroups, pMemberships); } /** @@ -91,7 +92,7 @@ public class GroupConversion { */ private static long createGroupMemberships(Group group, UserCollection userCollection) { - long processed = 0; + int processed = 0; while (userCollection.next()) { User member = NgCoreCollection.users.get(userCollection.getUser() diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/security/PermissionConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/security/PermissionConversion.java index aa6894719..287f09f22 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/security/PermissionConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/security/PermissionConversion.java @@ -81,7 +81,7 @@ public class PermissionConversion { */ private static void createPermissionsAndSetAssociations(final List trunkPermissions) { - long processed = 0, skipped = 0; + int processed = 0, skipped = 0; for (com.arsdigita.kernel.permissions.Permission trunkPermission : trunkPermissions) { @@ -150,7 +150,7 @@ public class PermissionConversion { */ private static void setGranteeDependency(final List trunkPermissions) { - long duplicates = 0; + int duplicates = 0; for (com.arsdigita.kernel.permissions.Permission trunkPermission : trunkPermissions) { diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/security/RoleConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/security/RoleConversion.java index c298e4207..cab181c0f 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/security/RoleConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/security/RoleConversion.java @@ -63,7 +63,7 @@ public class RoleConversion { */ private static void createRolesAndSetAssociations( List trunkRoles) { - long pRoles = 0, pMemberships = 0; + int pRoles = 0, pMemberships = 0; for (com.arsdigita.kernel.Role trunkRole : trunkRoles) { // create roles @@ -75,8 +75,9 @@ public class RoleConversion { pRoles++; } - System.out.printf("\t\tCreated %d roles and %d role memberships.\n", - pRoles, pMemberships); + System.out.printf("\t\tCreated %d roles and\n" + + "\t\tcreated %d role memberships.\n", + pRoles, pMemberships); } /** @@ -91,7 +92,7 @@ public class RoleConversion { */ private static long createRoleMemberships(Role role, PartyCollection partyCollection) { - long processed = 0; + int processed = 0; while (partyCollection.next()) { Party member = NgCoreCollection.parties.get(partyCollection.getParty() diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/security/UserConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/security/UserConversion.java index dbeaee255..d9f3b80fb 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/security/UserConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/security/UserConversion.java @@ -45,7 +45,7 @@ public class UserConversion { System.err.printf("\tConverting users...\n"); // create users - long processed = 0; + int processed = 0; for (com.arsdigita.kernel.User trunkUser : trunkUsers) { new User(trunkUser); processed++; diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/AssignableTaskConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/AssignableTaskConversion.java index 0a05853bb..cc55cad9d 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/AssignableTaskConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/AssignableTaskConversion.java @@ -75,7 +75,7 @@ public class AssignableTaskConversion { */ private static void createAssignableTasksAndSetAssociations(List trunkUserTasks) { - long pTasks = 0, pAssignments = 0; + int pTasks = 0, pAssignments = 0; for (com.arsdigita.workflow.simple.UserTask trunkUserTask : trunkUserTasks) { @@ -136,8 +136,9 @@ public class AssignableTaskConversion { pTasks++; } - System.err.printf("\t\tCreated %d assignable tasks and %d task " + - "assignments.\n", pTasks, pAssignments); + System.err.printf("\t\tCreated %d assignable tasks and\n" + + "\t\tcreated %d task assignments.\n", + pTasks, pAssignments); } /** @@ -154,7 +155,7 @@ public class AssignableTaskConversion { */ private static long createTaskAssignments(AssignableTask assignableTask, GroupCollection groupCollection) { - long processed = 0; + int processed = 0; while (groupCollection.next()) { RoleCollection roleCollection = groupCollection.getGroup().getRoles(); diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/TaskCommentConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/TaskCommentConversion.java new file mode 100644 index 000000000..38898d219 --- /dev/null +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/TaskCommentConversion.java @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2015 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package com.arsdigita.portation.conversion.core.workflow; + +import com.arsdigita.portation.conversion.NgCoreCollection; +import com.arsdigita.portation.modules.core.security.User; +import com.arsdigita.portation.modules.core.workflow.TaskComment; + +import java.util.List; + +/** + * Class for converting all + * trunk-{@link com.arsdigita.workflow.simple.TaskComment}s into + * ng-{@link TaskComment}s as preparation for a successful export of all trunk + * classes into the new ng-system. + * + * @author trunkTaskComments = com + .arsdigita.workflow.simple.TaskComment.getAllTaskComments(); + System.err.println("done."); + + System.err.printf("\tConverting task comments...\n"); + createTaskCommentsAndSetAssociations(trunkTaskComments); + System.err.println("\tdone.\n"); + + } + + /** + * Creates the equivalent ng-class of the {@code TaskComment} and restores + * the associations to other classes. + * + * @param trunkTaskComments List of all + * {@link com.arsdigita.workflow.simple.TaskComment}s + * from this old trunk-system. + */ + private static void createTaskCommentsAndSetAssociations( + List trunkTaskComments) { + int processed = 0; + + for (com.arsdigita.workflow.simple.TaskComment trunkTaskComment : + trunkTaskComments) { + // create TaskComments + TaskComment taskComment = new TaskComment(trunkTaskComment); + + // set author associations + com.arsdigita.kernel.User trunkAuthor = trunkTaskComment.getUser(); + if (trunkAuthor != null) { + User author = NgCoreCollection + .users + .get(trunkAuthor.getID().longValue()); + taskComment.setAuthor(author); + } + + processed++; + } + + System.err.printf("\t\tCreated %d task comments.\n", processed); + } +} diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/WorkflowConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/WorkflowConversion.java index d453e0e11..ba17a6d38 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/WorkflowConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/WorkflowConversion.java @@ -50,12 +50,15 @@ public class WorkflowConversion { System.err.printf("\tConverting workflows...\n"); createWorkflowAndSetAssociations(trunkWorkflows); + System.err.printf("\tRemoving workflow templates...\n"); + NgCoreCollection.removeTemplatesFromWorkflows(); + System.err.println("\tdone.\n"); } private static void createWorkflowAndSetAssociations( List trunkWorkflows) { - long processed = 0; + int processed = 0; for (com.arsdigita.workflow.simple.Workflow trunkWorkflow : trunkWorkflows) { diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/WorkflowTemplateConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/WorkflowTemplateConversion.java index 3e8603e10..c13f14c43 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/WorkflowTemplateConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/WorkflowTemplateConversion.java @@ -47,14 +47,13 @@ public class WorkflowTemplateConversion { System.err.println("done."); System.err.printf("\tConverting workflow templates...\n"); - trunkWorkflowTemplates.forEach(WorkflowTemplate::new); - long processed = 0; + int processed = 0; for (com.arsdigita.workflow.simple.WorkflowTemplate trunkWorkflowTemplate : trunkWorkflowTemplates) { new WorkflowTemplate(trunkWorkflowTemplate); processed++; } - System.out.printf("\t\t Created %d workflow templates.\n", processed); + System.out.printf("\t\tCreated %d workflow templates.\n", processed); System.err.println("\tdone.\n"); } } diff --git a/ccm-core/src/com/arsdigita/portation/modules/CoreExporter.java b/ccm-core/src/com/arsdigita/portation/modules/CoreExporter.java index 917f54396..61354cda8 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/CoreExporter.java +++ b/ccm-core/src/com/arsdigita/portation/modules/CoreExporter.java @@ -24,10 +24,7 @@ import com.arsdigita.portation.conversion.NgCoreCollection; import com.arsdigita.portation.modules.core.categorization.CategorizationMarshaller; import com.arsdigita.portation.modules.core.categorization.CategoryMarshaller; import com.arsdigita.portation.modules.core.security.*; -import com.arsdigita.portation.modules.core.workflow.AssignableTaskMarshaller; -import com.arsdigita.portation.modules.core.workflow.TaskAssignmentMarshaller; -import com.arsdigita.portation.modules.core.workflow.WorkflowMarshaller; -import com.arsdigita.portation.modules.core.workflow.WorkflowTemplateMarshaller; +import com.arsdigita.portation.modules.core.workflow.*; import java.util.ArrayList; @@ -49,12 +46,13 @@ public class CoreExporter extends AbstractExporter { exportCategories(); exportCategorizations(); - exportWorkflows(); + exportPermissions(); + exportWorkflowTemplates(); + exportWorkflows(); + exportTaskComments(); exportAssignableTasks(); exportTaskAssignments(); - - exportPermissions(); } @@ -130,6 +128,17 @@ public class CoreExporter extends AbstractExporter { System.out.printf("\tdone.\n"); } + private static void exportPermissions() { + System.out.printf("\tExporting permissions..."); + PermissionMarshaller permissionMarshaller = new + PermissionMarshaller(); + permissionMarshaller.prepare( + Format.XML, pathName, "permissions", indentation); + permissionMarshaller.exportList( + new ArrayList<>(NgCoreCollection.permissions.values())); + System.out.printf("\tdone.\n"); + } + private static void exportWorkflowTemplates() { System.out.printf("\tExporting workflow templates..."); WorkflowTemplateMarshaller workflowTemplateMarshaller = new @@ -151,6 +160,17 @@ public class CoreExporter extends AbstractExporter { System.out.printf("\t\tdone.\n"); } + private static void exportTaskComments() { + System.out.printf("\tExporting task comments..."); + TaskCommentMarshaller taskCommentMarshaller = new + TaskCommentMarshaller(); + taskCommentMarshaller.prepare( + Format.XML, pathName, "taskComments", indentation); + taskCommentMarshaller.exportList( + new ArrayList<>(NgCoreCollection.taskComments.values())); + System.out.printf("\tdone.\n"); + } + private static void exportAssignableTasks() { System.out.printf("\tExporting assignable tasks..."); AssignableTaskMarshaller assignableTaskMarshaller = new @@ -172,15 +192,4 @@ public class CoreExporter extends AbstractExporter { new ArrayList<>(NgCoreCollection.taskAssignments.values())); System.out.printf("\tdone.\n"); } - - private static void exportPermissions() { - System.out.printf("\tExporting permissions..."); - PermissionMarshaller permissionMarshaller = new - PermissionMarshaller(); - permissionMarshaller.prepare( - Format.XML, pathName, "permissions", indentation); - permissionMarshaller.exportList( - new ArrayList<>(NgCoreCollection.permissions.values())); - System.out.printf("\tdone.\n"); - } } 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 d0a51e8a5..1009d50cc 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 @@ -43,6 +43,7 @@ public class Permission implements Portable { private CcmObject object; @JsonIdentityReference(alwaysAsId = true) private Role grantee; + @JsonIdentityReference(alwaysAsId = true) private User creationUser; private Date creationDate; private String creationIp; diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/security/PermissionIdGenerator.java b/ccm-core/src/com/arsdigita/portation/modules/core/security/PermissionIdGenerator.java index 9138bf2a1..427762519 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/security/PermissionIdGenerator.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/security/PermissionIdGenerator.java @@ -64,15 +64,17 @@ public class PermissionIdGenerator extends ObjectIdGenerator { final Permission permission = (Permission) forPojo; - String id = permission.getGrantedPrivilege() + - permission.getPermissionId(); + String privilege = permission.getGrantedPrivilege(), + roleName = "", + objectUuid = ""; boolean a = false, b = false; - if (permission.getObject() != null) { - id += permission.getObject().getUuid(); + + if (permission.getGrantee() != null) { + roleName = permission.getGrantee().getName(); a = true; } - if (permission.getGrantee() != null) { - id += permission.getGrantee().getName(); + if (permission.getObject() != null) { + objectUuid = permission.getObject().getUuid(); b = true; } @@ -81,6 +83,7 @@ public class PermissionIdGenerator extends ObjectIdGenerator { permission.getGrantedPrivilege()); } - return id; + return String.join("_", + privilege, roleName, objectUuid); } } 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 4ed3ad1c4..3c98987ea 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,6 +22,7 @@ import com.arsdigita.portation.Portable; import com.arsdigita.portation.conversion.NgCoreCollection; import com.arsdigita.portation.modules.core.security.User; import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.ObjectIdGenerators; @@ -39,10 +40,12 @@ import java.util.List; public class AssignableTask extends Task implements Portable { private boolean locked; + @JsonIdentityReference(alwaysAsId = true) private User lockingUser; private Date startDate; private Date dueDate; private long durationMinutes; + @JsonIdentityReference(alwaysAsId = true) private User notificationSender; @JsonIgnore private List assignments; diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Task.java b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Task.java index b57197bc0..e0c5a0bf9 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Task.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Task.java @@ -52,6 +52,7 @@ public class Task { private List dependentTasks; @JsonIdentityReference(alwaysAsId = true) private List dependsOn; + @JsonIdentityReference(alwaysAsId = true) private List comments; diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskComment.java b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskComment.java index d597fe1c6..fce55bc48 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskComment.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/TaskComment.java @@ -18,7 +18,12 @@ */ package com.arsdigita.portation.modules.core.workflow; +import com.arsdigita.portation.Portable; +import com.arsdigita.portation.conversion.NgCoreCollection; import com.arsdigita.portation.modules.core.security.User; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.JsonIdentityReference; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; import java.util.UUID; @@ -26,11 +31,15 @@ import java.util.UUID; * @author Tobias Osmers<\a> + * @version created the 9/27/17 + */ +public class TaskCommentMarshaller extends AbstractMarshaller { +} 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 3e7cf1c64..385e50fb8 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,6 +24,7 @@ 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.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.ObjectIdGenerators; @@ -43,12 +44,14 @@ public class Workflow implements Portable { private long workflowId; private String uuid; + @JsonIdentityReference(alwaysAsId = true) private WorkflowTemplate template; private LocalizedString name; private LocalizedString description; private WorkflowState state; private boolean active; private TaskState tasksState; + @JsonIdentityReference(alwaysAsId = true) private CcmObject object; @JsonIgnore private List tasks; diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowIdResolver.java b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowIdResolver.java index 1f67cc099..9f957290b 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowIdResolver.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowIdResolver.java @@ -36,7 +36,6 @@ public class WorkflowIdResolver implements ObjectIdResolver { @Override public Object resolveId(final ObjectIdGenerator.IdKey id) { - // Find the user for the id (don't confuse that with the primary key!). return null; } diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowTemplate.java b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowTemplate.java index 957c54482..2166ecd2b 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowTemplate.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/WorkflowTemplate.java @@ -19,11 +19,16 @@ package com.arsdigita.portation.modules.core.workflow; import com.arsdigita.portation.conversion.NgCoreCollection; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; /** * @author trunkApplications) { - long processed = 0; + int processed = 0; for (Application trunkApplication : trunkApplications) { // create applications