package org.jbpm.spring.boot; import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.jbpm.services.api.DefinitionService; import org.jbpm.services.api.ProcessService; import org.jbpm.services.api.RuntimeDataService; import org.jbpm.services.api.model.ProcessDefinition; import org.kie.internal.query.QueryContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/processdef") public class ProcessDefController { @Autowired private RuntimeDataService runtimeDataService; @Autowired private ProcessService processService; @Autowired private DefinitionService definitionService; @RequestMapping(value = "/", method = RequestMethod.GET) public Collection<ProcessDefinition> getProcessDef() { Collection<ProcessDefinition> processDefinitions = runtimeDataService.getProcesses(new QueryContext(0, 100)); return processDefinitions; } @RequestMapping(value = "/show", method = RequestMethod.GET) public ProcessDefinition getProcessDefinition(@RequestParam String deployment, @RequestParam String id) { ProcessDefinition definition = runtimeDataService.getProcessesByDeploymentIdProcessId(deployment, id); return definition; } @RequestMapping(value = "/new", method = RequestMethod.POST) public Long newProcessInstance(@RequestParam String deploymentId, @RequestParam String processId, @RequestParam Map<String,String> allRequestParams) { long processInstanceId = processService.startProcess(deploymentId, processId, new HashMap<String, Object>(allRequestParams)); return processInstanceId; } }