[jbpm-commits] JBoss JBPM SVN: r4497 - jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Apr 8 08:15:59 EDT 2009
Author: heiko.braun at jboss.com
Date: 2009-04-08 08:15:59 -0400 (Wed, 08 Apr 2009)
New Revision: 4497
Modified:
jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java
Log:
Fix JBPM-2151: no environment to get org.jbpm.session.RepositorySession
Modified: jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java
===================================================================
--- jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java 2009-04-08 11:57:51 UTC (rev 4496)
+++ jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java 2009-04-08 12:15:59 UTC (rev 4497)
@@ -34,6 +34,8 @@
import org.jbpm.ProcessDefinition;
import org.jbpm.ProcessDefinitionQuery;
import org.jbpm.RepositoryService;
+import org.jbpm.env.Environment;
+import org.jbpm.env.EnvironmentFactory;
import org.jbpm.model.OpenExecution;
/**
@@ -41,127 +43,214 @@
*/
class ProcessManagementImpl extends JBPMIntegration implements ProcessManagement
{
-
+
public List<ProcessDefinitionRef> getProcessDefinitions()
{
- List<ProcessDefinitionRef> results = new ArrayList<ProcessDefinitionRef>();
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
- RepositoryService repositoryService = this.processEngine.getRepositoryService();
- List<ProcessDefinition> definitions = repositoryService.createProcessDefinitionQuery()
- .orderAsc(ProcessDefinitionQuery.PROPERTY_NAME)
- .execute();
-
- // adopt ProcessDefinition to console model
- for(ProcessDefinition processDefinition : definitions)
+ try
{
- results.add( ModelAdaptor.adoptDefinition(processDefinition) );
+ List<ProcessDefinitionRef> results = new ArrayList<ProcessDefinitionRef>();
+
+ RepositoryService repositoryService = this.processEngine.getRepositoryService();
+ List<ProcessDefinition> definitions = repositoryService.createProcessDefinitionQuery()
+ .orderAsc(ProcessDefinitionQuery.PROPERTY_NAME)
+ .execute();
+
+ // adopt ProcessDefinition to console model
+ for(ProcessDefinition processDefinition : definitions)
+ {
+ results.add( ModelAdaptor.adoptDefinition(processDefinition) );
+ }
+
+ return results;
}
+ finally
+ {
+ env.close();
+ }
- return results;
-
}
public ProcessDefinitionRef getProcessDefinition(String procDefId)
{
- RepositoryService repositoryService = this.processEngine.getRepositoryService();
- ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .id(procDefId)
- .uniqueResult();
- return ModelAdaptor.adoptDefinition(processDefinition);
+
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
+
+ try
+ {
+ RepositoryService repositoryService = this.processEngine.getRepositoryService();
+ ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
+ .id(procDefId)
+ .uniqueResult();
+ return ModelAdaptor.adoptDefinition(processDefinition);
+
+ }
+ finally
+ {
+ env.close();
+ }
}
public List<ProcessDefinitionRef> removeProcessDefinition(String procDefId)
{
- RepositoryService repositoryService = this.processEngine.getRepositoryService();
- ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .id(procDefId)
- .uniqueResult();
- if (processDefinition!=null) {
- repositoryService.deleteDeploymentCascade(processDefinition.getDeploymentDbid());
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
+
+ try
+ {
+
+ RepositoryService repositoryService = this.processEngine.getRepositoryService();
+ ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
+ .id(procDefId)
+ .uniqueResult();
+ if (processDefinition!=null) {
+ repositoryService.deleteDeploymentCascade(processDefinition.getDeploymentDbid());
+ }
+ return getProcessDefinitions();
}
- return getProcessDefinitions();
+ finally
+ {
+ env.close();
+ }
}
public List<ProcessInstanceRef> getProcessInstances(String procDefId)
{
- ExecutionService execService = this.processEngine.getExecutionService();
- ExecutionQuery query = execService.createExecutionQuery();
- query.processDefinitionId(String.valueOf(procDefId));
-
- List<Execution> executions = query.execute();
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
- List<ProcessInstanceRef> results = adoptTopLevelExecutions(executions);
+ try
+ {
- return results;
+ ExecutionService execService = this.processEngine.getExecutionService();
+ ExecutionQuery query = execService.createExecutionQuery();
+ query.processDefinitionId(String.valueOf(procDefId));
+
+ List<Execution> executions = query.execute();
+
+ List<ProcessInstanceRef> results = adoptTopLevelExecutions(executions);
+
+ return results;
+ }
+ finally
+ {
+ env.close();
+ }
}
private List<ProcessInstanceRef> adoptTopLevelExecutions(List<Execution> executions)
{
- List<ProcessInstanceRef> results = new ArrayList<ProcessInstanceRef>();
- for(Execution exec : executions)
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
+
+ try
{
- if(exec.isEnded())
+
+ List<ProcessInstanceRef> results = new ArrayList<ProcessInstanceRef>();
+ for(Execution exec : executions)
{
- System.out.println("*** JBPM-2055: Execution ("+exec.getId()+") is already ended. " +
- "Should not show up in query");
- continue;
- }
+ if(exec.isEnded())
+ {
+ System.out.println("*** JBPM-2055: Execution ("+exec.getId()+") is already ended. " +
+ "Should not show up in query");
+ continue;
+ }
- if(exec.isProcessInstance()) // parent execution
- {
- results.add( ModelAdaptor.adoptExecution((OpenExecution)exec) );
+ if(exec.isProcessInstance()) // parent execution
+ {
+ results.add( ModelAdaptor.adoptExecution((OpenExecution)exec) );
+ }
}
+ return results;
}
- return results;
+ finally
+ {
+ env.close();
+ }
}
public ProcessInstanceRef getProcessInstance(String instanceId)
{
- ExecutionService execService = this.processEngine.getExecutionService();
- ExecutionQuery query = execService.createProcessInstanceQuery();
- query.processInstanceId(instanceId);
- List<Execution> executions = query.execute();
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
- if(executions.size()>1 || executions.isEmpty())
- throw new IllegalStateException("No precise match for instanceId " + instanceId +". Num results "+executions);
+ try
+ {
- return ModelAdaptor.adoptExecution( (OpenExecution)executions.get(0));
+ ExecutionService execService = this.processEngine.getExecutionService();
+ ExecutionQuery query = execService.createProcessInstanceQuery();
+ query.processInstanceId(instanceId);
+ List<Execution> executions = query.execute();
+
+ if(executions.size()>1 || executions.isEmpty())
+ throw new IllegalStateException("No precise match for instanceId " + instanceId +". Num results "+executions);
+
+ return ModelAdaptor.adoptExecution( (OpenExecution)executions.get(0));
+ }
+ finally
+ {
+ env.close();
+ }
}
public ProcessInstanceRef newInstance(String definitionId)
{
- ExecutionService execService = this.processEngine.getExecutionService();
- Execution exec = execService.startProcessInstanceById(definitionId);
- return ModelAdaptor.adoptExecution((OpenExecution)exec);
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
+
+ try
+ {
+ ExecutionService execService = this.processEngine.getExecutionService();
+ Execution exec = execService.startProcessInstanceById(definitionId);
+ return ModelAdaptor.adoptExecution((OpenExecution)exec);
+ }
+ finally{
+ env.close();
+ }
}
public void setProcessState(String executionId, ProcessInstanceRef.STATE nextState)
{
- if(ProcessInstanceRef.STATE.ENDED==nextState)
+
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
+
+ try
{
- // TODO: It's actually a delete call. Once we got the 'cancel' notion this should be changed
- ExecutionService execService = this.processEngine.getExecutionService();
- Execution exec = execService.findExecution(executionId);
- if(null==exec)
- throw new IllegalArgumentException("No such execution with id "+ executionId);
-
- execService.deleteProcessInstance(executionId);
+ if(ProcessInstanceRef.STATE.ENDED==nextState)
+ {
+ // TODO: It's actually a delete call. Once we got the 'cancel' notion this should be changed
+ ExecutionService execService = this.processEngine.getExecutionService();
+ Execution exec = execService.findExecution(executionId);
+ if(null==exec)
+ throw new IllegalArgumentException("No such execution with id "+ executionId);
+
+ execService.deleteProcessInstance(executionId);
+ }
+ else
+ {
+ throw new IllegalArgumentException("State " + nextState + " currently not supported");
+ }
}
- else
+ finally
{
- throw new IllegalArgumentException("State " + nextState + " currently not supported");
+ env.close();
}
}
public void signalExecution(String executionId, String signal)
- {
- ExecutionService execService = this.processEngine.getExecutionService();
+ {
+ Environment env = ((EnvironmentFactory)processEngine).openEnvironment();
- if(null==signal)
- execService.signalExecutionById(executionId);
- else
- execService.signalExecutionById(executionId, signal);
-
+ try
+ {
+ ExecutionService execService = this.processEngine.getExecutionService();
+
+ if(null==signal)
+ execService.signalExecutionById(executionId);
+ else
+ execService.signalExecutionById(executionId, signal);
+ }
+ finally
+ {
+ env.close();
+ }
+
}
public void deploy(String fileName, String contentType, InputStream deployment)
More information about the jbpm-commits
mailing list