[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