actualOwner = TaskModelProvider.getFactory().newUser(); actualOwner.readExternal(in); createdBy = TaskModelProvider.getFactory().newUser(); createdBy.readExternal(in); createdOn = new Date(in.readLong()); activationTime = new Date(in.readLong()); expirationTime = new Date(in.readLong());
@Test public void testNominateToGroup() { String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { businessAdministrators = [ new User('Darth Vader'), new User('Bobba Fet') ] } ),"; str += "name = 'This is my task name'})"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); long taskId = task.getId(); List<OrganizationalEntity> potentialGroups = new ArrayList<OrganizationalEntity>(); Group group = TaskModelProvider.getFactory().newGroup(); ((InternalOrganizationalEntity) group).setId("Knights Templer"); potentialGroups.add(group); taskService.nominate(taskId, "Darth Vader", potentialGroups); //shouldn't affect the assignments Task task1 = taskService.getTaskById(taskId); assertTrue(task1.getPeopleAssignments().getPotentialOwners().contains(group)); assertEquals(task1.getTaskData().getStatus(), Status.Ready); }
inputs.put("Attachment", factory.newAttachment().getClass()); inputs.put("BooleanExpression", factory.newBooleanExpression().getClass()); inputs.put("Comment", factory.newComment().getClass()); inputs.put("Content", factory.newContent().getClass()); inputs.put("Deadline", factory.newDeadline().getClass()); inputs.put("Deadlines", factory.newDeadlines().getClass()); inputs.put("Delegation", factory.newDelegation().getClass()); inputs.put("EmailNotification", factory.newEmialNotification().getClass()); inputs.put("EmailNotificationHeader", factory.newEmailNotificationHeader().getClass()); inputs.put("Escalation", factory.newEscalation().getClass()); inputs.put("Group", factory.newGroup().getClass()); inputs.put("I18NText", factory.newI18NText().getClass()); inputs.put("Notification", factory.newNotification().getClass()); inputs.put("NotificationType", NotificationType.class); inputs.put("OrganizationalEntity", OrganizationalEntity.class); inputs.put("PeopleAssignments", factory.newPeopleAssignments().getClass()); inputs.put("Reassignment", factory.newReassignment().getClass()); inputs.put("Status", Status.class); inputs.put("Task", factory.newTask().getClass()); inputs.put("TaskData", factory.newTaskData().getClass()); inputs.put("User", factory.newUser().getClass()); inputs.put("UserInfo", UserInfo.class); inputs.put("SubTasksStrategy",SubTasksStrategy.class); inputs.put("Language", factory.newLanguage().getClass()); inputs.put("Command", Command.class); inputs.put("CommandName", CommandName.class); inputs.put("ContentData", factory.newContentData().getClass()); inputs.put("Operation", Operation.class);
Reassignment reassignment = TaskModelProvider.getFactory().newReassignment(); List<OrganizationalEntity> reassignmentUsers = new ArrayList<OrganizationalEntity>(); String recipients = parameters.get("users"); String[] recipientsIds = recipients.split(ATTRIBUTES_ELEMENTS_SEPARATOR); for (String id: recipientsIds) { User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId(id.trim()); reassignmentUsers.add(user); String[] recipientsIds = recipients.split(ATTRIBUTES_ELEMENTS_SEPARATOR); for (String id: recipientsIds) { Group group = TaskModelProvider.getFactory().newGroup(); ((InternalOrganizationalEntity) group).setId(id.trim()); reassignmentUsers.add(group);
protected void processPeopleAssignments(String peopleAssignmentIds, List<OrganizationalEntity> organizationalEntities, boolean user) { if (peopleAssignmentIds != null && peopleAssignmentIds.trim().length() > 0) { String[] ids = peopleAssignmentIds.split(separator); for (String id : ids) { id = id.trim(); // JBPM-7356 - ignore empty strings if(id.length()==0) continue; boolean exists = false; for (OrganizationalEntity orgEntity : organizationalEntities) { if (orgEntity.getId().equals(id)) { exists = true; } } if (!exists) { OrganizationalEntity organizationalEntity = null; if (user) { organizationalEntity = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) organizationalEntity).setId(id); } else { organizationalEntity = TaskModelProvider.getFactory().newGroup(); ((InternalOrganizationalEntity) organizationalEntity).setId(id); } organizationalEntities.add(organizationalEntity); } } } }
vars.put("now", new Date()); InternalPeopleAssignments assignments = (InternalPeopleAssignments) TaskModelProvider.getFactory().newPeopleAssignments(); List<OrganizationalEntity> ba = new ArrayList<OrganizationalEntity>(); User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId("Administrator"); ba.add(user); User user2 = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user2).setId("Administrator"); po.add(user2); taskService.addTask(task, new HashMap<String, Object>()); long taskId = task.getId(); InternalContent content = (InternalContent) TaskModelProvider.getFactory().newContent(); taskService.addContent(taskId, content); long contentId = content.getId(); content = (InternalContent) taskService.getContentById(contentId); Object unmarshallObject = ContentMarshallerHelper.unmarshall(content.getContent(), null); checkContentSubjectAndBody(unmarshallObject); taskService.fail(taskId, "Administrator", null); assertThat(((MockNotificationListener)notificationListener).getEventsRecieved().size()).isEqualTo(0);
protected Task createTaskBasedOnWorkItemParams(KieSession session, WorkItem workItem) { InternalTask task = (InternalTask) TaskModelProvider.getFactory().newTask(); String taskName = (String) workItem.getParameter("NodeName"); CaseData caseFile = null; I18NText text = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) text).setLanguage(locale); ((InternalI18NText) text).setText(taskName); I18NText descText = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) descText).setLanguage(locale); ((InternalI18NText) descText).setText(description); I18NText subjectText = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) subjectText).setLanguage(locale); ((InternalI18NText) subjectText).setText(comment); InternalTaskData taskData = (InternalTaskData) TaskModelProvider.getFactory().newTaskData(); taskData.setWorkItemId(workItem.getId()); taskData.setProcessInstanceId(workItem.getProcessInstanceId()); User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId(createdBy); taskData.setCreatedBy(user);
TaskSummary taskSum = tasks.get(0); Comment comment = TaskModelProvider.getFactory().newComment(); ((InternalComment)comment).setAddedAt(TODAY); User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId("Troll"); ((InternalComment)comment).setAddedBy(user); ((InternalComment)comment).setText(txt); Long commentId = taskService.addComment(taskSum.getId().longValue(), comment); assertNotNull(commentId); assertTrue(commentId.longValue() > 0l); Comment comment2 = TaskModelProvider.getFactory().newComment(); ((InternalComment)comment2).setAddedAt(new Date()); User user2 = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user2).setId("Master"); ((InternalComment)comment2).setAddedBy(user2); ((InternalComment)comment2).setText(txt+"asdf"); Long commentId2 = taskService.addComment(taskSum.getId(), comment2); assertNotNull(commentId2); assertTrue(commentId2.longValue() > 0l); assertNotEquals(commentById, commentById2); List<Comment> allCommentList = taskService.getAllCommentsByTaskId(taskSum.getId()); assertEquals(2, allCommentList.size());
Language lang = TaskModelProvider.getFactory().newLanguage(); lang.setMapkey(entry.getKey()); EmailNotificationHeader header = headers.get(lang); User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId(header.getFrom()); msg.setFrom( new InternetAddress(userInfo.getEmailForEntity(user))); User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId(header.getReplyTo()); msg.setReplyTo( new InternetAddress[] { vars.put("doc", variables); vars.put("processInstanceId", task.getTaskData().getProcessInstanceId()); vars.put("processSessionId", task.getTaskData().getProcessSessionId()); vars.put("workItemId", task.getTaskData().getWorkItemId()); vars.put("expirationTime", task.getTaskData().getExpirationTime()); vars.put("taskId", task.getId()); msg.setSentDate( new Date() );
vars.put("now", new Date()); InternalComment comment = (InternalComment) TaskModelProvider.getFactory().newComment(); comment.setId(42); comment.setText(payload); comment.setAddedAt(new Date()); User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId("Case"); comment.setAddedBy(user); InternalAttachment attach = (InternalAttachment) TaskModelProvider.getFactory().newAttachment(); attach.setId(10); attach.setName("virus"); attach.setContentType("ROM"); attach.setAttachedAt(new Date()); user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId("Wintermute"); attach.setAttachedBy(user); verifyThatAllFieldsAreFilledOrUnsupported(xmlTask.getTaskData().getAttachments().get(0), Attachment.class); verifyThatAllFieldsAreFilledOrUnsupported(xmlTask.getTaskData().getComments().get(0), Comment.class); assertNotNull(bornAgainTask.getNames()); assertTrue("Round-tripped task has empty 'names' list!", !bornAgainTask.getNames().isEmpty()); Assertions.assertThat(xmlTask).isEqualToComparingFieldByFieldRecursively(bornAgainTask); verifyThatXmlFieldsAreFilled(realTask.getTaskData(), xmlTask.getTaskData(), TaskData.class, "taskInputVariables", "taskOutputVariables");
str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader((str))); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministrator("Bobba Fet", "en-UK"); TaskSummary taskSum = tasks.get(0); Comment comment = TaskModelProvider.getFactory().newComment(); ((InternalComment)comment).setAddedAt(TODAY); User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId("Troll"); ((InternalComment)comment).setAddedBy(user); ((InternalComment)comment).setText("Comment "+i+"."); final Long commentId = taskService.addComment(taskSum.getId(), comment); assertNotNull(commentId); savedComments.put(commentId, comment); List<Comment> allCommentList = taskService.getAllCommentsByTaskId(taskSum.getId()); assertEquals(commentsCount, allCommentList.size()); assertNotNull(savedComment); assertNotNull(comment.getAddedAt()); Assertions.assertThat(comment.getAddedAt()).isCloseTo(TODAY, 1000); assertEquals(savedComment.getText(), comment.getText()); assertEquals("Troll", comment.getAddedBy().getId());
Task task = TaskFactory.evalTask(new StringReader(str)); List<I18NText> names = new ArrayList<I18NText>(); I18NText text = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) text).setLanguage("en-UK"); ((InternalI18NText) text).setText(taskName); names.add(text); ((InternalTask)task).setNames(names); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); assertEquals(taskName, tasks.get(0).getName()); Task newTask = taskService.getTaskById(tasks.get(0).getId()); List<I18NText> updatedNames = new ArrayList<I18NText>(); I18NText updatedName = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) updatedName).setLanguage(newTask.getNames().get(0).getLanguage()); ((InternalI18NText) updatedName).setText("New task name"); updatedNames.add(updatedName); taskService.setTaskNames(newTask.getId(), updatedNames); List<TaskSummary> newTasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, newTasks.size()); newTask = taskService.getTaskById(newTasks.get(0).getId()); assertEquals("New task name", newTask.getNames().get(0).getText());
public UserTaskLoad(String calculatorIdentifier, String user) { super(); this.calculatorIdentifier = calculatorIdentifier; this.user = TaskModelProvider.getFactory().newUser(user); this.calculatedLoad = Double.NaN; }
@Test public void testLongDescription() { // BZ-1107473 String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet'), new User('Darth Vader') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 1000; i++) { sb.append("a"); } String comment = sb.toString(); // NOTE: AbstractHTWorkItemHandler stores "Comment" parameter as 'Description' List<I18NText> descriptions = new ArrayList<I18NText>(); I18NText descText = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) descText).setLanguage("en-UK"); ((InternalI18NText) descText).setText(comment); descriptions.add(descText); ((InternalTask)task).setDescriptions(descriptions); taskService.addTask(task, new HashMap<String, Object>()); // Fails if shortText is longer than 255 long taskId = task.getId(); Task resultTask = taskService.getTaskById(taskId); List<I18NText> resultDescriptions = resultTask.getDescriptions(); InternalI18NText resultDescription = (InternalI18NText)resultDescriptions.get(0); assertEquals(1000, resultDescription.getText().length()); // This is text // 6.1.x no longer uses shortText in API and Taskorm.xml so no assert. }
@Test public void testHandlePeopleAssignments() { InternalTask task = (InternalTask) TaskModelProvider.getFactory().newTask(); InternalTaskData taskData = (InternalTaskData) TaskModelProvider.getFactory().newTaskData(); InternalPeopleAssignments peopleAssignment = peopleAssignmentHelper.getNullSafePeopleAssignments(task); assertNotNull(peopleAssignment);
@Test public void testAssignExcludedOwners() { String excludedOwnerId = "espiegelberg"; Task task = TaskModelProvider.getFactory().newTask(); InternalPeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); workItem.setParameter(PeopleAssignmentHelper.EXCLUDED_OWNER_ID, excludedOwnerId); peopleAssignmentHelper.assignExcludedOwners(workItem, peopleAssignments); assertEquals(1, peopleAssignments.getExcludedOwners().size()); OrganizationalEntity organizationalEntity1 = peopleAssignments.getExcludedOwners().get(0); assertTrue(organizationalEntity1 instanceof User); assertEquals(excludedOwnerId, organizationalEntity1.getId()); }
locale = "en-UK"; EmailNotification emailNotification = TaskModelProvider.getFactory().newEmialNotification(); notifications.add(emailNotification); List<OrganizationalEntity> notificationRecipients = new ArrayList<OrganizationalEntity>(); EmailNotificationHeader emailHeader = TaskModelProvider.getFactory().newEmailNotificationHeader(); emailHeader.setBody(parameters.get("body")); emailHeader.setFrom(parameters.get("from")); emailHeader.setSubject(parameters.get("subject")); Language lang = TaskModelProvider.getFactory().newLanguage(); lang.setMapkey(locale); emailHeaders.put(lang, emailHeader); I18NText subject = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) subject).setLanguage(locale); ((InternalI18NText) subject).setText(emailHeader.getSubject());; User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId(id.trim()); notificationRecipients.add(user); Group group = TaskModelProvider.getFactory().newGroup(); ((InternalOrganizationalEntity) group).setId(id.trim()); notificationRecipients.add(group);
@Override public void assignTask(Task task, TaskContext context, String excludedUser) { if (!isEnabled()) { logger.debug("AssignmentService is not enabled - to enable it set system property '" + ENABLED_PROPERTY + "' to true"); return; } Assignment assignTo = this.strategy.apply(task, context, excludedUser); if (assignTo == null || assignTo.getUser() == null) { logger.warn("Strategy {} did not return any assignment for task {}", strategy, task); return; } logger.debug("Actual owner returned by strategy {} is {} for task {}", strategy, assignTo, task); User actualOwner = taskModelFactory.newUser(assignTo.getUser()); ((InternalTaskData) task.getTaskData()).setActualOwner(actualOwner); ((InternalTaskData) task.getTaskData()).setStatus(Status.Reserved); }
protected InternalPeopleAssignments getNullSafePeopleAssignments(Task task) { InternalPeopleAssignments peopleAssignments = (InternalPeopleAssignments) task.getPeopleAssignments(); if (peopleAssignments == null) { peopleAssignments = (InternalPeopleAssignments) TaskModelProvider.getFactory().newPeopleAssignments(); peopleAssignments.setPotentialOwners(new ArrayList<OrganizationalEntity>()); peopleAssignments.setBusinessAdministrators(new ArrayList<OrganizationalEntity>()); peopleAssignments.setExcludedOwners(new ArrayList<OrganizationalEntity>()); peopleAssignments.setRecipients(new ArrayList<OrganizationalEntity>()); peopleAssignments.setTaskStakeholders(new ArrayList<OrganizationalEntity>()); } return peopleAssignments; }
public ChecklistItem addTask(String userId, String[] actorIds, String[] groupIds, String name, String orderingId, long processInstanceId) { RuntimeEngine runtime = getRuntime(); InternalTask task = (InternalTask) TaskModelProvider.getFactory().newTask();; setTaskName(task, name); setTaskDescription(task, orderingId); InternalTaskData taskData = (InternalTaskData) TaskModelProvider.getFactory().newTaskData(); taskData.setProcessInstanceId(processInstanceId); User cuser = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) cuser).setId(userId); taskData.setCreatedBy(cuser); peopleAssignments = (InternalPeopleAssignments) TaskModelProvider.getFactory().newPeopleAssignments(); peopleAssignments.setPotentialOwners(new ArrayList<OrganizationalEntity>()); peopleAssignments.setBusinessAdministrators(new ArrayList<OrganizationalEntity>()); User user = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) user).setId(actorId); potentialOwners.add(user); Group group = TaskModelProvider.getFactory().newGroup(); ((InternalOrganizationalEntity) group).setId(groupId); potentialOwners.add(group); User administrator = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) administrator).setId("Administrator"); businessAdministrators.add(administrator);