Search in sources :

Example 66 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class EmailDeadlinesBaseTest method testDelayedEmailNotificationOnDeadlineTaskSkipped.

@Test(timeout = 10000)
public void testDelayedEmailNotificationOnDeadlineTaskSkipped() throws Exception {
    CountDownTaskEventListener countDownListener = new CountDownTaskEventListener(1, false, true);
    addCountDownListner(countDownListener);
    Map<String, Object> vars = new HashMap<String, Object>();
    vars.put("now", new Date());
    Reader reader = new InputStreamReader(getClass().getResourceAsStream(MvelFilePath.DeadlineWithNotification));
    InternalTask task = (InternalTask) TaskFactory.evalTask(reader, vars);
    ((InternalTaskData) task.getTaskData()).setSkipable(true);
    InternalPeopleAssignments assignments = (InternalPeopleAssignments) TaskModelProvider.getFactory().newPeopleAssignments();
    List<OrganizationalEntity> ba = new ArrayList<OrganizationalEntity>();
    User user = TaskModelProvider.getFactory().newUser();
    ((InternalOrganizationalEntity) user).setId("Administrator");
    ba.add(user);
    assignments.setBusinessAdministrators(ba);
    List<OrganizationalEntity> po = new ArrayList<OrganizationalEntity>();
    User user2 = TaskModelProvider.getFactory().newUser();
    ((InternalOrganizationalEntity) user2).setId("Administrator");
    po.add(user2);
    assignments.setPotentialOwners(po);
    task.setPeopleAssignments(assignments);
    taskService.addTask(task, new HashMap<String, Object>());
    long taskId = task.getId();
    InternalContent content = (InternalContent) TaskModelProvider.getFactory().newContent();
    Map<String, String> params = fillMarshalSubjectAndBodyParams();
    ContentData marshalledObject = ContentMarshallerHelper.marshal(task, params, null);
    content.setContent(marshalledObject.getContent());
    taskService.addContent(taskId, content);
    long contentId = content.getId();
    content = (InternalContent) taskService.getContentById(contentId);
    Object unmarshallObject = ContentMarshallerHelper.unmarshall(content.getContent(), null);
    checkContentSubjectAndBody(unmarshallObject);
    taskService.skip(taskId, "Administrator");
    // emails should not be set yet
    assertEquals(0, getWiser().getMessages().size());
    countDownListener.waitTillCompleted();
    // no email should ne sent as task was completed before deadline was triggered
    assertEquals(0, getWiser().getMessages().size());
    task = (InternalTask) taskService.getTaskById(taskId);
    assertEquals(Status.Obsolete, task.getTaskData().getStatus());
    assertEquals(0, task.getDeadlines().getStartDeadlines().size());
    assertEquals(0, task.getDeadlines().getEndDeadlines().size());
}
Also used : User(org.kie.api.task.model.User) CountDownTaskEventListener(org.jbpm.services.task.util.CountDownTaskEventListener) InputStreamReader(java.io.InputStreamReader) OrganizationalEntity(org.kie.api.task.model.OrganizationalEntity) InternalOrganizationalEntity(org.kie.internal.task.api.model.InternalOrganizationalEntity) HashMap(java.util.HashMap) InternalTask(org.kie.internal.task.api.model.InternalTask) InternalTaskData(org.kie.internal.task.api.model.InternalTaskData) ArrayList(java.util.ArrayList) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) InternalContent(org.kie.internal.task.api.model.InternalContent) InternalOrganizationalEntity(org.kie.internal.task.api.model.InternalOrganizationalEntity) Date(java.util.Date) InternalPeopleAssignments(org.kie.internal.task.api.model.InternalPeopleAssignments) ContentData(org.kie.internal.task.api.model.ContentData) Test(org.junit.Test)

Example 67 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class PeopleAssignmentHelperTest method testAssignActors.

