use of org.wso2.carbon.bpel.core.ode.integration.jmx.Processes in project carbon-business-process by wso2.
the class ProcessStatisticsService method getAllProcesses.
/**
* Get all deployed processes
*
* @return list with the processDefinitions of all deployed processes
*/
@GET
@Path("/processes/")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public ResponseHolder getAllProcesses() {
// Get a list of the deployed processes
RepositoryService repositoryService = BPMNOSGIService.getRepositoryService();
List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery().processDefinitionTenantId(getTenantIdStr()).list();
List<Object> listOfProcesses = new ArrayList<>();
ResponseHolder response = new ResponseHolder();
for (ProcessDefinition processDefinition : processDefinitionList) {
listOfProcesses.add(processDefinition.getId());
}
response.setData(listOfProcesses);
return response;
}
use of org.wso2.carbon.bpel.core.ode.integration.jmx.Processes in project carbon-business-process by wso2.
the class ProcessStatisticsService method getAvgTimeDurationForCompletedProcesses.
/**
* Get the average time duration of completed processes
*
* @return list with the completed processes and the average time duration taken for each process
*/
@GET
@Path("/process-instances/duration/average")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public ResponseHolder getAvgTimeDurationForCompletedProcesses() {
ResponseHolder response = new ResponseHolder();
List<Object> list = new ArrayList<>();
HistoryService historyService = BPMNOSGIService.getHistoryService();
RepositoryService repositoryService = BPMNOSGIService.getRepositoryService();
List<ProcessDefinition> deployedProcessList = repositoryService.createProcessDefinitionQuery().processDefinitionTenantId(getTenantIdStr()).list();
for (ProcessDefinition instance : deployedProcessList) {
ProcessInstanceAverageInfo bpmnProcessInstance = new ProcessInstanceAverageInfo();
bpmnProcessInstance.setProcessDefinitionId(instance.getId());
double totalTime = 0;
double averageTime;
String processDefinitionID = instance.getId();
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery().processInstanceTenantId(getTenantIdStr()).processDefinitionId(processDefinitionID).finished();
long instanceCount = historicProcessInstanceQuery.count();
if (instanceCount != 0) {
List<HistoricProcessInstance> instanceList = historicProcessInstanceQuery.list();
for (HistoricProcessInstance completedProcess : instanceList) {
double timeDurationOfTask = completedProcess.getDurationInMillis();
double timeInMins = timeDurationOfTask / (1000 * 60);
totalTime += timeInMins;
}
averageTime = totalTime / instanceCount;
bpmnProcessInstance.setAverageTimeForCompletion(averageTime);
list.add(bpmnProcessInstance);
}
}
response.setData(list);
return response;
}
use of org.wso2.carbon.bpel.core.ode.integration.jmx.Processes in project carbon-business-process by wso2.
the class BPMNDeploymentService method aggregateRemovableProcessInstances.
private void aggregateRemovableProcessInstances(BPMNDeletableInstances bpmnDeletableInstances, String deploymentId, Integer tenantId, ProcessEngine processEngine) throws BPSFault {
ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery();
List<ProcessDefinition> processes = query.processDefinitionTenantId(tenantId.toString()).deploymentId(deploymentId).list();
for (ProcessDefinition process : processes) {
if (!constructBPMNInstancesByProcessID(bpmnDeletableInstances, process.getId(), tenantId, processEngine)) {
String errorMessage = " Failed to undeploy the package. Please delete the instances before undeploying " + "the package";
throw new BPSFault(errorMessage);
}
}
}
use of org.wso2.carbon.bpel.core.ode.integration.jmx.Processes in project carbon-business-process by wso2.
the class AnalyticsConfigurationService method configureProcessLevelEvents.
@PUT
@Path("/processes/{process_id}")
@Consumes({ MediaType.APPLICATION_JSON })
public void configureProcessLevelEvents(@PathParam("process_id") String processDefinitionId, DataPublisherConfig dataPublisherConfig) {
try {
RepositoryService repositoryService = BPMNOSGIService.getRepositoryService();
ProcessDefinition process = repositoryService.getProcessDefinition(processDefinitionId);
if (process != null && process instanceof ProcessDefinitionEntity) {
ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) process;
if (dataPublisherConfig.isEnabled()) {
List<ExecutionListener> endListeners = processDefinitionEntity.getExecutionListeners(PvmEvent.EVENTNAME_END);
ExecutionListener processTerminationListener = null;
for (ExecutionListener listener : endListeners) {
if (listener instanceof ProcessTerminationListener) {
processTerminationListener = listener;
break;
}
}
if (processTerminationListener == null) {
if (log.isDebugEnabled()) {
log.debug("Adding process termination listener to process: " + processDefinitionId);
}
processDefinitionEntity.addExecutionListener(PvmEvent.EVENTNAME_END, new ProcessTerminationListener());
}
} else {
List<ExecutionListener> endListeners = processDefinitionEntity.getExecutionListeners(PvmEvent.EVENTNAME_END);
ExecutionListener processTerminationListener = null;
for (ExecutionListener listener : endListeners) {
if (listener instanceof ProcessTerminationListener) {
processTerminationListener = listener;
break;
}
}
if (processTerminationListener != null) {
if (log.isDebugEnabled()) {
log.debug("Removing process termination listener from process: " + processDefinitionId);
}
endListeners.remove(processTerminationListener);
}
}
}
} catch (Exception e) {
String msg = "Failed to configure events for process: " + processDefinitionId;
log.error(msg, e);
throw new BPMNRestException(msg, e);
}
}
use of org.wso2.carbon.bpel.core.ode.integration.jmx.Processes in project carbon-business-process by wso2.
the class AnalyticsConfigurationService method configureTaskLevelEvents.
@PUT
@Path("/processes/{process_id}/tasks/{task_id}")
@Consumes({ MediaType.APPLICATION_JSON })
public void configureTaskLevelEvents(@PathParam("process_id") String processDefinitionId, @PathParam("task_id") String taskId, DataPublisherConfig dataPublisherConfig) {
try {
RepositoryService repositoryService = BPMNOSGIService.getRepositoryService();
ProcessDefinition process = repositoryService.getProcessDefinition(processDefinitionId);
if (process != null && process instanceof ProcessDefinitionEntity) {
ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) process;
Map<String, TaskDefinition> taskDefinitions = processDefinitionEntity.getTaskDefinitions();
TaskDefinition taskDefinition = taskDefinitions.get(taskId);
if (taskDefinition != null) {
if (dataPublisherConfig.isEnabled()) {
List<TaskListener> completionListeners = taskDefinition.getTaskListener(TaskListener.EVENTNAME_COMPLETE);
TaskListener taskCompletionListener = null;
for (TaskListener listener : completionListeners) {
if (listener instanceof TaskCompletionListener) {
taskCompletionListener = listener;
break;
}
}
if (taskCompletionListener == null) {
if (log.isDebugEnabled()) {
log.debug("Adding task completion listener to task: " + taskId + " of process: " + processDefinitionId);
}
taskDefinition.addTaskListener(TaskListener.EVENTNAME_COMPLETE, new TaskCompletionListener());
}
} else {
List<TaskListener> completionListeners = taskDefinition.getTaskListener(TaskListener.EVENTNAME_COMPLETE);
TaskListener taskCompletionListener = null;
for (TaskListener listener : completionListeners) {
if (listener instanceof TaskCompletionListener) {
taskCompletionListener = listener;
break;
}
}
if (taskCompletionListener != null) {
if (log.isDebugEnabled()) {
log.debug("Removing task completion listener from task: " + taskId + " of process: " + processDefinitionId);
}
completionListeners.remove(taskCompletionListener);
}
}
}
}
} catch (Exception e) {
String msg = "Failed to configure events for task: " + taskId + " of process: " + processDefinitionId;
log.error(msg, e);
throw new BPMNRestException(msg, e);
}
}
Aggregations