Search in sources :

Example 36 with Job

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

the class ExclusiveTaskTest method testExclusiveService.

@Deployment
public void testExclusiveService() {
    // start process 
    runtimeService.startProcessInstanceByKey("exclusive");
    // now there should be 1 exclusive job in the database:
    Job job = managementService.createJobQuery().singleResult();
    assertNotNull(job);
    assertTrue(((JobEntity) job).isExclusive());
    waitForJobExecutorToProcessAllJobs(6000L, 100L);
    // all the jobs are done
    assertEquals(0, managementService.createJobQuery().count());
}
Also used : Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 37 with Job

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

the class SignalEventTest method testSignalStartEventFromProcesAsync.

public void testSignalStartEventFromProcesAsync() {
    // Deploy test processes
    repositoryService.createDeployment().addClasspathResource("org/activiti/engine/test/bpmn/event/signal/SignalEventTest.testSignalStartEventAsync.bpmn20.xml").deploy();
    // Starting the process that fires the signal should start 1 process instance that are listening on that signal, the others are done async
    runtimeService.startProcessInstanceByKey("processWithSignalThrow");
    // Verify
    assertEquals(0, runtimeService.createProcessInstanceQuery().count());
    assertEquals(0, taskService.createTaskQuery().count());
    assertEquals(3, managementService.createJobQuery().count());
    for (Job job : managementService.createJobQuery().list()) {
        managementService.executeJob(job.getId());
    }
    assertEquals(3, runtimeService.createProcessInstanceQuery().count());
    assertEquals(3, taskService.createTaskQuery().count());
    List<Task> tasks = taskService.createTaskQuery().orderByTaskName().asc().list();
    List<String> names = Arrays.asList("A", "B", "C");
    for (int i = 0; i < tasks.size(); i++) {
        assertEquals("Task in process " + names.get(i), tasks.get(i).getName());
    }
    // Start a process with a signal boundary event
    runtimeService.startProcessInstanceByKey("processWithSignalCatch");
    assertEquals(4, runtimeService.createProcessInstanceQuery().count());
    assertEquals(4, taskService.createTaskQuery().count());
    assertEquals(1, taskService.createTaskQuery().taskName("Task in process D").count());
    // Firing again
    runtimeService.startProcessInstanceByKey("processWithSignalThrow");
    assertEquals(4, managementService.createJobQuery().count());
    for (Job job : managementService.createJobQuery().list()) {
        managementService.executeJob(job.getId());
    }
    assertEquals(7, runtimeService.createProcessInstanceQuery().count());
    assertEquals(7, taskService.createTaskQuery().count());
    assertEquals(1, taskService.createTaskQuery().taskName("Task after signal").count());
    // Cleanup
    for (org.activiti.engine.repository.Deployment deployment : repositoryService.createDeploymentQuery().list()) {
        repositoryService.deleteDeployment(deployment.getId(), true);
    }
}
Also used : Task(org.activiti.engine.task.Task) Job(org.activiti.engine.runtime.Job)

Example 38 with Job

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

the class BoundaryTimerNonInterruptingEventTest method testTimerOnEmbeddedSubprocess.

@Deployment
public /**
   * see https://activiti.atlassian.net/browse/ACT-1173
   */
void testTimerOnEmbeddedSubprocess() {
    String id = runtimeService.startProcessInstanceByKey("nonInterruptingTimerOnEmbeddedSubprocess").getId();
    TaskQuery tq = taskService.createTaskQuery().taskAssignee("kermit");
    assertEquals(1, tq.count());
    // Simulate timer
    Job timer = managementService.createJobQuery().singleResult();
    managementService.executeJob(timer.getId());
    tq = taskService.createTaskQuery().taskAssignee("kermit");
    assertEquals(2, tq.count());
    List<Task> tasks = tq.list();
    taskService.complete(tasks.get(0).getId());
    taskService.complete(tasks.get(1).getId());
    assertProcessEnded(id);
}
Also used : Task(org.activiti.engine.task.Task) TaskQuery(org.activiti.engine.task.TaskQuery) Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 39 with Job

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

the class BoundaryTimerNonInterruptingEventTest method testTimerOnConcurrentTasks2.

// Difference with previous test: now the join will be reached first
@Deployment(resources = { "org/activiti/engine/test/bpmn/event/timer/BoundaryTimerNonInterruptingEventTest.testTimerOnConcurrentTasks.bpmn20.xml" })
public void testTimerOnConcurrentTasks2() {
    String procId = runtimeService.startProcessInstanceByKey("nonInterruptingOnConcurrentTasks").getId();
    assertEquals(2, taskService.createTaskQuery().count());
    Job timer = managementService.createJobQuery().singleResult();
    managementService.executeJob(timer.getId());
    assertEquals(3, taskService.createTaskQuery().count());
    // Complete 2 tasks that will trigger the join
    Task task = taskService.createTaskQuery().taskDefinitionKey("firstTask").singleResult();
    taskService.complete(task.getId());
    task = taskService.createTaskQuery().taskDefinitionKey("secondTask").singleResult();
    taskService.complete(task.getId());
    assertEquals(1, taskService.createTaskQuery().count());
    // Finally, complete the task that was created due to the timer 
    task = taskService.createTaskQuery().taskDefinitionKey("timerFiredTask").singleResult();
    taskService.complete(task.getId());
    assertProcessEnded(procId);
}
Also used : Task(org.activiti.engine.task.Task) Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 40 with Job

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

the class BoundaryTimerNonInterruptingEventTest method testTimerOnConcurrentTasks.

@Deployment
public void testTimerOnConcurrentTasks() {
    String procId = runtimeService.startProcessInstanceByKey("nonInterruptingOnConcurrentTasks").getId();
    assertEquals(2, taskService.createTaskQuery().count());
    Job timer = managementService.createJobQuery().singleResult();
    managementService.executeJob(timer.getId());
    assertEquals(3, taskService.createTaskQuery().count());
    // Complete task that was reached by non interrupting timer 
    Task task = taskService.createTaskQuery().taskDefinitionKey("timerFiredTask").singleResult();
    taskService.complete(task.getId());
    assertEquals(2, taskService.createTaskQuery().count());
    // Complete other tasks
    for (Task t : taskService.createTaskQuery().list()) {
        taskService.complete(t.getId());
    }
    assertProcessEnded(procId);
}
Also used : Task(org.activiti.engine.task.Task) Job(org.activiti.engine.runtime.Job) 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