@Test
public void testAssignActors() {
    String actorId = "espiegelberg";
    Task task = TaskModelProvider.getFactory().newTask();
    InternalTaskData taskData = (InternalTaskData) TaskModelProvider.getFactory().newTaskData();
    PeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task);
    WorkItem workItem = new WorkItemImpl();
    workItem.setParameter(PeopleAssignmentHelper.ACTOR_ID, actorId);
    peopleAssignmentHelper.assignActors(workItem, peopleAssignments, taskData);
    OrganizationalEntity organizationalEntity1 = peopleAssignments.getPotentialOwners().get(0);
    assertTrue(organizationalEntity1 instanceof User);
    assertEquals(actorId, organizationalEntity1.getId());
    assertEquals(actorId, taskData.getCreatedBy().getId());
    workItem = new WorkItemImpl();
    peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task);
    workItem.setParameter(PeopleAssignmentHelper.ACTOR_ID, actorId + ", drbug  ");
    peopleAssignmentHelper.assignActors(workItem, peopleAssignments, taskData);
    assertEquals(2, peopleAssignments.getPotentialOwners().size());
    organizationalEntity1 = peopleAssignments.getPotentialOwners().get(0);
    assertEquals(actorId, organizationalEntity1.getId());
    assertEquals(actorId, taskData.getCreatedBy().getId());
    OrganizationalEntity organizationalEntity2 = peopleAssignments.getPotentialOwners().get(1);
    assertEquals("drbug", organizationalEntity2.getId());
    workItem = new WorkItemImpl();
    peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task);
    workItem.setParameter(PeopleAssignmentHelper.ACTOR_ID, "");
    peopleAssignmentHelper.assignActors(workItem, peopleAssignments, taskData);
    assertEquals(0, peopleAssignments.getPotentialOwners().size());
}
Also used : Task(org.kie.api.task.model.Task) InternalTask(org.kie.internal.task.api.model.InternalTask) User(org.kie.api.task.model.User) OrganizationalEntity(org.kie.api.task.model.OrganizationalEntity) InternalTaskData(org.kie.internal.task.api.model.InternalTaskData) WorkItemImpl(org.drools.core.process.instance.impl.WorkItemImpl) WorkItem(org.drools.core.process.instance.WorkItem) PeopleAssignments(org.kie.api.task.model.PeopleAssignments) InternalPeopleAssignments(org.kie.internal.task.api.model.InternalPeopleAssignments) Test(org.junit.Test) AbstractBaseTest(org.jbpm.test.util.AbstractBaseTest)

Example 68 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class JaxbComment method initialize.

protected void initialize(Comment comment) {
    if (comment != null) {
        this.id = comment.getId();
        this.text = comment.getText();
        User addedByUser = comment.getAddedBy();
        if (addedByUser != null) {
            this.addedBy = addedByUser.getId();
        }
        this.addedAt = comment.getAddedAt();
    }
}
Also used : GetterUser(org.jbpm.services.task.impl.model.xml.InternalJaxbWrapper.GetterUser) User(org.kie.api.task.model.User)

Example 69 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class JaxbTask method getTask.

/**
 * This is a convienence method that retrieves a TaskImpl instance. It's used
 * internally in the {@link AddTaskCommand#execute(org.kie.internal.command.Context)} method
 * because that command requires a persistable task representation.
 * </p>
 * Users who are looking for information from the task should <i>not</i> use this method:
 * all of the task information is already available via the normal methods
 * defined by the {@link Task} or {@link InternalTask} interfaces, both of which this class
 * implements: for example: {@link JaxbTask#getId()}, {@link JaxbTask#getTaskData()}
 * or {@link JaxbTask#getPeopleAssignments()}.
 * @return a TaskImpl instance
 */
