### Eclipse Workspace Patch 1.0 #P jbpm4 Index: modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessEnginePluginImpl.java =================================================================== --- modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessEnginePluginImpl.java (revision 6389) +++ modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessEnginePluginImpl.java (working copy) @@ -83,13 +83,13 @@ return results; } - public void deleteDeployment(String id) { - RepositoryService repositoryService = this.processEngine.getRepositoryService(); + public void deleteDeployment(String id, String userId) { + RepositoryService repositoryService = getProcessEngine(userId).getRepositoryService(); repositoryService.deleteDeploymentCascade(id); } - public void suspendDeployment(String id, boolean isSuspended) { - RepositoryService repositoryService = this.processEngine.getRepositoryService(); + public void suspendDeployment(String id, boolean isSuspended, String userId) { + RepositoryService repositoryService = getProcessEngine(userId).getRepositoryService(); if (isSuspended) repositoryService.suspendDeployment(id); else @@ -119,12 +119,12 @@ return results; } - public void executeJob(String jobId) { - ManagementService mgmtService = this.processEngine.getManagementService(); + public void executeJob(String jobId, String userId) { + ManagementService mgmtService = getProcessEngine(userId).getManagementService(); mgmtService.executeJob(jobId); } - public String deployFile(File processFile) { + public String deployFile(File processFile, String userId) { RepositoryService repositoryService = this.processEngine.getRepositoryService(); NewDeployment deployment = repositoryService.createDeployment(); deployment.setName(processFile.getName()); @@ -145,7 +145,7 @@ } } - + setAuthenticatedUser(userId); return deployment.deploy(); } } Index: modules/integration/console/src/main/java/org/jbpm/integration/console/JBPMIntegration.java =================================================================== --- modules/integration/console/src/main/java/org/jbpm/integration/console/JBPMIntegration.java (revision 6447) +++ modules/integration/console/src/main/java/org/jbpm/integration/console/JBPMIntegration.java (working copy) @@ -61,4 +61,12 @@ repositoryService = processEngine.getRepositoryService(); } + public ProcessEngine getProcessEngine(String userId) { + return this.processEngine.setAuthenticatedUserId(userId); + } + + public void setAuthenticatedUser(String userId) { + this.processEngine.setAuthenticatedUserId(userId); + } + } Index: modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java =================================================================== --- modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java (revision 6427) +++ modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java (working copy) @@ -74,11 +74,12 @@ return ModelAdaptor.adoptDefinition(processDefinition); } - public List removeProcessDefinition(String procDefId) { + public List removeProcessDefinition(String procDefId, String userId) { RepositoryService repositoryService = this.processEngine.getRepositoryService(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId).uniqueResult(); if (processDefinition != null) { // Todo: this deletes a complete deployment. Currently, there is no way of deleting a procDef only + setAuthenticatedUser(userId); repositoryService.deleteDeploymentCascade(processDefinition.getDeploymentId()); } return getProcessDefinitions(); @@ -134,44 +135,49 @@ throw new RuntimeException("Not implemented"); } - public ProcessInstanceRef newInstance(String definitionId) { - ExecutionService execService = this.processEngine.getExecutionService(); + public ProcessInstanceRef newInstance(String definitionId, String userId) { + ExecutionService execService = getProcessEngine(userId).getExecutionService(); Execution exec = execService.startProcessInstanceById(definitionId); return ModelAdaptor.adoptExecution(exec); } - public ProcessInstanceRef newInstance(String definitionId, Map processVars) { - ExecutionService execService = this.processEngine.getExecutionService(); + public ProcessInstanceRef newInstance(String definitionId, Map processVars, String userId) { + ExecutionService execService = getProcessEngine(userId).getExecutionService(); Execution exec = execService.startProcessInstanceById(definitionId, processVars); return ModelAdaptor.adoptExecution(exec); } - public void endInstance(String instanceId, ProcessInstanceRef.RESULT result) { + public void endInstance(String instanceId, ProcessInstanceRef.RESULT result, String userId) { ExecutionService execService = this.processEngine.getExecutionService(); Execution exec = execService.findExecutionById(instanceId); if (null == exec) throw new IllegalArgumentException("No such execution with id " + instanceId); ProcessInstanceRef.RESULT actualResult = result != null ? result : ProcessInstanceRef.RESULT.COMPLETED; + + setAuthenticatedUser(userId); + execService.endProcessInstance(instanceId, actualResult.toString()); } - public void deleteInstance(String instanceId) { + public void deleteInstance(String instanceId, String userId) { ExecutionService execService = this.processEngine.getExecutionService(); Execution exec = execService.findExecutionById(instanceId); if (null == exec) throw new IllegalArgumentException("No such execution with id " + instanceId); - + setAuthenticatedUser(userId); + execService.deleteProcessInstance(instanceId); } - public void setProcessState(String executionId, ProcessInstanceRef.STATE nextState) { + public void setProcessState(String executionId, ProcessInstanceRef.STATE nextState, String userId) { throw new RuntimeException("Not implemented"); } - public void signalExecution(String executionId, String signal) { - ExecutionService execService = this.processEngine.getExecutionService(); + public void signalExecution(String executionId, String signal, String userId) { + + ExecutionService execService = getProcessEngine(userId).getExecutionService(); if (null == signal) execService.signalExecutionById(executionId);