@Cacheable("processDefinitionIdMap") public ManyMap<String, Process> getProcessDefinitionIdMap(Set<Process> processes) { ManyMap<String, Process> processDefinitionKeyMap = new ManyMap<String, Process>(); for (Process process : processes) { ProcessDeployment deployment = process.getDeployment(); if (deployment != null && deployment.getEngine() != null && getKey() != null && deployment.getEngine().equals(getKey())) processDefinitionKeyMap.putOne(deployment.getEngineProcessDefinitionKey(), process); } ManyMap<String, Process> map = new ManyMap<String, Process>(); for (ProcessDefinition processDefinition : processEngine.getRepositoryService().createProcessDefinitionQuery().list()) { List<Process> matchingProcesses = processDefinitionKeyMap.get(processDefinition.getKey()); if (matchingProcesses != null && !matchingProcesses.isEmpty()) map.put(processDefinition.getId(), matchingProcesses); } return map; }