public Task getTask() {
    InternalTask taskImpl = (InternalTask) TaskModelProvider.getFactory().newTask();
    if (this.getId() != null) {
        taskImpl.setId(this.getId());
    }
    if (this.priority != null) {
        taskImpl.setPriority(this.getPriority());
    }
    JaxbPeopleAssignments jaxbPeopleAssignments = this.peopleAssignments;
    InternalPeopleAssignments peopleAssignments = (InternalPeopleAssignments) TaskModelProvider.getFactory().newPeopleAssignments();
    if (jaxbPeopleAssignments.getTaskInitiator() != null) {
        User user = createUser(this.getPeopleAssignments().getTaskInitiator().getId());
        peopleAssignments.setTaskInitiator(user);
    }
    List<OrganizationalEntity> potentialOwners = copyOrganizationalEntityList(jaxbPeopleAssignments.getPotentialOwners());
    peopleAssignments.setPotentialOwners(potentialOwners);
    List<OrganizationalEntity> businessAdmins = copyOrganizationalEntityList(jaxbPeopleAssignments.getBusinessAdministrators());
    peopleAssignments.setBusinessAdministrators(businessAdmins);
    List<OrganizationalEntity> exclOwners = copyOrganizationalEntityList(jaxbPeopleAssignments.getExcludedOwners());
    peopleAssignments.setExcludedOwners(exclOwners);
    List<OrganizationalEntity> taskStake = copyOrganizationalEntityList(jaxbPeopleAssignments.getTaskStakeholders());
    peopleAssignments.setTaskStakeholders(taskStake);
    List<OrganizationalEntity> recipients = copyOrganizationalEntityList(jaxbPeopleAssignments.getRecipients());
    peopleAssignments.setRecipients(recipients);
    taskImpl.setPeopleAssignments(peopleAssignments);
    taskImpl.setSubTaskStrategy(this.getSubTaskStrategy());
    {
        List<I18NText> names = new ArrayList<I18NText>();
        for (I18NText n : this.getNames()) {
            I18NText text = TaskModelProvider.getFactory().newI18NText();
            ((InternalI18NText) text).setId(n.getId());
            ((InternalI18NText) text).setLanguage(n.getLanguage());
            ((InternalI18NText) text).setText(n.getText());
            names.add(text);
        }
        taskImpl.setNames(names);
    }
    if (this.getName() != null) {
        taskImpl.setName(this.getName());
    } else if (!this.getNames().isEmpty()) {
        taskImpl.setName(this.getNames().get(0).getText());
    }
    {
        List<I18NText> subjects = new ArrayList<I18NText>();
        for (I18NText s : this.getSubjects()) {
            I18NText text = TaskModelProvider.getFactory().newI18NText();
            ((InternalI18NText) text).setId(s.getId());
            ((InternalI18NText) text).setLanguage(s.getLanguage());
            ((InternalI18NText) text).setText(s.getText());
            subjects.add(text);
        }
        taskImpl.setSubjects(subjects);
    }
    if (this.getSubject() != null) {
        taskImpl.setSubject(this.getSubject());
    } else if (!this.getSubjects().isEmpty()) {
        taskImpl.setSubject(this.getSubjects().get(0).getText());
    }
    {
        List<I18NText> descriptions = new ArrayList<I18NText>();
        for (I18NText d : this.getDescriptions()) {
            I18NText text = TaskModelProvider.getFactory().newI18NText();
            ((InternalI18NText) text).setId(d.getId());
            ((InternalI18NText) text).setLanguage(d.getLanguage());
            ((InternalI18NText) text).setText(d.getText());
            descriptions.add(text);
        }
        taskImpl.setDescriptions(descriptions);
    }
    if (this.getDescription() != null) {
        taskImpl.setDescription(this.getDescription());
    } else if (!this.getDescriptions().isEmpty()) {
        taskImpl.setDescription(this.getDescriptions().get(0).getText());
    }
    taskImpl.setTaskType(this.getTaskType());
    taskImpl.setFormName(this.getFormName());
    // task data
    InternalTaskData taskData = (InternalTaskData) TaskModelProvider.getFactory().newTaskData();
    JaxbTaskData jaxbTaskData = (JaxbTaskData) this.getTaskData();
    taskData.setStatus(jaxbTaskData.getStatus());
    taskData.setPreviousStatus(jaxbTaskData.getPreviousStatus());
    taskData.setActualOwner(createUser(jaxbTaskData.getActualOwnerId()));
    taskData.setCreatedBy(createUser(jaxbTaskData.getCreatedById()));
    taskData.setCreatedOn(jaxbTaskData.getCreatedOn());
    taskData.setActivationTime(jaxbTaskData.getActivationTime());
    taskData.setExpirationTime(jaxbTaskData.getExpirationTime());
    taskData.setSkipable(jaxbTaskData.isSkipable());
    taskData.setWorkItemId(jaxbTaskData.getWorkItemId());
    taskData.setProcessInstanceId(jaxbTaskData.getProcessInstanceId());
    taskData.setDocumentContentId(jaxbTaskData.getDocumentContentId());
    taskData.setDocumentAccessType(jaxbTaskData.getDocumentAccessType());
    taskData.setDocumentType(jaxbTaskData.getDocumentType());
    taskData.setOutputAccessType(jaxbTaskData.getOutputAccessType());
    taskData.setOutputType(jaxbTaskData.getOutputType());
    taskData.setOutputContentId(jaxbTaskData.getOutputContentId());
    taskData.setFaultName(jaxbTaskData.getFaultName());
    taskData.setFaultAccessType(jaxbTaskData.getFaultAccessType());
    taskData.setFaultType(jaxbTaskData.getFaultType());
    taskData.setFaultContentId(jaxbTaskData.getFaultContentId());
    taskData.setParentId(jaxbTaskData.getParentId());
    taskData.setProcessId(jaxbTaskData.getProcessId());
    taskData.setProcessSessionId(jaxbTaskData.getProcessSessionId());
    List<Comment> jaxbComments = jaxbTaskData.getComments();
    if (jaxbComments != null) {
        List<Comment> comments = new ArrayList<Comment>(jaxbComments.size());
        for (Comment jaxbComment : jaxbComments) {
            InternalComment comment = (InternalComment) TaskModelProvider.getFactory().newComment();
            if (jaxbComment.getId() != null) {
                comment.setId(jaxbComment.getId());
            }
            comment.setAddedAt(jaxbComment.getAddedAt());
            comment.setAddedBy(createUser(((JaxbComment) jaxbComment).getAddedById()));
            comment.setText(jaxbComment.getText());
            comments.add(comment);
        }
        taskData.setComments(comments);
    }
    List<Attachment> jaxbAttachments = jaxbTaskData.getAttachments();
    if (jaxbAttachments != null) {
        List<Attachment> attachments = new ArrayList<Attachment>(jaxbAttachments.size());
        for (Attachment jaxbAttach : jaxbAttachments) {
            InternalAttachment attach = (InternalAttachment) TaskModelProvider.getFactory().newAttachment();
            if (jaxbAttach.getId() != null) {
                attach.setId(jaxbAttach.getId());
            }
            attach.setName(jaxbAttach.getName());
            attach.setContentType(jaxbAttach.getContentType());
            attach.setAttachedAt(jaxbAttach.getAttachedAt());
            attach.setAttachedBy(createUser(((JaxbAttachment) jaxbAttach).getAttachedById()));
            attach.setSize(jaxbAttach.getSize());
            attach.setAttachmentContentId(jaxbAttach.getAttachmentContentId());
            attachments.add(attach);
        }
        taskData.setAttachments(attachments);
    }
    taskData.setDeploymentId(jaxbTaskData.getDeploymentId());
    ((InternalTask) taskImpl).setTaskData(taskData);
    return taskImpl;
}
Also used : InternalComment(org.kie.internal.task.api.model.InternalComment) Comment(org.kie.api.task.model.Comment) I18NText(org.kie.api.task.model.I18NText) InternalI18NText(org.kie.internal.task.api.model.InternalI18NText) User(org.kie.api.task.model.User) OrganizationalEntity(org.kie.api.task.model.OrganizationalEntity) InternalTask(org.kie.internal.task.api.model.InternalTask) InternalAttachment(org.kie.internal.task.api.model.InternalAttachment) InternalComment(org.kie.internal.task.api.model.InternalComment) InternalTaskData(org.kie.internal.task.api.model.InternalTaskData) ArrayList(java.util.ArrayList) Attachment(org.kie.api.task.model.Attachment) InternalAttachment(org.kie.internal.task.api.model.InternalAttachment) InternalPeopleAssignments(org.kie.internal.task.api.model.InternalPeopleAssignments) ArrayList(java.util.ArrayList) List(java.util.List)

