Refine search
@Override @SuppressWarnings("unchecked") protected void writeAdditionalAttributes(BaseElement element, BpmnModel model, XMLStreamWriter xtw) throws Exception { UserTask userTask = (UserTask) element; writeQualifiedAttribute(ATTRIBUTE_TASK_USER_ASSIGNEE, userTask.getAssignee(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_USER_OWNER, userTask.getOwner(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_USER_CANDIDATEUSERS, convertToDelimitedString(userTask.getCandidateUsers()), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_USER_CANDIDATEGROUPS, convertToDelimitedString(userTask.getCandidateGroups()), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_USER_DUEDATE, userTask.getDueDate(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_USER_BUSINESS_CALENDAR_NAME, userTask.getBusinessCalendarName(), xtw); writeQualifiedAttribute(ATTRIBUTE_TASK_USER_CATEGORY, userTask.getCategory(), xtw); writeQualifiedAttribute(ATTRIBUTE_FORM_FORMKEY, userTask.getFormKey(), xtw); if (userTask.getPriority() != null) { writeQualifiedAttribute(ATTRIBUTE_TASK_USER_PRIORITY, userTask.getPriority(), xtw); } if (StringUtils.isNotEmpty(userTask.getExtensionId())) { writeQualifiedAttribute(ATTRIBUTE_TASK_SERVICE_EXTENSIONID, userTask.getExtensionId(), xtw); } if (userTask.getSkipExpression() != null) { writeQualifiedAttribute(ATTRIBUTE_TASK_USER_SKIP_EXPRESSION, userTask.getSkipExpression(), xtw); } // write custom attributes BpmnXMLUtil.writeCustomAttributes(userTask.getAttributes().values(), xtw, defaultElementAttributes, defaultActivityAttributes, defaultUserTaskAttributes); }
public void setValues(UserTask otherElement) { super.setValues(otherElement); setAssignee(otherElement.getAssignee()); setOwner(otherElement.getOwner()); setFormKey(otherElement.getFormKey()); setDueDate(otherElement.getDueDate()); setPriority(otherElement.getPriority()); setCategory(otherElement.getCategory()); setExtensionId(otherElement.getExtensionId()); setSkipExpression(otherElement.getSkipExpression()); setCandidateGroups(new ArrayList<>(otherElement.getCandidateGroups())); setCandidateUsers(new ArrayList<>(otherElement.getCandidateUsers())); setCustomGroupIdentityLinks(otherElement.customGroupIdentityLinks); setCustomUserIdentityLinks(otherElement.customUserIdentityLinks); if (otherElement.getFormProperties() != null && !otherElement.getFormProperties().isEmpty()) { for (FormProperty property : otherElement.getFormProperties()) { formProperties.add(property.clone()); if (otherElement.getTaskListeners() != null && !otherElement.getTaskListeners().isEmpty()) { for (FlowableListener listener : otherElement.getTaskListeners()) { taskListeners.add(listener.clone());
protected void mapProperties(Object element) { UserTask userTask = (UserTask) element; createPropertyNode("Assignee", userTask.getAssignee()); createPropertyNode("Candidate users", userTask.getCandidateUsers()); createPropertyNode("Candidate groups", userTask.getCandidateGroups()); createPropertyNode("Due date", userTask.getDueDate()); createPropertyNode("Form key", userTask.getFormKey()); createPropertyNode("Priority", userTask.getPriority()); } }
listenerNode = validateIfNodeIsTextual(listenerNode); JsonNode eventNode = listenerNode.get(PROPERTY_LISTENER_EVENT); if (eventNode != null && !eventNode.isNull() && StringUtils.isNotEmpty(eventNode.asText())) { if (StringUtils.isNotEmpty(getValueAsString(PROPERTY_LISTENER_CLASS_NAME, listenerNode))) { listener.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_CLASS); listener.setImplementation(getValueAsString(PROPERTY_LISTENER_CLASS_NAME, listenerNode)); } else if (StringUtils.isNotEmpty(getValueAsString(PROPERTY_LISTENER_EXPRESSION, listenerNode))) { listener.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_EXPRESSION); listener.setImplementation(getValueAsString(PROPERTY_LISTENER_EXPRESSION, listenerNode)); } else if (element instanceof UserTask) { if (isTaskListener) { ((UserTask) element).getTaskListeners().add(listener); } else { ((UserTask) element).getExecutionListeners().add(listener);
property.setDefaultExpression(xtr.getAttributeValue(null, ATTRIBUTE_FORM_DEFAULT)); property.setDatePattern(xtr.getAttributeValue(null, ATTRIBUTE_FORM_DATEPATTERN)); if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_FORM_REQUIRED))) { property.setRequired(Boolean.valueOf(xtr.getAttributeValue(null, ATTRIBUTE_FORM_REQUIRED))); if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_FORM_READABLE))) { property.setReadable(Boolean.valueOf(xtr.getAttributeValue(null, ATTRIBUTE_FORM_READABLE))); if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_FORM_WRITABLE))) { property.setWriteable(Boolean.valueOf(xtr.getAttributeValue(null, ATTRIBUTE_FORM_WRITABLE))); ((UserTask) parentElement).getFormProperties().add(property); } else { ((StartEvent) parentElement).getFormProperties().add(property);
protected List<FormDefinition> getFormDefinitionsFromModel(BpmnModel bpmnModel, ProcessDefinition processDefinition) { Set<String> formKeys = new HashSet<>(); List<FormDefinition> formDefinitions = new ArrayList<>(); // for all start events List<StartEvent> startEvents = bpmnModel.getMainProcess().findFlowElementsOfType(StartEvent.class, true); for (StartEvent startEvent : startEvents) { if (StringUtils.isNotEmpty(startEvent.getFormKey())) { formKeys.add(startEvent.getFormKey()); } } // for all user tasks List<UserTask> userTasks = bpmnModel.getMainProcess().findFlowElementsOfType(UserTask.class, true); for (UserTask userTask : userTasks) { if (StringUtils.isNotEmpty(userTask.getFormKey())) { formKeys.add(userTask.getFormKey()); } } for (String formKey : formKeys) { addFormDefinitionToCollection(formDefinitions, formKey, processDefinition); } return formDefinitions; }
public TaskDefinition parseTaskDefinition(BpmnParse bpmnParse, UserTask userTask, String taskDefinitionKey, ProcessDefinitionEntity processDefinition) { TaskFormHandler taskFormHandler = new DefaultTaskFormHandler(); taskFormHandler.parseConfiguration(userTask.getFormProperties(), userTask.getFormKey(), bpmnParse.getDeployment(), processDefinition); if (StringUtils.isNotEmpty(userTask.getName())) { taskDefinition.setNameExpression(expressionManager.createExpression(userTask.getName())); if (StringUtils.isNotEmpty(userTask.getDocumentation())) { taskDefinition.setDescriptionExpression(expressionManager.createExpression(userTask.getDocumentation())); if (StringUtils.isNotEmpty(userTask.getAssignee())) { taskDefinition.setAssigneeExpression(expressionManager.createExpression(userTask.getAssignee())); if (StringUtils.isNotEmpty(userTask.getOwner())) { taskDefinition.setOwnerExpression(expressionManager.createExpression(userTask.getOwner())); for (String candidateUser : userTask.getCandidateUsers()) { taskDefinition.addCandidateUserIdExpression(expressionManager.createExpression(candidateUser)); for (String candidateGroup : userTask.getCandidateGroups()) { taskDefinition.addCandidateGroupIdExpression(expressionManager.createExpression(candidateGroup)); for (FlowableListener taskListener : userTask.getTaskListeners()) { taskDefinition.addTaskListener(taskListener.getEvent(), createTaskListener(bpmnParse, taskListener, userTask.getId())); if (StringUtils.isNotEmpty(userTask.getDueDate())) { taskDefinition.setDueDateExpression(expressionManager.createExpression(userTask.getDueDate())); if (StringUtils.isNotEmpty(userTask.getBusinessCalendarName())) { taskDefinition.setBusinessCalendarNameExpression(expressionManager.createExpression(userTask.getBusinessCalendarName()));
@Override protected void convertElementToJson(ObjectNode propertiesNode, BaseElement baseElement) { UserTask userTask = (UserTask) baseElement; String assignee = userTask.getAssignee(); if (StringUtils.isNotEmpty(assignee) || CollectionUtils.isNotEmpty(userTask.getCandidateUsers()) || CollectionUtils.isNotEmpty(userTask.getCandidateGroups())) { List<ExtensionElement> idmAssigneeList = userTask.getExtensionElements().get("activiti-idm-assignee"); List<ExtensionElement> idmAssigneeFieldList = userTask.getExtensionElements().get("activiti-idm-assignee-field"); if (CollectionUtils.isNotEmpty(idmAssigneeList) || CollectionUtils.isNotEmpty(idmAssigneeFieldList) || CollectionUtils.isNotEmpty(userTask.getExtensionElements().get("activiti-idm-candidate-user")) || CollectionUtils.isNotEmpty(userTask.getExtensionElements().get("activiti-idm-candidate-group"))) { List<ExtensionElement> canCompleteList = userTask.getExtensionElements().get("initiator-can-complete"); if (CollectionUtils.isNotEmpty(canCompleteList)) { assignmentValuesNode.put("initiatorCanCompleteTask", Boolean.valueOf(canCompleteList.get(0).getElementText())); if (StringUtils.isNotEmpty(userTask.getAssignee())) { ObjectNode assigneeNode = objectMapper.createObjectNode(); assigneeNode.put("id", userTask.getAssignee()); idmNode.set("assignee", assigneeNode); idmNode.put("type", "user"); List<ExtensionElement> idmCandidateUserList = userTask.getExtensionElements().get("activiti-idm-candidate-user"); if (CollectionUtils.isNotEmpty(userTask.getCandidateUsers()) && CollectionUtils.isNotEmpty(idmCandidateUserList)) { if (userTask.getCandidateUsers().size() > 0) { ArrayNode candidateUsersNode = objectMapper.createArrayNode(); idmNode.set("candidateUsers", candidateUsersNode); idmNode.put("type", "users"); for (String candidateUser : userTask.getCandidateUsers()) {
@Override protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { UserTask task = new UserTask(); task.setPriority(getPropertyValueAsString(PROPERTY_USERTASK_PRIORITY, elementNode)); String formKey = getPropertyValueAsString(PROPERTY_FORMKEY, elementNode); if (StringUtils.isNotEmpty(formKey)) { task.setFormKey(formKey); } else { JsonNode formReferenceNode = getProperty(PROPERTY_FORM_REFERENCE, elementNode); task.setFormKey(formMap.get(formReferenceNode.get("id").asText())); task.setDueDate(getPropertyValueAsString(PROPERTY_USERTASK_DUEDATE, elementNode)); task.setCategory(getPropertyValueAsString(PROPERTY_USERTASK_CATEGORY, elementNode)); JsonNode assigneeNode = assignmentDefNode.get(PROPERTY_USERTASK_ASSIGNEE); if (assigneeNode != null && !assigneeNode.isNull()) { task.setAssignee(assigneeNode.asText()); task.setCandidateUsers(getValueAsList(PROPERTY_USERTASK_CANDIDATE_USERS, assignmentDefNode)); task.setCandidateGroups(getValueAsList(PROPERTY_USERTASK_CANDIDATE_GROUPS, assignmentDefNode)); if (StringUtils.isNotEmpty(task.getAssignee()) && !"$INITIATOR".equalsIgnoreCase(task.getAssignee())) { } else if (StringUtils.isNotEmpty(task.getAssignee()) && "$INITIATOR".equalsIgnoreCase(task.getAssignee())) { addInitiatorCanCompleteExtensionElement(true, task); task.setAssignee("$INITIATOR"); addExtensionElement("activiti-idm-initiator", String.valueOf(true), task);
if (StringUtils.isNotEmpty(formKey)) { if (model.getUserTaskFormTypes() != null && model.getUserTaskFormTypes().contains(formKey)) { userTask = new AlfrescoUserTask(); userTask = new UserTask(); userTask.setDueDate(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_DUEDATE, xtr)); userTask.setBusinessCalendarName(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_BUSINESS_CALENDAR_NAME, xtr)); userTask.setCategory(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_CATEGORY, xtr)); userTask.setFormKey(formKey); userTask.setAssignee(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_ASSIGNEE, xtr)); userTask.setOwner(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_OWNER, xtr)); userTask.setPriority(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_PRIORITY, xtr)); if (StringUtils.isNotEmpty(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_CANDIDATEUSERS, xtr))) { String expression = BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_CANDIDATEUSERS, xtr); userTask.getCandidateUsers().addAll(parseDelimitedList(expression)); if (StringUtils.isNotEmpty(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_CANDIDATEGROUPS, xtr))) { String expression = BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_CANDIDATEGROUPS, xtr); userTask.getCandidateGroups().addAll(parseDelimitedList(expression)); userTask.setExtensionId(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_SERVICE_EXTENSIONID, xtr)); if (StringUtils.isNotEmpty(BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_SKIP_EXPRESSION, xtr))) { String expression = BpmnXMLUtil.getAttributeValue(ATTRIBUTE_TASK_USER_SKIP_EXPRESSION, xtr); userTask.setSkipExpression(expression);
@Override public void parseChildElement(XMLStreamReader xtr, BaseElement parentElement, BpmnModel model) throws Exception { String resourceElement = XMLStreamReaderUtil.moveDown(xtr); if (StringUtils.isNotEmpty(resourceElement) && ELEMENT_RESOURCE_ASSIGNMENT.equals(resourceElement)) { String expression = XMLStreamReaderUtil.moveDown(xtr); if (StringUtils.isNotEmpty(expression) && ELEMENT_FORMAL_EXPRESSION.equals(expression)) { if (assignmentValue.startsWith(userPrefix)) { assignmentValue = assignmentValue.substring(userPrefix.length(), assignmentValue.length() - 1).trim(); ((UserTask) parentElement).getCandidateUsers().add(assignmentValue); } else if (assignmentValue.startsWith(groupPrefix)) { assignmentValue = assignmentValue.substring(groupPrefix.length(), assignmentValue.length() - 1).trim(); ((UserTask) parentElement).getCandidateGroups().add(assignmentValue); } else { ((UserTask) parentElement).getCandidateGroups().add(assignmentValue); } else if (StringUtils.isNotEmpty(resourceElement) && ELEMENT_RESOURCE_REF.equals(resourceElement)) { String resourceId = xtr.getElementText(); if (model.containsResourceId(resourceId)) { Resource resource = model.getResource(resourceId); ((UserTask) parentElement).getCandidateGroups().add(resource.getName()); } else { Resource resource = new Resource(resourceId, resourceId); model.addResource(resource); ((UserTask) parentElement).getCandidateGroups().add(resource.getName());
task.setTaskDefinitionKey(userTask.getId()); ObjectNode taskElementProperties = BpmnOverrideContext.getBpmnOverrideElementProperties(userTask.getId(), execution.getProcessDefinitionId()); activeTaskName = getActiveValue(userTask.getName(), DynamicBpmnConstants.USER_TASK_NAME, taskElementProperties); activeTaskDescription = getActiveValue(userTask.getDocumentation(), DynamicBpmnConstants.USER_TASK_DESCRIPTION, taskElementProperties); activeTaskDueDate = getActiveValue(userTask.getDueDate(), DynamicBpmnConstants.USER_TASK_DUEDATE, taskElementProperties); activeTaskPriority = getActiveValue(userTask.getPriority(), DynamicBpmnConstants.USER_TASK_PRIORITY, taskElementProperties); activeTaskCategory = getActiveValue(userTask.getCategory(), DynamicBpmnConstants.USER_TASK_CATEGORY, taskElementProperties); activeTaskFormKey = getActiveValue(userTask.getFormKey(), DynamicBpmnConstants.USER_TASK_FORM_KEY, taskElementProperties); activeTaskSkipExpression = getActiveValue(userTask.getSkipExpression(), DynamicBpmnConstants.TASK_SKIP_EXPRESSION, taskElementProperties); activeTaskAssignee = getActiveValue(userTask.getAssignee(), DynamicBpmnConstants.USER_TASK_ASSIGNEE, taskElementProperties); activeTaskOwner = getActiveValue(userTask.getOwner(), DynamicBpmnConstants.USER_TASK_OWNER, taskElementProperties); activeTaskCandidateUsers = getActiveValueList(userTask.getCandidateUsers(), DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS, taskElementProperties); activeTaskCandidateGroups = getActiveValueList(userTask.getCandidateGroups(), DynamicBpmnConstants.USER_TASK_CANDIDATE_GROUPS, taskElementProperties); activeTaskName = userTask.getName(); activeTaskDescription = userTask.getDocumentation(); activeTaskDueDate = userTask.getDueDate(); activeTaskPriority = userTask.getPriority(); activeTaskCategory = userTask.getCategory(); activeTaskFormKey = userTask.getFormKey(); activeTaskSkipExpression = userTask.getSkipExpression(); activeTaskAssignee = userTask.getAssignee(); activeTaskOwner = userTask.getOwner(); activeTaskCandidateUsers = userTask.getCandidateUsers(); activeTaskCandidateGroups = userTask.getCandidateGroups(); } else if (dueDate instanceof String) { String businessCalendarName = null;
if (StringUtils.isNotEmpty(flowElement.getName())) { propertiesNode.put(PROPERTY_NAME, flowElement.getName()); if (StringUtils.isNotEmpty(flowElement.getDocumentation())) { propertiesNode.put(PROPERTY_DOCUMENTATION, flowElement.getDocumentation()); if (StringUtils.isNotEmpty(loopDef.getLoopCardinality()) || StringUtils.isNotEmpty(loopDef.getInputDataItem()) || StringUtils.isNotEmpty(loopDef.getCompletionCondition())) { BpmnJsonConverterUtil.convertListenersToJson(((UserTask) activity).getTaskListeners(), false, propertiesNode);
@Override protected ObjectNode createPropertiesNode(FlowElement flowElement, ObjectNode flowElementNode, ObjectMapper objectMapper) { UserTask userTask = (UserTask) flowElement; ObjectNode taskNameNode = objectMapper.createObjectNode(); putPropertyValue(BPMN_MODEL_VALUE, userTask.getName(), taskNameNode); putPropertyValue(DYNAMIC_VALUE, flowElementNode.path(USER_TASK_NAME), taskNameNode); ObjectNode assigneeNode = objectMapper.createObjectNode(); putPropertyValue(BPMN_MODEL_VALUE, userTask.getAssignee(), assigneeNode); putPropertyValue(DYNAMIC_VALUE, flowElementNode.path(USER_TASK_ASSIGNEE), assigneeNode); ObjectNode candidateUsersNode = objectMapper.createObjectNode(); putPropertyValue(BPMN_MODEL_VALUE, userTask.getCandidateUsers(), candidateUsersNode); putPropertyValue(DYNAMIC_VALUE, flowElementNode.path(USER_TASK_CANDIDATE_USERS), candidateUsersNode); ObjectNode candidateGroupsNode = objectMapper.createObjectNode(); putPropertyValue(BPMN_MODEL_VALUE, userTask.getCandidateGroups(), candidateGroupsNode); putPropertyValue(DYNAMIC_VALUE, flowElementNode.path(USER_TASK_CANDIDATE_GROUPS), candidateGroupsNode); ObjectNode propertiesNode = objectMapper.createObjectNode(); propertiesNode.set(USER_TASK_NAME, taskNameNode); propertiesNode.set(USER_TASK_ASSIGNEE, assigneeNode); propertiesNode.set(USER_TASK_CANDIDATE_USERS, candidateUsersNode); propertiesNode.set(USER_TASK_CANDIDATE_GROUPS, candidateGroupsNode); return propertiesNode; }
@Override public void addListenerToParent(FlowableListener listener, BaseElement parentElement) { if (parentElement instanceof UserTask) { ((UserTask) parentElement).getTaskListeners().add(listener); } } }
public TaskFormHandler getTaskFormHandlder(String processDefinitionId, String taskId) { org.flowable.bpmn.model.Process process = ProcessDefinitionUtil.getProcess(processDefinitionId); FlowElement flowElement = process.getFlowElement(taskId, true); if (flowElement instanceof UserTask) { UserTask userTask = (UserTask) flowElement; ProcessDefinition processDefinitionEntity = ProcessDefinitionUtil.getProcessDefinition(processDefinitionId); DeploymentEntity deploymentEntity = CommandContextUtil.getProcessEngineConfiguration() .getDeploymentEntityManager().findById(processDefinitionEntity.getDeploymentId()); TaskFormHandler taskFormHandler = new DefaultTaskFormHandler(); taskFormHandler.parseConfiguration(userTask.getFormProperties(), userTask.getFormKey(), deploymentEntity, processDefinitionEntity); return taskFormHandler; } return null; }
public void parse(XMLStreamReader xtr, BpmnModel model) throws Exception { String resourceId = xtr.getAttributeValue(null, ATTRIBUTE_ID); String resourceName = xtr.getAttributeValue(null, ATTRIBUTE_NAME); Resource resource; if (model.containsResourceId(resourceId)) { resource = model.getResource(resourceId); resource.setName(resourceName); for (org.flowable.bpmn.model.Process process : model.getProcesses()) { for (FlowElement fe : process.getFlowElements()) { if (fe instanceof UserTask && ((UserTask) fe).getCandidateGroups().contains(resourceId)) { ((UserTask) fe).getCandidateGroups().remove(resourceId); ((UserTask) fe).getCandidateGroups().add(resourceName); } } } } else { resource = new Resource(resourceId, resourceName); model.addResource(resource); } BpmnXMLUtil.addXMLLocation(resource, xtr); } }
for (JsonNode formNode : propertiesArray) { JsonNode formIdNode = formNode.get(PROPERTY_FORM_ID); if (formIdNode != null && StringUtils.isNotEmpty(formIdNode.asText())) { ((StartEvent) element).getFormProperties().add(formProperty); } else if (element instanceof UserTask) { ((UserTask) element).getFormProperties().add(formProperty);
protected static void processUserTask(FlowElement flowElement, ProcessDefinition originalProcessDefinitionEntity, DeploymentEntity newDeploymentEntity, CommandContext commandContext) { if (flowElement instanceof UserTask) { FormRepositoryService formRepositoryService = CommandContextUtil.getFormRepositoryService(); if (formRepositoryService != null) { UserTask userTask = (UserTask) flowElement; if (StringUtils.isNotEmpty(userTask.getFormKey())) { Deployment deployment = CommandContextUtil.getDeploymentEntityManager().findById(originalProcessDefinitionEntity.getDeploymentId()); if (deployment.getParentDeploymentId() != null) { List<FormDeployment> formDeployments = formRepositoryService.createDeploymentQuery().parentDeploymentId(deployment.getParentDeploymentId()).list(); if (formDeployments != null && formDeployments.size() > 0) { FormDefinition formDefinition = formRepositoryService.createFormDefinitionQuery() .formDefinitionKey(userTask.getFormKey()).deploymentId(formDeployments.get(0).getId()).latestVersion().singleResult(); if (formDefinition != null) { String name = formDefinition.getResourceName(); InputStream inputStream = formRepositoryService.getFormDefinitionResource(formDefinition.getId()); addResource(commandContext, newDeploymentEntity, name, IoUtil.readInputStream(inputStream, name)); IoUtil.closeSilently(inputStream); } } } } } } }
@Override protected ObjectNode createPropertiesNode(FlowElement flowElement, ObjectNode flowElementNode, ObjectMapper objectMapper) { UserTask userTask = (UserTask) flowElement; ObjectNode taskNameNode = objectMapper.createObjectNode(); putPropertyValue(BPMN_MODEL_VALUE, userTask.getName(), taskNameNode); putPropertyValue(DYNAMIC_VALUE, flowElementNode.path(USER_TASK_NAME), taskNameNode); ObjectNode assigneeNode = objectMapper.createObjectNode(); putPropertyValue(BPMN_MODEL_VALUE, userTask.getAssignee(), assigneeNode); putPropertyValue(DYNAMIC_VALUE, flowElementNode.path(USER_TASK_ASSIGNEE), assigneeNode); ObjectNode candidateUsersNode = objectMapper.createObjectNode(); putPropertyValue(BPMN_MODEL_VALUE, userTask.getCandidateUsers(), candidateUsersNode); putPropertyValue(DYNAMIC_VALUE, flowElementNode.path(USER_TASK_CANDIDATE_USERS), candidateUsersNode); ObjectNode candidateGroupsNode = objectMapper.createObjectNode(); putPropertyValue(BPMN_MODEL_VALUE, userTask.getCandidateGroups(), candidateGroupsNode); putPropertyValue(DYNAMIC_VALUE, flowElementNode.path(USER_TASK_CANDIDATE_GROUPS), candidateGroupsNode); ObjectNode propertiesNode = objectMapper.createObjectNode(); propertiesNode.set(USER_TASK_NAME, taskNameNode); propertiesNode.set(USER_TASK_ASSIGNEE, assigneeNode); propertiesNode.set(USER_TASK_CANDIDATE_USERS, candidateUsersNode); propertiesNode.set(USER_TASK_CANDIDATE_GROUPS, candidateGroupsNode); return propertiesNode; }