Search in sources :

Example 41 with Job

use of org.activiti.engine.runtime.Job in project Activiti by Activiti.

the class BoundaryTimerNonInterruptingEventTest method testTimerWithCycle.

@Deployment
public void testTimerWithCycle() throws Exception {
    runtimeService.startProcessInstanceByKey("nonInterruptingCycle").getId();
    List<Job> jobs = managementService.createJobQuery().list();
    assertEquals(1, jobs.size());
    //boundary events
    try {
        waitForJobExecutorToProcessAllJobs(2000, 100);
        fail("a new job must be prepared because there are undefinite number of repeats 1 hour interval");
    } catch (Exception ex) {
    //expected exception because a new job is prepared
    }
    moveByMinutes(60);
    try {
        waitForJobExecutorToProcessAllJobs(2000, 100);
        fail("a new job must be prepared because there are undefinite number of repeats 1 hour interval");
    } catch (Exception ex) {
    //expected exception because a new job is prepared
    }
    Task task = taskService.createTaskQuery().taskDefinitionKey("task").singleResult();
    taskService.complete(task.getId());
    moveByMinutes(60);
    try {
        waitForJobExecutorToProcessAllJobs(2000, 100);
    } catch (Exception ex) {
        fail("No more jobs since the user completed the task");
    }
}
Also used : Task(org.activiti.engine.task.Task) Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 42 with Job

use of org.activiti.engine.runtime.Job in project Activiti by Activiti.

the class IntermediateTimerEventTest method testExpression.

@Deployment
public void testExpression() {
    // Set the clock fixed
    HashMap<String, Object> variables1 = new HashMap<String, Object>();
    variables1.put("dueDate", new Date());
    HashMap<String, Object> variables2 = new HashMap<String, Object>();
    variables2.put("dueDate", new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(new Date()));
    // After process start, there should be timer created
    ProcessInstance pi1 = runtimeService.startProcessInstanceByKey("intermediateTimerEventExample", variables1);
    ProcessInstance pi2 = runtimeService.startProcessInstanceByKey("intermediateTimerEventExample", variables2);
    assertEquals(1, managementService.createJobQuery().processInstanceId(pi1.getId()).count());
    assertEquals(1, managementService.createJobQuery().processInstanceId(pi2.getId()).count());
    // After setting the clock to one second in the future the timers should fire
    List<Job> jobs = managementService.createJobQuery().executable().list();
    assertEquals(2, jobs.size());
    for (Job job : jobs) {
        managementService.executeJob(job.getId());
    }
    assertEquals(0, managementService.createJobQuery().processInstanceId(pi1.getId()).count());
    assertEquals(0, managementService.createJobQuery().processInstanceId(pi2.getId()).count());
    assertProcessEnded(pi1.getProcessInstanceId());
    assertProcessEnded(pi2.getProcessInstanceId());
}
Also used : HashMap(java.util.HashMap) ProcessInstance(org.activiti.engine.runtime.ProcessInstance) Job(org.activiti.engine.runtime.Job) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date) Deployment(org.activiti.engine.test.Deployment)

Example 43 with Job

use of org.activiti.engine.runtime.Job in project Activiti by Activiti.

the class IntermediateTimerEventTest method testLoop.

@Deployment
public void testLoop() {
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testLoop");
    // After looping 3 times, the process should end
    for (int i = 0; i < 3; i++) {
        Job timer = managementService.createJobQuery().singleResult();
        managementService.executeJob(timer.getId());
    }
    assertProcessEnded(processInstance.getId());
}
Also used : ProcessInstance(org.activiti.engine.runtime.ProcessInstance) Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 44 with Job

use of org.activiti.engine.runtime.Job in project Activiti by Activiti.

the class IntermediateTimerEventTest method testLoopWithCycle.

@Deployment
public void testLoopWithCycle() {
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testLoop");
    // After looping 3 times, the process should end. Cycle should NOT repeat itself
    for (int i = 0; i < 3; i++) {
        Job timer = managementService.createJobQuery().singleResult();
        managementService.executeJob(timer.getId());
    }
    assertProcessEnded(processInstance.getId());
}
Also used : ProcessInstance(org.activiti.engine.runtime.ProcessInstance) Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 45 with Job

use of org.activiti.engine.runtime.Job in project Activiti by Activiti.

the class BoundaryTimerEventTest method testTimerOnNestingOfSubprocesses.

@Deployment
public void testTimerOnNestingOfSubprocesses() {
    Date testStartTime = processEngineConfiguration.getClock().getCurrentTime();
    runtimeService.startProcessInstanceByKey("timerOnNestedSubprocesses");
    List<Task> tasks = taskService.createTaskQuery().orderByTaskName().asc().list();
    assertEquals(2, tasks.size());
    assertEquals("Inner subprocess task 1", tasks.get(0).getName());
    assertEquals("Inner subprocess task 2", tasks.get(1).getName());
    // Timer will fire in 2 hours
    processEngineConfiguration.getClock().setCurrentTime(new Date(testStartTime.getTime() + ((2 * 60 * 60 * 1000) + 5000)));
    Job timer = managementService.createJobQuery().timers().singleResult();
    managementService.executeJob(timer.getId());
    Task task = taskService.createTaskQuery().singleResult();
    assertEquals("task outside subprocess", task.getName());
}
Also used : Task(org.activiti.engine.task.Task) Job(org.activiti.engine.runtime.Job) Date(java.util.Date) Deployment(org.activiti.engine.test.Deployment)

Aggregations

Job (org.activiti.engine.runtime.Job)110 Deployment (org.activiti.engine.test.Deployment)76 ProcessInstance (org.activiti.engine.runtime.ProcessInstance)55 Task (org.activiti.engine.task.Task)39 Date (java.util.Date)23 Calendar (java.util.Calendar)16 DelegateTask (org.activiti.engine.delegate.DelegateTask)11 HashMap (java.util.HashMap)10 ActivitiEvent (org.activiti.engine.delegate.event.ActivitiEvent)10 JobQuery (org.activiti.engine.runtime.JobQuery)8 ActivitiException (org.activiti.engine.ActivitiException)6 SimpleDateFormat (java.text.SimpleDateFormat)5 ArrayList (java.util.ArrayList)5 DefaultClockImpl (org.activiti.engine.impl.util.DefaultClockImpl)5 ProcessDefinition (org.activiti.engine.repository.ProcessDefinition)5 Clock (org.activiti.engine.runtime.Clock)5 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)5 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)4 HistoricProcessInstance (org.activiti.engine.history.HistoricProcessInstance)4 CommandContext (org.activiti.engine.impl.interceptor.CommandContext)4