Example 70 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class MVELLifeCycleManager method commands.

private void commands(final OperationCommand command, final Task task, final User user, final OrganizationalEntity targetEntity, OrganizationalEntity... entities) {
    final PeopleAssignments people = task.getPeopleAssignments();
    final InternalTaskData taskData = (InternalTaskData) task.getTaskData();
    if (command.getNewStatus() != null) {
        taskData.setStatus(command.getNewStatus());
    } else if (command.isSetToPreviousStatus()) {
        taskData.setStatus(taskData.getPreviousStatus());
    }
    if (command.isAddTargetEntityToPotentialOwners() && !people.getPotentialOwners().contains(targetEntity)) {
        people.getPotentialOwners().add(targetEntity);
    }
    if (command.isRemoveUserFromPotentialOwners()) {
        people.getPotentialOwners().remove(user);
    }
    if (command.isSetNewOwnerToUser()) {
        taskData.setActualOwner(user);
    }
    if (command.isSetNewOwnerToNull()) {
        taskData.setActualOwner(null);
    }
    if (command.getExec() != null) {
        switch(command.getExec()) {
            case Claim:
                {
                    taskData.setActualOwner((User) targetEntity);
                    break;
                }
            case Nominate:
                {
                    if (entities != null && entities.length > 0) {
                        List<OrganizationalEntity> potentialOwners = new ArrayList<OrganizationalEntity>(Arrays.asList(entities));
                        ((InternalPeopleAssignments) task.getPeopleAssignments()).setPotentialOwners(potentialOwners);
                        assignOwnerAndStatus((InternalTaskData) task.getTaskData(), potentialOwners);
                    }
                    break;
                }
        }
    }
}
Also used : User(org.kie.api.task.model.User) OrganizationalEntity(org.kie.api.task.model.OrganizationalEntity) InternalTaskData(org.kie.internal.task.api.model.InternalTaskData) ArrayList(java.util.ArrayList) List(java.util.List) InternalPeopleAssignments(org.kie.internal.task.api.model.InternalPeopleAssignments) PeopleAssignments(org.kie.api.task.model.PeopleAssignments)

Aggregations

User (org.kie.api.task.model.User)83 OrganizationalEntity (org.kie.api.task.model.OrganizationalEntity)52 Test (org.junit.Test)44 InternalTask (org.kie.internal.task.api.model.InternalTask)38 ArrayList (java.util.ArrayList)35 InternalOrganizationalEntity (org.kie.internal.task.api.model.InternalOrganizationalEntity)33 Task (org.kie.api.task.model.Task)31 Group (org.kie.api.task.model.Group)27 InternalPeopleAssignments (org.kie.internal.task.api.model.InternalPeopleAssignments)27 InternalTaskData (org.kie.internal.task.api.model.InternalTaskData)20 StringReader (java.io.StringReader)17 HashMap (java.util.HashMap)14 InputStreamReader (java.io.InputStreamReader)11 Reader (java.io.Reader)11 WorkItemImpl (org.drools.core.process.instance.impl.WorkItemImpl)11 ContentData (org.kie.internal.task.api.model.ContentData)11 InternalContent (org.kie.internal.task.api.model.InternalContent)11 Date (java.util.Date)10 List (java.util.List)10 CountDownTaskEventListener (org.jbpm.services.task.util.CountDownTaskEventListener)10