package org.camunda.bpm.extension.osgi.commands;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
import org.apache.karaf.shell.console.OsgiCommandSupport;
import java.util.List;
import org.camunda.bpm.engine.ProcessEngine;
import org.camunda.bpm.engine.task.Task;
import org.camunda.bpm.engine.task.TaskQuery;
/**
* List activities of an instance.
*/
@Command(scope = "camunda", name = "task-list", description = "List tasks for a specific process definition.")
public class TaskList extends OsgiCommandSupport {
private static final String[] HEADER = new String[]{"ID", "INSTANCE", "PROCESS_DEF", "ASIGNEE", "NAME"};
private final ProcessEngine engine;
@Argument(index = 0,
name = "process definition id",
description = "Process definition id",
multiValued = false)
private String processId;
public TaskList(ProcessEngine engine) {
this.engine = engine;
}
@Override
protected Object doExecute() throws Exception {
TaskQuery taskQuery = engine.getTaskService().createTaskQuery();
if (processId != null) {
taskQuery.processDefinitionId(processId);
}
List<Task> tasks = taskQuery.orderByTaskCreateTime().asc().list();
int i = 0;
String[][] data = new String[tasks.size()][HEADER.length];
for (Task task : tasks) {
data[i++] = new String[]{
task.getId(),
task.getProcessInstanceId(),
task.getProcessDefinitionId(),
task.getAssignee(),
task.getName()};
}
return null;
}
}