[jbpm-commits] JBoss JBPM SVN: r4979 - in jbpm4/trunk/modules: api/src/main/java/org/jbpm/api/activity and 33 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jun 3 06:38:54 EDT 2009


Author: tom.baeyens at jboss.com
Date: 2009-06-03 06:38:53 -0400 (Wed, 03 Jun 2009)
New Revision: 4979

Modified:
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/Execution.java
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/activity/ActivityExecution.java
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientExecution.java
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientProcessDefinition.java
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/concurrency/graphbased/ConcurrencyGraphBasedTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/conditions/DecisionConditionsTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/expression/DecisionExpressionTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/handler/DecisionHandlerTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/end/multiple/EndMultipleTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/end/state/EndStateTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/state/choice/StateChoiceTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/assignee/TaskAssigneeTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/candidates/TaskCandidatesTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/timer/event/TimerEventTest.java
   jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/timer/transition/TimerTransitionTest.java
   jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ModelAdaptor.java
   jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java
   jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java
   jbpm4/trunk/modules/integration/graphView-plugin/.project
   jbpm4/trunk/modules/integration/graphView-plugin/src/main/java/org/jbpm/integration/console/graphView/GraphViewerPluginImpl.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionExpressionActivity.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindExecutionsCmd.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycle.java
   jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/embedded/Loan.java
   jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/object/ObjectExecutionModeTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/examples/goup/simple/GroupSimpleTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/DecisionTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/GroupBasicsTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/GroupTimersTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/async/AsyncBasicsTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/FindExecutionTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/SignalExecutionTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/StartExecutionTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/RepositoryServiceTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/taskactivity/TaskCandidatesTest.java
   jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/executions/ProcessExecutionTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/AutomaticDecisionTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/BasicExecutionFlowTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExternalDecisionTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/LoopingTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/SubProcessTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/TransitionEventsTest.java
Log:
JBPM-2252 removed access to getActivityName from the Execution API

Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/Execution.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/Execution.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/Execution.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -162,19 +162,12 @@
   /** a globally unique identifier for this execution. */
   String getId();
   
-  /** represents the current position in the process by indicating the 
-   * name of the current activity. */
-  String getActivityName();
-
   /** the <a href="#state">state</a> of this execution.  */
   String getState();
 
   /** is this a process instance */
   boolean isProcessInstance();
 
-  /** is this execution active ? This is the inverse of {@link #isLocked()}. */
-  boolean isActive();
-
   /** is this execution ended */
   boolean isEnded();
 
@@ -203,7 +196,7 @@
 
   /** the child executions in the <a href="package-summary.html#basicexecutionstructure">execution 
    * structure</a>.  Can be null and can be an empty collection. */ 
-  Collection<Execution> getExecutions();
+  Collection<? extends Execution> getExecutions();
   
   /** maps child execution names to execution objects.  In case multiple executions 
    * have the same name, the first one is taken.  Can be null or can be an empty 
@@ -227,6 +220,11 @@
    * @see #findActiveExecutionIn(String) */
   Set<String> findActiveActivityNames();
   
+  /** is the given activity active.
+   * This execution and its child executions are searched.  If this is a 
+   * process instance, this means that the whole process instance is searched. */
+  boolean isActive(String activityName);
+  
   /** id of the process definition used for this execution */
   String getProcessDefinitionId();
 }

Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/activity/ActivityExecution.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/activity/ActivityExecution.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/activity/ActivityExecution.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -36,6 +36,14 @@
  */
 public interface ActivityExecution extends OpenExecution {
   
+  /** represents the current position in the process by indicating the 
+   * name of the current activity. */
+  String getActivityName();
+
+  /** the current activity. */
+  Activity getActivity();
+
+  
   // wait state behaviour /////////////////////////////////////////////////////
   
   /** makes this execution wait in the current activity until an external trigger is given 

Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientExecution.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientExecution.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientExecution.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -74,7 +74,7 @@
    * <p>Typically a signal will cause the execution to start executing, but that is 
    * not a must.  What happens with this signal is defined in the 
    * {@link ExternalActivityBehaviour#signal(Execution, String, Map)} of 
-   * the {@link #getActivity() current activity}. </p>
+   * the current activity. </p>
    *  
    * @see #signal(String) */
   void signal();
@@ -134,7 +134,7 @@
    * <p>Typically a signal will cause the execution to start executing, but that is 
    * not a must.  What happens with this signal is defined in the 
    * {@link ExternalActivityBehaviour#signal(Execution, String, Map)} of 
-   * the {@link #getActivity() current activity}. </p>
+   * the current activity. </p>
    *  
    * @see #signal(String) */
   void signal(Execution execution);

Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientProcessDefinition.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientProcessDefinition.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientProcessDefinition.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -58,7 +58,7 @@
   ClientProcessInstance createProcessInstance(String key, Execution superProcessExecution);
 
   /** creates the process instance and immediately start its execution. */
-  ClientExecution startProcessInstance();
+  ClientProcessInstance startProcessInstance();
   
   /** creates the process instance with the given key and immediately start its 
    * execution.

Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -47,9 +47,6 @@
   /** the process definition for this execution.*/
   OpenProcessDefinition getProcessDefinition();
   
-  /** the current activity */
-  Activity getActivity();
-  
   /** update the state */
   void setState(String state);
 

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -53,7 +53,6 @@
     String processInstanceId = processInstance.getId();
     
     assertEquals(Execution.STATE_ASYNC, processInstance.getState());
-    assertEquals("generate pdf", processInstance.getActivityName());
     
     Job job = managementService.createJobQuery()
       .processInstanceId(processInstanceId)
@@ -63,7 +62,6 @@
     processInstance = executionService.findProcessInstanceById(processInstanceId);
 
     assertEquals(Execution.STATE_ASYNC, processInstance.getState());
-    assertEquals("calculate primes", processInstance.getActivityName());
     
     job = managementService.createJobQuery()
       .processInstanceId(processInstanceId)

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/concurrency/graphbased/ConcurrencyGraphBasedTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/concurrency/graphbased/ConcurrencyGraphBasedTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/concurrency/graphbased/ConcurrencyGraphBasedTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -21,11 +21,9 @@
  */
 package org.jbpm.examples.concurrency.graphbased;
 
-import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.jbpm.api.Execution;
 import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
@@ -60,7 +58,7 @@
     expectedActivityNames.add("load truck");
     expectedActivityNames.add("print shipping documents");
     
-    assertEquals(expectedActivityNames, getActiveActivityNames(processInstance));
+    assertEquals(expectedActivityNames, processInstance.findActiveActivityNames());
     
     assertNotNull(processInstance.findActiveExecutionIn("send invoice"));
     assertNotNull(processInstance.findActiveExecutionIn("load truck"));
@@ -70,7 +68,7 @@
     processInstance = executionService.signalExecutionById(sendInvoiceExecutionId);
 
     expectedActivityNames.remove("send invoice");
-    assertEquals(expectedActivityNames, getActiveActivityNames(processInstance));
+    assertEquals(expectedActivityNames, processInstance.findActiveActivityNames());
 
     assertNotNull(processInstance.findActiveExecutionIn("load truck"));
     assertNotNull(processInstance.findActiveExecutionIn("print shipping documents"));
@@ -79,7 +77,7 @@
     processInstance = executionService.signalExecutionById(loadTruckExecutionId);
 
     expectedActivityNames.remove("load truck");
-    assertEquals(expectedActivityNames, getActiveActivityNames(processInstance));
+    assertEquals(expectedActivityNames, processInstance.findActiveActivityNames());
 
     assertNotNull(processInstance.findActiveExecutionIn("print shipping documents"));
     
@@ -88,7 +86,7 @@
 
     expectedActivityNames.remove("print shipping documents");
     expectedActivityNames.add("drive truck to destination");
-    assertEquals(expectedActivityNames, getActiveActivityNames(processInstance));
+    assertEquals(expectedActivityNames, processInstance.findActiveActivityNames());
 
     assertNotNull(processInstance.findActiveExecutionIn("drive truck to destination"));
 
@@ -97,24 +95,4 @@
 
     assertNull("execution "+pid+" should not exist", executionService.findExecutionById(pid));
   }
-
-  public Set<String> getActiveActivityNames(ProcessInstance processInstance) {
-    return getActiveActivityNames(processInstance, new HashSet<String>());
-  }
-
-  public Set<String> getActiveActivityNames(Execution execution, Set<String> activityNames) {
-    if (execution.isActive()) {
-      activityNames.add(execution.getActivityName());
-    }
-    Collection<Execution> childExecutions = execution.getExecutions();
-    if (childExecutions!=null) {
-      for (Execution childExecution: childExecutions) {
-        if (childExecution!=null) {
-          
-        }
-        getActiveActivityNames(childExecution, activityNames);
-      }
-    }
-    return activityNames;
-  }
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/conditions/DecisionConditionsTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/conditions/DecisionConditionsTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/conditions/DecisionConditionsTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -25,6 +25,7 @@
 import java.util.Map;
 
 import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -52,22 +53,21 @@
   public void testDecisionConditionsGood() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "good");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionConditions", variables);
-    assertEquals("submit document", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionConditions", variables);
+    assertTrue(processInstance.isActive("submit document"));
   }
 
   public void testDecisionConditionsBad() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "bad");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionConditions", variables);
-    assertEquals("try again", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionConditions", variables);
+    assertTrue(processInstance.isActive("try again"));
   }
 
   public void testDecisionConditionsUgly() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "ugly");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionConditions", variables);
-    assertEquals("give up", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionConditions", variables);
+    assertTrue(processInstance.isActive("give up"));
   }
-
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/expression/DecisionExpressionTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/expression/DecisionExpressionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/expression/DecisionExpressionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -24,7 +24,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -52,21 +52,21 @@
   public void testDecisionExpressionGood() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "good");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionExpression", variables);
-    assertEquals("submit document", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionExpression", variables);
+    assertTrue(processInstance.isActive("submit document"));
   }
 
   public void testDecisionExpressionBad() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "bad");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionExpression", variables);
-    assertEquals("try again", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionExpression", variables);
+    assertTrue(processInstance.isActive("try again"));
   }
 
   public void testDecisionExpressionUgly() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "ugly");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionExpression", variables);
-    assertEquals("give up", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionExpression", variables);
+    assertTrue(processInstance.isActive("give up"));
   }
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/handler/DecisionHandlerTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/handler/DecisionHandlerTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/decision/handler/DecisionHandlerTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -25,6 +25,7 @@
 import java.util.Map;
 
 import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -52,21 +53,21 @@
   public void testDecisionHandlerGreat() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "you're great");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionHandler", variables);
-    assertEquals("submit document", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionHandler", variables);
+    assertTrue(processInstance.isActive("submit document"));
   }
 
   public void testDecisionHandlerImprove() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "you gotta improve");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionHandler", variables);
-    assertEquals("try again", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionHandler", variables);
+    assertTrue(processInstance.isActive("try again"));
   }
 
   public void testDecisionHandlerSuck() {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("content", "you suck");
-    Execution execution = executionService.startProcessInstanceByKey("DecisionHandler", variables);
-    assertEquals("give up", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DecisionHandler", variables);
+    assertTrue(processInstance.isActive("give up"));
   }
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/end/multiple/EndMultipleTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/end/multiple/EndMultipleTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/end/multiple/EndMultipleTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -21,7 +21,7 @@
  */
 package org.jbpm.examples.end.multiple;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -47,26 +47,23 @@
   }
 
   public void testEndMultipleOk() {
-    Execution execution = executionService.startProcessInstanceByKey("EndMultiple");
-    String executionId = execution.getId();
-    execution = executionService.signalExecutionById(executionId, "200");
-    assertTrue(execution.isEnded());
-    assertEquals("ok", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("EndMultiple");
+    String pid = processInstance.getId();
+    processInstance = executionService.signalExecutionById(pid, "200");
+    assertTrue(processInstance.isEnded());
   }
 
   public void testEndMultipleBadRequest() {
-    Execution execution = executionService.startProcessInstanceByKey("EndMultiple");
-    String executionId = execution.getId();
-    execution = executionService.signalExecutionById(executionId, "400");
-    assertTrue(execution.isEnded());
-    assertEquals("bad request", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("EndMultiple");
+    String executionId = processInstance.getId();
+    processInstance = executionService.signalExecutionById(executionId, "400");
+    assertTrue(processInstance.isEnded());
   }
 
   public void testEndMultipleInternalServerError() {
-    Execution execution = executionService.startProcessInstanceByKey("EndMultiple");
-    String executionId = execution.getId();
-    execution = executionService.signalExecutionById(executionId, "500");
-    assertTrue(execution.isEnded());
-    assertEquals("internal server error", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("EndMultiple");
+    String executionId = processInstance.getId();
+    processInstance = executionService.signalExecutionById(executionId, "500");
+    assertTrue(processInstance.isEnded());
   }
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/end/state/EndStateTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/end/state/EndStateTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/end/state/EndStateTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -21,7 +21,7 @@
  */
 package org.jbpm.examples.end.state;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -47,26 +47,26 @@
   }
 
   public void testEndStateCompleted() {
-    Execution execution = executionService.startProcessInstanceByKey("EndState");
-    String executionId = execution.getId();
-    execution = executionService.signalExecutionById(executionId, "200");
-    assertEquals("completed", execution.getState());
-    assertEquals("ok", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("EndState");
+    String pid = processInstance.getId();
+    processInstance = executionService.signalExecutionById(pid, "200");
+    assertEquals("completed", processInstance.getState());
+    assertTrue(processInstance.isEnded());
   }
 
   public void testEndStateErrorBadRequest() {
-    Execution execution = executionService.startProcessInstanceByKey("EndState");
-    String executionId = execution.getId();
-    execution = executionService.signalExecutionById(executionId, "400");
-    assertEquals("cancel", execution.getState());
-    assertEquals("bad request", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("EndState");
+    String pid = processInstance.getId();
+    processInstance = executionService.signalExecutionById(pid, "400");
+    assertEquals("cancel", processInstance.getState());
+    assertTrue(processInstance.isEnded());
   }
 
   public void testEndStateErrorInternalServerError() {
-    Execution execution = executionService.startProcessInstanceByKey("EndState");
-    String executionId = execution.getId();
-    execution = executionService.signalExecutionById(executionId, "500");
-    assertEquals("error", execution.getState());
-    assertEquals("internal server error", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("EndState");
+    String executionId = processInstance.getId();
+    processInstance = executionService.signalExecutionById(executionId, "500");
+    assertEquals("error", processInstance.getState());
+    assertTrue(processInstance.isEnded());
   }
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/state/choice/StateChoiceTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/state/choice/StateChoiceTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/state/choice/StateChoiceTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -56,7 +56,7 @@
 
     processInstance = executionService.signalExecutionById(executionId, "accept");
     
-    assertEquals("submit document", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("submit document"));
   }
 
   public void testStateChoiceReject() {
@@ -68,7 +68,7 @@
         .getId();
     
     processInstance = executionService.signalExecutionById(executionId, "reject");
-    
-    assertEquals("try again", processInstance.getActivityName());
+
+    assertTrue(processInstance.isActive("try again"));
   }
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/assignee/TaskAssigneeTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/assignee/TaskAssigneeTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/assignee/TaskAssigneeTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -25,7 +25,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.api.task.Task;
 import org.jbpm.test.JbpmTestCase;
 
@@ -54,8 +54,8 @@
   public void testTaskAssignee() {
     Map<String, Object> variables = new HashMap<String, Object>(); 
     variables.put("order", new Order("johndoe"));
-    Execution execution = executionService.startProcessInstanceByKey("TaskAssignee", variables);
-    String executionId = execution.getId();
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("TaskAssignee", variables);
+    String pid = processInstance.getId();
 
     List<Task> taskList = taskService.findPersonalTasks("johndoe");
     assertEquals(1, taskList.size());
@@ -71,7 +71,7 @@
     assertEquals(0, taskList.size());
 
     // verify that process moved to the next state
-    execution = executionService.findExecutionById(executionId);
-    assertEquals("wait", execution.getActivityName());
+    processInstance = executionService.findProcessInstanceById(pid);
+    assertTrue(processInstance.isActive("wait"));
   }
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/candidates/TaskCandidatesTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/candidates/TaskCandidatesTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/candidates/TaskCandidatesTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -23,7 +23,7 @@
 
 import java.util.List;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.api.task.Task;
 import org.jbpm.test.JbpmTestCase;
 
@@ -66,8 +66,8 @@
   }
 
   public void testGroupCandidateAssignment() {
-    Execution execution = executionService.startProcessInstanceByKey("TaskCandidates");
-    String executionId = execution.getId();
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("TaskCandidates");
+    String pid = processInstance.getId();
 
     // both johndoe and joesmoe will see the task in their *group* task list 
     List<Task> taskList = taskService.findGroupTasks("johndoe");
@@ -117,7 +117,7 @@
     assertEquals(0, taskList.size());
 
     // verify that process moved to the next state
-    execution = executionService.findExecutionById(executionId);
-    assertEquals("wait", execution.getActivityName());
+    processInstance = executionService.findProcessInstanceById(pid);
+    assertTrue(processInstance.isActive("wait"));
   }
 }

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/timer/event/TimerEventTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/timer/event/TimerEventTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/timer/event/TimerEventTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -79,7 +79,7 @@
     
     processInstance = executionService.findProcessInstanceById(processInstance.getId());
     
-    assertEquals("next step", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("next step"));
 
     List<Job> jobs = managementService.createJobQuery()
       .processInstanceId(processInstance.getId())

Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/timer/transition/TimerTransitionTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/timer/transition/TimerTransitionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/timer/transition/TimerTransitionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -24,7 +24,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.api.job.Job;
 import org.jbpm.test.JbpmTestCase;
 
@@ -50,7 +50,7 @@
   }
 
   public void testTimerTransitionTimerFires() {
-    Execution processInstance = executionService.startProcessInstanceByKey("TimerTransition");
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("TimerTransition");
     
     Job job = managementService.createJobQuery()
       .timers()
@@ -59,21 +59,21 @@
     
     managementService.executeJob(job.getDbid());
     
-    processInstance = executionService.findExecutionById(processInstance.getId());
+    processInstance = executionService.findProcessInstanceById(processInstance.getId());
     
-    assertEquals("escalation", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("escalation"));
   }
 
   public void testTimerTransitionContinueBeforeTimerFires() {
-    Execution processInstance = executionService.startProcessInstanceByKey("TimerTransition");
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("TimerTransition");
     
     String executionId = processInstance.findActiveExecutionIn("guardedWait").getId();
 
     executionService.signalExecutionById(executionId, "go on");
     
-    processInstance = executionService.findExecutionById(processInstance.getId());
+    processInstance = executionService.findProcessInstanceById(processInstance.getId());
     
-    assertEquals("next step", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("next step"));
 
     List<Job> jobs = managementService.createJobQuery()
       .processInstanceId(processInstance.getId())

Modified: jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ModelAdaptor.java
===================================================================
--- jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ModelAdaptor.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ModelAdaptor.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -21,6 +21,11 @@
  */
 package org.jbpm.integration.console;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
 import org.jboss.bpm.console.client.model.ParticipantRef;
 import org.jboss.bpm.console.client.model.ProcessDefinitionRef;
 import org.jboss.bpm.console.client.model.ProcessInstanceRef;
@@ -35,11 +40,6 @@
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.pvm.internal.task.TaskImpl;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
@@ -59,7 +59,7 @@
 
   }
 
-  public static ProcessInstanceRef adoptExecution(OpenExecution e0)
+  public static ProcessInstanceRef adoptExecution(ExecutionImpl e0)
   {
     ProcessInstanceRef ref = new ProcessInstanceRef();
     ref.setId( e0.getId() );
@@ -67,13 +67,13 @@
     ref.setDefinitionId(e0.getProcessDefinition().getId() );
     ref.setStartDate( new Date() );                   // TODO: FIXME
 
-    OpenExecution topLevelExecution = e0.getProcessInstance();
+    ExecutionImpl topLevelExecution = e0.getProcessInstance();
     TokenReference tok = execution2TokenReference(topLevelExecution);
 
-    Collection<Execution> childExecutions = topLevelExecution.getExecutions();
+    Collection<ExecutionImpl> childExecutions = (Collection)topLevelExecution.getExecutions();
     if(childExecutions!=null)
     {
-      for(Execution childExecution : childExecutions)
+      for(ExecutionImpl childExecution : childExecutions)
       {
         TokenReference childTok = execution2TokenReference(childExecution);
         tok.getChildren().add(childTok);
@@ -85,7 +85,7 @@
     return ref;
   }
 
-  private static TokenReference execution2TokenReference(Execution topLevelExecution)
+  private static TokenReference execution2TokenReference(ExecutionImpl topLevelExecution)
   {
     TokenReference tok = new TokenReference();
     tok.setName(topLevelExecution.getName());
@@ -95,7 +95,7 @@
     // transitions
     List<String> availableSignals = new ArrayList<String>();
 
-    OpenExecution openTopLevelExecution = (OpenExecution) topLevelExecution;
+    ExecutionImpl openTopLevelExecution = (ExecutionImpl) topLevelExecution;
     List<Transition> outTransitions = openTopLevelExecution.getActivity().getOutgoingTransitions();
     if(outTransitions!=null) // crappy jBPM API
     {

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-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -30,6 +30,7 @@
 import org.jbpm.api.*;
 import org.jbpm.api.history.HistoryProcessInstanceQuery;
 import org.jbpm.api.history.HistoryProcessInstance;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
 
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -163,7 +164,7 @@
 
         if(processInstance.isProcessInstance()) // parent execution
         {
-          results.add( ModelAdaptor.adoptExecution((OpenExecution)processInstance) );
+          results.add( ModelAdaptor.adoptExecution((ExecutionImpl)processInstance) );
         }
       }
       return results;
@@ -184,7 +185,7 @@
       ProcessInstanceQuery query = execService.createProcessInstanceQuery();
       query.processInstanceId(instanceId);
       ProcessInstance processInstance = query.uniqueResult();
-      return ModelAdaptor.adoptExecution( (OpenExecution)processInstance);
+      return ModelAdaptor.adoptExecution( (ExecutionImpl)processInstance);
     }
     finally
     {
@@ -200,7 +201,7 @@
     {
       ExecutionService execService = this.processEngine.getExecutionService();
       Execution exec = execService.startProcessInstanceById(definitionId);
-      return ModelAdaptor.adoptExecution((OpenExecution)exec);
+      return ModelAdaptor.adoptExecution((ExecutionImpl)exec);
     }
     finally{
       env.close();

Modified: jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java
===================================================================
--- jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -150,7 +150,7 @@
           // TODO: Fix when https://jira.jboss.org/jira/browse/JBPM-2220 is done
           OutcomeDirective outcomeDirective = new OutcomeDirective();
           List<Transition> transitions =
-              ((OpenExecution) processInstance).getActivity().getOutgoingTransitions();
+              ((ExecutionImpl) processInstance).getActivity().getOutgoingTransitions();
           for(Transition t : transitions)
           {
             String outcomeName = t.getName()!=null ? t.getName() : "to_"+t.getDestination().getName();

Modified: jbpm4/trunk/modules/integration/graphView-plugin/.project
===================================================================
--- jbpm4/trunk/modules/integration/graphView-plugin/.project	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/integration/graphView-plugin/.project	2009-06-03 10:38:53 UTC (rev 4979)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>integration-forms-plugin</name>
+	<name>integration-graphview-plugin</name>
 	<comment></comment>
 	<projects>
 	</projects>

Modified: jbpm4/trunk/modules/integration/graphView-plugin/src/main/java/org/jbpm/integration/console/graphView/GraphViewerPluginImpl.java
===================================================================
--- jbpm4/trunk/modules/integration/graphView-plugin/src/main/java/org/jbpm/integration/console/graphView/GraphViewerPluginImpl.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/integration/graphView-plugin/src/main/java/org/jbpm/integration/console/graphView/GraphViewerPluginImpl.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -21,18 +21,26 @@
  */
 package org.jbpm.integration.console.graphView;
 
-import org.jboss.bpm.console.server.plugin.GraphViewerPlugin;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.naming.InitialContext;
+
+import org.jboss.bpm.console.client.model.ActiveNodeInfo;
 import org.jboss.bpm.console.client.model.DiagramInfo;
-import org.jboss.bpm.console.client.model.ActiveNodeInfo;
 import org.jboss.bpm.console.client.model.DiagramNodeInfo;
-import org.jbpm.api.*;
-import org.jbpm.api.model.ActivityCoordinates;
+import org.jboss.bpm.console.server.plugin.GraphViewerPlugin;
+import org.jbpm.api.ExecutionService;
+import org.jbpm.api.ProcessDefinition;
+import org.jbpm.api.ProcessEngine;
+import org.jbpm.api.ProcessInstanceQuery;
+import org.jbpm.api.RepositoryService;
 import org.jbpm.api.env.Environment;
 import org.jbpm.api.env.EnvironmentFactory;
+import org.jbpm.api.model.ActivityCoordinates;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
 
-import javax.naming.InitialContext;
-import java.io.*;
-
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
@@ -107,7 +115,7 @@
       ExecutionService execService = this.processEngine.getExecutionService();
       ProcessInstanceQuery query = execService.createProcessInstanceQuery();
       query.processInstanceId(instanceId);
-      ProcessInstance processInstance = query.uniqueResult();
+      ExecutionImpl processInstance = (ExecutionImpl) query.uniqueResult();
 
       String currentActivity = processInstance.getProcessInstance().getActivityName();
 

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionExpressionActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionExpressionActivity.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionExpressionActivity.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -26,7 +26,6 @@
 import org.jbpm.api.model.Activity;
 import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.env.EnvironmentDefaults;
-import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.pvm.internal.script.ScriptManager;
 
 /**

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindExecutionsCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindExecutionsCmd.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindExecutionsCmd.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -63,7 +63,7 @@
 
     executions.add(execution);
     
-    Collection<Execution> childExecutions = execution.getExecutions();
+    Collection<? extends Execution> childExecutions = execution.getExecutions();
     if (childExecutions!=null) {
       for (Execution childExecution: childExecutions) {
         scanExecutions(childExecution, executions);

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -792,13 +792,18 @@
            );
   }
 
+  public boolean isActive(String activityName) {
+    return findActiveActivityNames().contains(activityName);
+  }
+
   public Set<String> findActiveActivityNames() {
     return addActiveActivityNames(new HashSet<String>());
   }
 
   protected Set<String> addActiveActivityNames(Set<String> activityNames) {
-    if ( (state.equals(STATE_ACTIVE_ROOT))
-         && (activityName!=null)
+    if ( ( (state.equals(STATE_ACTIVE_ROOT)) || (state.equals(STATE_ACTIVE_CONCURRENT)) )
+         && 
+         (activityName!=null)
        ) {
       activityNames.add(activityName);
     }
@@ -1126,7 +1131,7 @@
   public ObservableElementImpl getEventSource() {
     return eventSource;
   }
-  public Collection<Execution> getExecutions() {
+  public Collection<ExecutionImpl> getExecutions() {
     return (Collection) executions;
   }
   public String getName() {

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycle.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycle.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycle.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -25,7 +25,6 @@
 import java.util.Map;
 
 import org.jbpm.api.JbpmException;
-import org.jbpm.api.client.ClientProcessInstance;
 import org.jbpm.api.model.Activity;
 import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
@@ -45,7 +44,7 @@
     ProcessDefinitionImpl lifeCycle = getLifeCycle(task);
     Map<String, Object> lifeCycleVariables = new HashMap<String, Object>();
     lifeCycleVariables.put("task", task);
-    ClientProcessInstance lifeCycleExecution = lifeCycle.createProcessInstance();
+    ExecutionImpl lifeCycleExecution = (ExecutionImpl) lifeCycle.createProcessInstance();
     lifeCycleExecution.setVariables(lifeCycleVariables);
     lifeCycleExecution.start();
     return lifeCycleExecution.getActivity().getName();

Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/embedded/Loan.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/embedded/Loan.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/embedded/Loan.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -22,9 +22,9 @@
 package org.jbpm.pvm.executionmode.embedded;
 
 
-import org.jbpm.api.client.ClientExecution;
 import org.jbpm.api.client.ClientProcessDefinition;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
 
 /**
  * @author Tom Baeyens
@@ -66,7 +66,7 @@
   long dbid;
   String customer;
   double amount;
-  ClientExecution execution;
+  ExecutionImpl execution;
   
   /** constructor for persistence */
   protected Loan() {
@@ -75,7 +75,7 @@
   public Loan(String customer, double amount) {
     this.customer = customer;
     this.amount = amount;
-    this.execution = processDefinition.startProcessInstance();
+    this.execution = (ExecutionImpl) processDefinition.startProcessInstance();
   }
 
   public void approve() {

Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/object/ObjectExecutionModeTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/object/ObjectExecutionModeTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/object/ObjectExecutionModeTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -25,6 +25,7 @@
 
 import org.jbpm.api.client.ClientExecution;
 import org.jbpm.api.client.ClientProcessDefinition;
+import org.jbpm.api.client.ClientProcessInstance;
 import org.jbpm.pvm.activities.AutomaticActivity;
 import org.jbpm.pvm.activities.WaitState;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
@@ -53,13 +54,13 @@
       .endActivity()
     .endProcess();
     
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
     
-    assertEquals("evaluate", execution.getActivityName());
+    assertTrue(processInstance.isActive("evaluate"));
     
-    execution.signal("approve");
+    processInstance.signal("approve");
     
-    execution.signal();
-    assertEquals("end", execution.getActivityName());
+    processInstance.signal();
+    assertTrue(processInstance.isActive("end"));
   }
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/examples/goup/simple/GroupSimpleTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/examples/goup/simple/GroupSimpleTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/examples/goup/simple/GroupSimpleTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -52,21 +52,21 @@
   public void testOneFeedbackLoop() {
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("GroupSimple");
     String pid = processInstance.getId();
-    assertEquals("distribute document", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("distribute document"));
     
     processInstance = executionService.signalExecutionById(pid);
-    assertEquals("collect feedback", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("collect feedback"));
     
     processInstance = executionService.signalExecutionById(pid, "rejected");
-    assertEquals("update document", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("update document"));
     
     processInstance = executionService.signalExecutionById(pid);
-    assertEquals("distribute document", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("distribute document"));
     
     processInstance = executionService.signalExecutionById(pid);
-    assertEquals("collect feedback", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("collect feedback"));
     
     processInstance = executionService.signalExecutionById(pid, "approved");
-    assertEquals("publish document", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("publish document"));
   }
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/DecisionTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/DecisionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/DecisionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -25,6 +25,7 @@
 import java.util.Map;
 
 import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -50,12 +51,12 @@
 
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("distance", "far");
-    Execution execution = executionService.startProcessInstanceByKey("Poolcar", variables);
-    assertEquals("Big car", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("Poolcar", variables);
+    assertTrue(processInstance.isActive("Big car"));
 
     variables.put("distance", "nearby");
-    execution = executionService.startProcessInstanceByKey("Poolcar", variables);
-    assertEquals("Small car", execution.getActivityName());
+    processInstance = executionService.startProcessInstanceByKey("Poolcar", variables);
+    assertTrue(processInstance.isActive("Small car"));
   }
 
   public void testDecisionWithConditions() {
@@ -81,16 +82,15 @@
 
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("distance", new Integer(69));
-    Execution execution = executionService.startProcessInstanceByKey("Poolcar", variables);
-    assertEquals("Big car", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("Poolcar", variables);
+    assertTrue(processInstance.isActive("Big car"));
 
     variables.put("distance", new Integer(6));
-    execution = executionService.startProcessInstanceByKey("Poolcar", variables);
-    assertEquals("Small car", execution.getActivityName());
+    processInstance = executionService.startProcessInstanceByKey("Poolcar", variables);
+    assertTrue(processInstance.isActive("Small car"));
 
     variables.put("distance", new Integer(2));
-    execution = executionService.startProcessInstanceByKey("Poolcar", variables);
-    assertEquals("No car", execution.getActivityName());
+    processInstance = executionService.startProcessInstanceByKey("Poolcar", variables);
+    assertTrue(processInstance.isActive("No car"));
   }
-
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/GroupBasicsTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/GroupBasicsTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/GroupBasicsTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -54,7 +54,7 @@
     );
 
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("Group");
-    assertEquals("a", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("a"));
     
     processInstance = executionService.signalExecutionById(processInstance.getId());
     assertTrue(processInstance.isEnded());
@@ -78,7 +78,7 @@
     );
 
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("Group");
-    assertEquals("a", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("a"));
     
     processInstance = executionService.signalExecutionById(processInstance.getId());
     assertTrue(processInstance.isEnded());
@@ -117,14 +117,14 @@
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("theWayToGo", "left");
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("Group", variables);
-    assertEquals("a", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("a"));
     
     processInstance = executionService.signalExecutionById(processInstance.getId());
     assertTrue(processInstance.isEnded());
 
     variables.put("theWayToGo", "right");
     processInstance = executionService.startProcessInstanceByKey("Group", variables);
-    assertEquals("b", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("b"));
     
     processInstance = executionService.signalExecutionById(processInstance.getId());
     assertTrue(processInstance.isEnded());
@@ -151,7 +151,7 @@
     );
 
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("Group");
-    assertEquals("a", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("a"));
     
     processInstance = executionService.signalExecutionById(processInstance.getId());
     assertTrue(processInstance.isEnded());
@@ -175,8 +175,8 @@
     );
 
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("Group");
-    assertEquals("a", processInstance.getActivityName());
-    
+    assertTrue(processInstance.isActive("a"));
+   
     processInstance = executionService.signalExecutionById(processInstance.getId());
     assertTrue(processInstance.isEnded());
   }
@@ -208,18 +208,16 @@
     );
 
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("Group");
-    assertEquals("a", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("a"));
     
     processInstance = executionService.signalExecutionById(processInstance.getId(), "a");
     assertTrue(processInstance.isEnded());
-    assertEquals("endA", processInstance.getActivityName());
     
     processInstance = executionService.startProcessInstanceByKey("Group");
-    assertEquals("a", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("a"));
     
     processInstance = executionService.signalExecutionById(processInstance.getId(), "b");
     assertTrue(processInstance.isEnded());
-    assertEquals("endB", processInstance.getActivityName());
   }
 
   public void testGroupDirectExitTransition() {
@@ -241,7 +239,7 @@
     );
 
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("Group");
-    assertEquals("a", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("a"));
     
     processInstance = executionService.signalExecutionById(processInstance.getId());
     assertTrue(processInstance.isEnded());

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/GroupTimersTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/GroupTimersTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/GroupTimersTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -62,16 +62,14 @@
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("Group");
     
     assertEquals(Execution.STATE_INACTIVE_SCOPE, processInstance.getState());
-    assertEquals("group", processInstance.getActivityName());
     assertEquals(1, processInstance.getExecutions().size());
     Execution groupExecution = processInstance.getExecutions().iterator().next();
     assertEquals(Execution.STATE_ACTIVE_ROOT, groupExecution.getState());
-    assertEquals("a", groupExecution.getActivityName());
+    assertTrue(groupExecution.isActive("a"));
 
     processInstance = executionService.signalExecutionById(groupExecution.getId());
 
     assertEquals(Execution.STATE_ACTIVE_ROOT, processInstance.getState());
-    assertEquals("end", processInstance.getActivityName());
     assertEquals(0, processInstance.getExecutions().size());
 
     
@@ -92,8 +90,7 @@
     processInstance = executionService.findProcessInstanceById(processInstance.getId());
     
     assertEquals(Execution.STATE_ACTIVE_ROOT, processInstance.getState());
-    assertEquals("escalate", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("escalate"));
     assertEquals(0, processInstance.getExecutions().size());
   }
-
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -21,8 +21,8 @@
  */
 package org.jbpm.test.activities;
 
-import org.jbpm.api.Execution;
 import org.jbpm.api.JbpmException;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 /**
@@ -46,16 +46,15 @@
       "</process>"
     );
     
-    Execution execution = executionService.startProcessInstanceById("ThreeStates-1");
-    assertEquals("b", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceById("ThreeStates-1");
+    assertTrue(processInstance.isActive("b"));
 
-    String executionId = execution.getId();
-    execution = executionService.signalExecutionById(executionId);
-    assertEquals("c", execution.getActivityName());
+    String executionId = processInstance.getId();
+    processInstance = executionService.signalExecutionById(executionId);
+    assertTrue(processInstance.isActive("c"));
 
-    execution = executionService.signalExecutionById(executionId);
-    assertEquals("d", execution.getActivityName());
-    assertTrue(execution.isEnded());
+    processInstance = executionService.signalExecutionById(executionId);
+    assertTrue(processInstance.isEnded());
   }
 
   public void testExternalDecision() {
@@ -75,18 +74,18 @@
       "</process>"
     );
 
-    Execution execution = executionService.startProcessInstanceByKey("p", "one");
-    assertEquals("ed", execution.getActivityName());
-    execution = executionService.signalExecutionById("p.one", "left");
-    assertEquals("b", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("p", "one");
+    assertTrue(processInstance.isActive("ed"));
+    processInstance = executionService.signalExecutionById("p.one", "left");
+    assertTrue(processInstance.isActive("b"));
 
     executionService.startProcessInstanceById("p-1", "two");
-    execution = executionService.signalExecutionById("p.two", "middle");
-    assertEquals("c", execution.getActivityName());
+    processInstance = executionService.signalExecutionById("p.two", "middle");
+    assertTrue(processInstance.isActive("c"));
 
     executionService.startProcessInstanceById("p-1", "three");
-    execution = executionService.signalExecutionById("p.three", "right");
-    assertEquals("d", execution.getActivityName());
+    processInstance = executionService.signalExecutionById("p.three", "right");
+    assertTrue(processInstance.isActive("d"));
   }
 
   public void testDefaultSignalWithNamedTransitions() {
@@ -132,8 +131,8 @@
     );
 
     executionService.startProcessInstanceByKey("p", "one");
-    Execution execution = executionService.signalExecutionById("p.one", "up");
-    assertEquals("a", execution.getActivityName());
+    ProcessInstance processInstance = executionService.signalExecutionById("p.one", "up");
+    assertTrue(processInstance.isActive("a"));
   }
 
   public void testDefaultSignalWithoutTransitions() {
@@ -147,7 +146,7 @@
     );
 
     executionService.startProcessInstanceByKey("p", "one");
-    Execution execution = executionService.signalExecutionById("p.one");
-    assertEquals("a", execution.getActivityName());
+    ProcessInstance processInstance = executionService.signalExecutionById("p.one");
+    assertTrue(processInstance.isActive("a"));
   }
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/async/AsyncBasicsTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/async/AsyncBasicsTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/async/AsyncBasicsTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -66,7 +66,6 @@
     );
     
     ProcessInstance processInstance = executionService.startProcessInstanceByKey("TwoAsyncStates");
-    assertEquals("a", processInstance.getActivityName());
     assertEquals(Execution.STATE_ASYNC, processInstance.getState());
     
     assertFalse(doneSomething);
@@ -86,7 +85,6 @@
     doneSomething = false;
 
     processInstance = executionService.findProcessInstanceById(processInstance.getId());
-    assertEquals("b", processInstance.getActivityName());
     assertEquals(Execution.STATE_ASYNC, processInstance.getState());
 
     jobs = managementService

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/eventlistener/EventListenerTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -46,8 +46,6 @@
   public static class ProcessStartListener implements EventListener {
     private static final long serialVersionUID = 1L;
     public void notify(EventListenerExecution execution) {
-      assertNotNull(execution.getActivity());
-      assertSame(execution.getActivity(), execution.getProcessDefinition().getInitial());
       isInvoked = true;
     }
   }
@@ -73,8 +71,6 @@
   public static class ProcessEndListener implements EventListener {
     private static final long serialVersionUID = 1L;
     public void notify(EventListenerExecution execution) {
-      assertNotNull(execution.getActivity());
-      assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("end"));
       isInvoked = true;
     }
   }
@@ -100,8 +96,6 @@
   public static class ActivityStartListener implements EventListener {
     private static final long serialVersionUID = 1L;
     public void notify(EventListenerExecution execution) {
-      assertNotNull(execution.getActivity());
-      assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("s"));
       isInvoked = true;
     }
   }
@@ -130,8 +124,6 @@
   public static class ActivityEndListener implements EventListener {
     private static final long serialVersionUID = 1L;
     public void notify(EventListenerExecution execution) {
-      assertNotNull(execution.getActivity());
-      assertSame(execution.getActivity(), execution.getProcessDefinition().getActivity("s"));
       isInvoked = true;
     }
   }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/FindExecutionTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/FindExecutionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/FindExecutionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -21,7 +21,7 @@
  */
 package org.jbpm.test.execution;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 /**
@@ -39,12 +39,11 @@
       "</process>"
     );
 
-    Execution execution = executionService.startProcessInstanceByKey("p");
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("p");
 
     // take the id and see if the execution service can still find it back
-    execution = executionService.findExecutionById(execution.getId());
-    assertNotNull(execution);
-    assertEquals("a", execution.getActivityName());
+    processInstance = executionService.findProcessInstanceById(processInstance.getId());
+    assertNotNull(processInstance);
+    assertTrue(processInstance.isActive("a"));
   }
-
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/SignalExecutionTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/SignalExecutionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/SignalExecutionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -26,7 +26,7 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -51,17 +51,17 @@
       "</process>"
     );
 
-    Execution execution = executionService.startProcessInstanceByKey("ICL", "82436");
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL", "82436");
     
-    assertEquals("a", execution.getActivityName());
+    assertTrue(processInstance.isActive("a"));
     
-    execution = executionService.signalExecutionById("ICL.82436");
+    processInstance = executionService.signalExecutionById("ICL.82436");
 
-    assertEquals("b", execution.getActivityName());
+    assertTrue(processInstance.isActive("b"));
 
-    execution = executionService.signalExecutionById("ICL.82436");
+    processInstance = executionService.signalExecutionById("ICL.82436");
 
-    assertEquals("c", execution.getActivityName());
+    assertTrue(processInstance.isActive("c"));
   }
 
   public void testSignalExecutionWithVariables() {
@@ -77,25 +77,25 @@
       "</process>"
     );
 
-    Execution execution = executionService.startProcessInstanceByKey("ICL", "82436");
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL", "82436");
 
     Map<String,Object> variables = new HashMap<String,Object>();
     variables.put("customer", "John Doe");
     variables.put("type", "Accident");
     variables.put("amount", new Float(763.74));
 
-    execution = executionService.signalExecutionById("ICL.82436", variables);
+    processInstance = executionService.signalExecutionById("ICL.82436", variables);
 
-    assertNotNull(execution);
-    String executionId = execution.getId();
-    assertEquals("b", execution.getActivityName());
+    assertNotNull(processInstance);
+    String pid = processInstance.getId();
+    assertTrue(processInstance.isActive("b"));
     
     Map<String,Object> expectedVariables = new HashMap<String, Object>(variables); 
     Set<String> expectedVariableNames = new HashSet<String>(expectedVariables.keySet());
-    Set<String> variableNames = new HashSet<String>(executionService.getVariableNames(executionId));
+    Set<String> variableNames = new HashSet<String>(executionService.getVariableNames(pid));
     assertEquals(expectedVariableNames, variableNames);
     
-    variables = executionService.getVariables(executionId, variableNames);
+    variables = executionService.getVariables(pid, variableNames);
     assertEquals(expectedVariables, variables);
   }
 
@@ -110,8 +110,8 @@
       "</process>"
     );
 
-    Execution execution = executionService.startProcessInstanceByKey("p");
-    execution = executionService.signalExecutionById(execution.getId());
-    assertEquals("a", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("p");
+    processInstance = executionService.signalExecutionById(processInstance.getId());
+    assertTrue(processInstance.isActive("a"));
   }
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/StartExecutionTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/StartExecutionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/execution/StartExecutionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -28,6 +28,7 @@
 
 import org.jbpm.api.Execution;
 import org.jbpm.api.ProcessDefinition;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -46,10 +47,10 @@
       "</process>"
     );
 
-    Execution execution = executionService.startProcessInstanceByKey("ICL");
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL");
 
-    assertNotNull(execution);
-    assertEquals("a", execution.getActivityName());
+    assertNotNull(processInstance);
+    assertTrue(processInstance.isActive("a"));
   }
 
   public void testStartNewExecutionInLatestProcessDefinition() {
@@ -62,10 +63,10 @@
       "</process>"
     );
 
-    Execution execution = executionService.startProcessInstanceByKey("ICL");
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL");
 
-    assertNotNull(execution);
-    assertEquals("a", execution.getActivityName());
+    assertNotNull(processInstance);
+    assertTrue(processInstance.isActive("a"));
 
     deployJpdlXmlString(
       "<process name='Insurance claim' key='ICL'>" +
@@ -76,10 +77,10 @@
       "</process>"
     );
 
-    execution = executionService.startProcessInstanceByKey("ICL");
+    processInstance = executionService.startProcessInstanceByKey("ICL");
 
-    assertNotNull(execution);
-    assertEquals("b", execution.getActivityName());
+    assertNotNull(processInstance);
+    assertTrue(processInstance.isActive("b"));
   }
   
   public void testStartExecutionInLatestByNameWithVariables() {
@@ -107,16 +108,16 @@
     variables.put("b", "text");
 
     // feed the variables in
-    Execution execution = executionService.startProcessInstanceByKey("ICL", variables);
-    String executionId = execution.getId();
-    assertEquals("b", execution.getActivityName());
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL", variables);
+    String executionId = processInstance.getId();
+    assertTrue(processInstance.isActive("b"));
 
     // verify that the variables are actually set
     assertEquals(new Integer(1), executionService.getVariable(executionId, "a"));
     assertEquals("text", executionService.getVariable(executionId, "b"));
 
     // in the generated id, we can see if the right process definition version was taken
-    assertTrue(execution.getId().startsWith("ICL."));
+    assertTrue(processInstance.getId().startsWith("ICL."));
   }
 
   public void testStartNewProcessInstanceWithAKey() {
@@ -129,10 +130,10 @@
       "</process>"
     );
 
-    Execution execution = executionService.startProcessInstanceByKey("ICL", "one");
+    Execution processInstance = executionService.startProcessInstanceByKey("ICL", "one");
 
-    assertNotNull(execution);
-    assertEquals("ICL.one", execution.getId());
+    assertNotNull(processInstance);
+    assertEquals("ICL.one", processInstance.getId());
   }
 
   public void testStartNewProcessInstanceWithVariables() {
@@ -150,11 +151,11 @@
     variables.put("type", "Accident");
     variables.put("amount", new Float(763.74));
 
-    Execution execution = executionService.startProcessInstanceByKey("ICL", variables);
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL", variables);
     
-    String executionId = execution.getId();
+    String executionId = processInstance.getId();
 
-    assertNotNull(execution);
+    assertNotNull(processInstance);
     
     Map<String,Object> expectedVariables = new HashMap<String, Object>(variables); 
     Set<String> expectedVariableNames = new HashSet<String>(expectedVariables.keySet());
@@ -176,20 +177,20 @@
     );
     
     // start an execution for the process with the given id
-    Execution execution = executionService.startProcessInstanceById("ICL-1");
-    assertNotNull(execution);
+    ProcessInstance processInstance = executionService.startProcessInstanceById("ICL-1");
+    assertNotNull(processInstance);
 
-    // checking the state
-    assertEquals("a", execution.getActivityName());
+    // checking the active activity
+    assertTrue(processInstance.isActive("a"));
 
     // checking the generated id
-    assertNull(execution.getName());
-    assertNull(execution.getKey());
+    assertNull(processInstance.getName());
+    assertNull(processInstance.getKey());
     // if there is no user defined name or key specified in the execution,
     // the default id generator will create a unique id like this: processDefinitionId/execution.dbid
-    assertTrue(execution.getId().startsWith("ICL."));
+    assertTrue(processInstance.getId().startsWith("ICL."));
     // the last part of the execution key should be the dbid.
-    Long.parseLong(execution.getId().substring(4));
+    Long.parseLong(processInstance.getId().substring(4));
   }
 
   public void testStartExecutionByIdWithVariables() {
@@ -208,8 +209,8 @@
     variables.put("b", "text");
 
     // provide the variables in the start execution method
-    Execution execution = executionService.startProcessInstanceById("ICL-1", variables);
-    String executionId = execution.getId();
+    ProcessInstance processInstance = executionService.startProcessInstanceById("ICL-1", variables);
+    String executionId = processInstance.getId();
 
     assertEquals(new Integer(1), executionService.getVariable(executionId, "a"));
     assertEquals("text", executionService.getVariable(executionId, "b"));

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/RepositoryServiceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/RepositoryServiceTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/RepositoryServiceTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -27,6 +27,7 @@
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.ProcessDefinition;
 import org.jbpm.api.ProcessDefinitionQuery;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.test.JbpmTestCase;
 
 
@@ -357,11 +358,9 @@
       "</process>"
     );
     
-    Execution execution = executionService.startProcessInstanceByKey("minimal");
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("minimal");
     
-    assertEquals("end", execution.getActivityName());
-    assertTrue(execution.isEnded());
-    assertFalse(execution.isActive());
+    assertTrue(processInstance.isEnded());
   }
 
   public void testMostMinimalProcess() {
@@ -374,6 +373,5 @@
     Execution execution = executionService.startProcessInstanceByKey("minimal");
     
     assertTrue(execution.isEnded());
-    assertFalse(execution.isActive());
   }
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/taskactivity/TaskCandidatesTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/taskactivity/TaskCandidatesTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/taskactivity/TaskCandidatesTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -25,8 +25,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.jbpm.api.Execution;
 import org.jbpm.api.JbpmException;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.api.task.Task;
 import org.jbpm.test.JbpmTestCase;
 
@@ -50,8 +50,8 @@
       "</process>"
     );
     
-    Execution execution = executionService.startProcessInstanceByKey("TaskCandidates");
-    String executionId = execution.getId();
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("TaskCandidates");
+    String pid = processInstance.getId();
 
     // both johndoe and joesmoe will see the task in their *group* task list 
     List<Task> taskList = taskService.findGroupTasks("johndoe");
@@ -101,8 +101,8 @@
     assertEquals(0, taskList.size());
 
     // verify that process moved to the next state
-    execution = executionService.findExecutionById(executionId);
-    assertEquals("wait", execution.getActivityName());
+    processInstance = executionService.findProcessInstanceById(pid);
+    assertTrue(processInstance.isActive("wait"));
   }
 
   public void testTaskCandidatesExpression() {
@@ -122,8 +122,8 @@
     Map<String, Object> variables = new HashMap<String, Object>(); 
     variables.put("userone", "johndoe");
     variables.put("usertwo", "joesmoe");
-    Execution execution = executionService.startProcessInstanceByKey("TaskCandidates", variables);
-    String executionId = execution.getId();
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("TaskCandidates", variables);
+    String executionId = processInstance.getId();
     
     // both johndoe and joesmoe will see the task in their *group* task list 
     List<Task> taskList = taskService.findGroupTasks("johndoe");
@@ -173,8 +173,8 @@
     assertEquals(0, taskList.size());
 
     // verify that process moved to the next state
-    execution = executionService.findExecutionById(executionId);
-    assertEquals("wait", execution.getActivityName());
+    processInstance = executionService.findProcessInstanceById(executionId);
+    assertTrue(processInstance.isActive("wait"));
   }
 
   public void testDoubleTake() {
@@ -191,8 +191,8 @@
       "</process>"
     );
     
-    Execution execution = executionService.startProcessInstanceByKey("DoubleTake");
-    String executionId = execution.getId();
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("DoubleTake");
+    String pid = processInstance.getId();
     
     // both johndoe and joesmoe will see the task in their *group* task list 
     long taskDbid = taskService.findGroupTasks("johndoe").get(0).getDbid();

Modified: jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/executions/ProcessExecutionTest.java
===================================================================
--- jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/executions/ProcessExecutionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/executions/ProcessExecutionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -24,7 +24,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
 import org.jbpm.internal.log.Log;
 import org.jbpm.test.load.LoadTestCase;
 
@@ -99,11 +99,11 @@
       }
     }
     public void executeProcess() {
-      Execution execution = executionService.startProcessInstanceByKey("Process");
-      assertEquals("c", execution.getActivityName());
-      String executionId = execution.getId();
-      execution = executionService.signalExecutionById(executionId);
-      assertTrue(execution.isEnded());
+      ProcessInstance processInstance = executionService.startProcessInstanceByKey("Process");
+      assertTrue(processInstance.isActive("c"));
+      String executionId = processInstance.getId();
+      processInstance = executionService.signalExecutionById(executionId);
+      assertTrue(processInstance.isEnded());
       processFinished();
     }
   }

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/AutomaticDecisionTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/AutomaticDecisionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/AutomaticDecisionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -85,30 +85,30 @@
   public void testGoodRating() {
     ClientProcessDefinition processDefinition = createCreditProcess(); 
     
-    ClientProcessInstance execution = processDefinition.createProcessInstance();
-    execution.setVariable("creditRate", 7);
-    execution.start();
+    ClientProcessInstance processInstance = processDefinition.createProcessInstance();
+    processInstance.setVariable("creditRate", 7);
+    processInstance.start();
 
-    assertEquals("priority delivery", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("priority delivery"));
   }
 
   public void testAverageRating() {
     ClientProcessDefinition processDefinition = createCreditProcess(); 
     
-    ClientProcessInstance execution = processDefinition.createProcessInstance();
-    execution.setVariable("creditRate", 2);
-    execution.start();
+    ClientProcessInstance processInstance = processDefinition.createProcessInstance();
+    processInstance.setVariable("creditRate", 2);
+    processInstance.start();
 
-    assertEquals("bulk delivery", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("bulk delivery"));
   }
   
   public void testBadRating() {
     ClientProcessDefinition processDefinition = createCreditProcess(); 
     
-    ClientProcessInstance execution = processDefinition.createProcessInstance();
-    execution.setVariable("creditRate", -7);
-    execution.start();
+    ClientProcessInstance processInstance = processDefinition.createProcessInstance();
+    processInstance.setVariable("creditRate", -7);
+    processInstance.start();
 
-    assertEquals("payment upfront", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("payment upfront"));
   }
 }

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/BasicExecutionFlowTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/BasicExecutionFlowTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/BasicExecutionFlowTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -95,31 +95,31 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
     
     List<String> expectedEvents = new ArrayList<String>();
     
     expectedEvents.add("execute[submit loan request]");
     expectedEvents.add("execute[evaluate]");
 
-    assertEquals("evaluate", execution.getActivityName());
+    assertTrue(processInstance.isActive("evaluate"));
     assertEquals(expectedEvents, recordedEvents);
 
-    execution.signal("approve");
+    processInstance.signal("approve");
 
     expectedEvents.add("signal[evaluate]");
     expectedEvents.add("execute[wire money]");
     expectedEvents.add("execute[archive]");
 
-    assertEquals("archive", execution.getActivityName());
+    assertTrue(processInstance.isActive("archive"));
     assertEquals(expectedEvents, recordedEvents);
 
-    execution.signal();
+    processInstance.signal();
 
     expectedEvents.add("signal[archive]");
     expectedEvents.add("execute[end]");
 
-    assertEquals("end", execution.getActivityName());
+    assertTrue(processInstance.isActive("end"));
     assertEquals(expectedEvents, recordedEvents);
   }
   
@@ -163,7 +163,7 @@
     expectedEvents.add("execute[submit loan request]");
     expectedEvents.add("execute[evaluate]");
 
-    assertEquals("evaluate", processInstance.getActivityName());
+    assertTrue(processInstance.isActive("evaluate"));
     assertEquals(expectedEvents, recordedEvents);
   }
 }

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -21,23 +21,20 @@
  */
 package org.jbpm.test.activities;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 
+import org.apache.tools.ant.taskdefs.Exec;
 import org.jbpm.api.activity.ActivityBehaviour;
 import org.jbpm.api.activity.ActivityExecution;
 import org.jbpm.api.activity.ExternalActivityBehaviour;
 import org.jbpm.api.client.ClientExecution;
 import org.jbpm.api.client.ClientProcessDefinition;
+import org.jbpm.api.client.ClientProcessInstance;
 import org.jbpm.api.listener.EventListener;
 import org.jbpm.api.listener.EventListenerExecution;
 import org.jbpm.api.model.Activity;
 import org.jbpm.api.model.Event;
-import org.jbpm.api.model.ObservableElement;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
-import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
 import org.jbpm.test.BaseJbpmTestCase;
 
 /** shows how actions are listeners to following processDefinition events:
@@ -59,7 +56,7 @@
     public void notify(EventListenerExecution execution) {
       execution.setVariable("msg", "Kilroy was here");
 
-      assertEquals("initial", execution.getActivity().getName());
+      assertTrue(execution.isActive("initial"));
       assertEquals("initial", execution.getEventSource().getName());
       assertEquals("leave activity action test", execution.getProcessDefinition().getName());
       assertEquals("end", execution.getTransition().getDestination().getName());
@@ -82,11 +79,11 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
-    execution.signal();
-    assertEquals("Kilroy was here", execution.getVariable("msg"));
+    assertTrue(processInstance.isActive("initial"));
+    processInstance.signal();
+    assertEquals("Kilroy was here", processInstance.getVariable("msg"));
   }
 
   // transition action ////////////////////////////////////////////////////////
@@ -96,7 +93,6 @@
     public void notify(EventListenerExecution execution) throws Exception {
       execution.setVariable("msg", "Kilroy was here");
       
-      assertNull(execution.getActivity());
       assertEquals("t", execution.getEventSource().getName());
       assertEquals("transition action test", execution.getProcessDefinition().getName());
       assertEquals("end", execution.getTransition().getDestination().getName());
@@ -119,11 +115,11 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
-    execution.signal("t");
-    assertEquals("Kilroy was here", execution.getVariable("msg"));
+    assertTrue(processInstance.isActive("initial"));
+    processInstance.signal("t");
+    assertEquals("Kilroy was here", processInstance.getVariable("msg"));
   }
 
   // activity enter action ////////////////////////////////////////////////////////
@@ -132,8 +128,8 @@
     private static final long serialVersionUID = 1L;
     public void notify(EventListenerExecution execution) throws Exception {
       execution.setVariable("msg", "Kilroy was here");
-      
-      assertEquals("end", execution.getActivity().getName());
+
+      assertTrue(execution.isActive("end"));
       assertEquals("end", execution.getEventSource().getName());
       assertEquals("enter activity action test", execution.getProcessDefinition().getName());
       assertEquals("end", execution.getTransition().getDestination().getName());
@@ -156,11 +152,11 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientExecution processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
-    execution.signal();
-    assertEquals("Kilroy was here", execution.getVariable("msg"));
+    assertTrue(processInstance.isActive("initial"));
+    processInstance.signal();
+    assertEquals("Kilroy was here", processInstance.getVariable("msg"));
   }
 
   // custom event ////////////////////////////////////////////////////////////
@@ -187,7 +183,7 @@
     public void notify(EventListenerExecution execution) throws Exception {
       execution.setVariable("msg", "Kilroy was here");
       
-      assertEquals("initial", execution.getActivity().getName());
+      assertTrue(execution.isActive("initial"));
       assertEquals("initial", execution.getEventSource().getName());
       assertEquals("custom activity action test", execution.getProcessDefinition().getName());
       assertNull(execution.getTransition());
@@ -212,17 +208,17 @@
 
     ClientExecution execution = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
+    assertTrue(execution.isActive("initial"));
     assertNull(execution.getVariable("msg"));
 
     execution.signal("end of riveter shift");
 
-    assertEquals("initial", execution.getActivity().getName());
+    assertTrue(execution.isActive("initial"));
     assertEquals("Kilroy was here", execution.getVariable("msg"));
     
     execution.signal();
 
-    assertEquals("end", execution.getActivity().getName());
+    assertTrue(execution.isActive("end"));
   }
 
   public static class EndState implements ActivityBehaviour {

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -27,6 +27,7 @@
 import org.jbpm.api.activity.ExternalActivityBehaviour;
 import org.jbpm.api.client.ClientExecution;
 import org.jbpm.api.client.ClientProcessDefinition;
+import org.jbpm.api.client.ClientProcessInstance;
 import org.jbpm.api.listener.EventListener;
 import org.jbpm.api.listener.EventListenerExecution;
 import org.jbpm.api.model.Event;
@@ -81,13 +82,13 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("initial"));
     assertEquals(0, catcher.timesInvoked);
-    execution.signal();
+    processInstance.signal();
     assertEquals(1, catcher.timesInvoked);
-    assertEquals("end", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("end"));
   }
 
   public void testExceptionHandlerOnEvent() {
@@ -108,13 +109,13 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("initial"));
     assertEquals(0, catcher.timesInvoked);
-    execution.signal();
+    processInstance.signal();
     assertEquals(1, catcher.timesInvoked);
-    assertEquals("end", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("end"));
   }
 
   public void testExceptionHandlerOnAction() {
@@ -135,13 +136,13 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("initial"));
     assertEquals(0, catcher.timesInvoked);
-    execution.signal();
+    processInstance.signal();
     assertEquals(1, catcher.timesInvoked);
-    assertEquals("end", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("end"));
   }
 
   public void testExceptionHandlerOnOtherActivity() {
@@ -162,12 +163,12 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("initial"));
     assertEquals(0, catcher.timesInvoked);
     try {
-      execution.signal();
+      processInstance.signal();
       fail("expected exception");
     } catch (RuntimeException e) {
       // OK
@@ -193,11 +194,11 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("initial"));
     try {
-      execution.signal();
+      processInstance.signal();
       fail("expected exception");
     } catch (RuntimeException e) {
       // OK
@@ -228,11 +229,11 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("initial", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("initial"));
     try {
-      execution.signal();
+      processInstance.signal();
       fail("expected exception");
     } catch (RuntimeException e) {
       // OK
@@ -265,10 +266,11 @@
       .startActivity("end", new WaitState())
       .endActivity()
     .endProcess();
-    ClientExecution execution = processDefinition.startProcessInstance();
+    
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
     try {
-      execution.signal();
+      processInstance.signal();
       fail("expected exception");
     } catch (RuntimeException e) {
       assertTextPresent("greetz from the retrhowing catcher", e.getMessage());

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExternalDecisionTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExternalDecisionTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExternalDecisionTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -29,6 +29,7 @@
 import org.jbpm.api.activity.ExternalActivityBehaviour;
 import org.jbpm.api.client.ClientExecution;
 import org.jbpm.api.client.ClientProcessDefinition;
+import org.jbpm.api.client.ClientProcessInstance;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
 
 
@@ -77,28 +78,28 @@
 
   public void testGoodRating() {
     ClientProcessDefinition processDefinition = createCreditProcess(); 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    execution.signal("good");
+    processInstance.signal("good");
 
-    assertEquals("priority delivery", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("priority delivery"));
   }
 
   public void testAverageRating() {
     ClientProcessDefinition processDefinition = createCreditProcess(); 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    execution.signal("average");
+    processInstance.signal("average");
     
-    assertEquals("bulk delivery", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("bulk delivery"));
   }
   
   public void testBadRating() {
     ClientProcessDefinition processDefinition = createCreditProcess(); 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    execution.signal("bad");
+    processInstance.signal("bad");
 
-    assertEquals("payment upfront", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("payment upfront"));
   }
 }

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -90,7 +90,6 @@
     
     List<String> expectedEvents = new ArrayList<String>();
     
-    assertEquals("a", processInstance.getActivityName());
     assertFalse(processInstance.isEnded());
     assertEquals(expectedEvents, recordedEvents);
     

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/LoopingTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/LoopingTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/LoopingTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -7,8 +7,8 @@
 import org.jbpm.api.activity.ActivityBehaviour;
 import org.jbpm.api.activity.ActivityExecution;
 import org.jbpm.api.activity.ExternalActivityBehaviour;
-import org.jbpm.api.client.ClientExecution;
 import org.jbpm.api.client.ClientProcessDefinition;
+import org.jbpm.api.client.ClientProcessInstance;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
 import org.jbpm.test.BaseJbpmTestCase;
 
@@ -98,12 +98,12 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
     
     List<Object> expectedIndexes = new ArrayList<Object>();
     for (int i=0; i<loops; i++) expectedIndexes.add(i); 
 
     assertEquals(expectedIndexes, recordedIndexes);
-    assertEquals("end", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("end"));
   }
 }

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/SubProcessTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/SubProcessTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/SubProcessTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -28,6 +28,7 @@
 import org.jbpm.api.activity.ExternalActivityBehaviour;
 import org.jbpm.api.client.ClientExecution;
 import org.jbpm.api.client.ClientProcessDefinition;
+import org.jbpm.api.client.ClientProcessInstance;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.test.BaseJbpmTestCase;
@@ -104,18 +105,17 @@
       .endActivity()
     .endProcess();
     
-    ClientExecution superProcesInstance = superProcess.startProcessInstance();
-    assertEquals("super2", superProcesInstance.getActivity().getName());
+    ClientProcessInstance superProcessInstance = superProcess.startProcessInstance();
+    assertTrue(superProcessInstance.isActive("super2"));
 
-    ClientExecution subProcessInstance = (ClientExecution) superProcesInstance.getSubProcessInstance(); 
+    ClientProcessInstance subProcessInstance = (ClientProcessInstance) superProcessInstance.getSubProcessInstance(); 
     assertNotNull(subProcessInstance);
-    assertEquals("sub2", subProcessInstance.getActivity().getName());
+    assertTrue(subProcessInstance.isActive("sub2"));
     
     subProcessInstance.signal();
     
-    assertEquals("sub3", subProcessInstance.getActivity().getName());
     assertTrue(subProcessInstance.isEnded());
     
-    assertEquals("super3", superProcesInstance.getActivity().getName());
+    assertTrue(superProcessInstance.isActive("super3"));
   }
 }

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/TransitionEventsTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/TransitionEventsTest.java	2009-06-03 08:43:36 UTC (rev 4978)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/TransitionEventsTest.java	2009-06-03 10:38:53 UTC (rev 4979)
@@ -26,6 +26,7 @@
 
 import org.jbpm.api.client.ClientExecution;
 import org.jbpm.api.client.ClientProcessDefinition;
+import org.jbpm.api.client.ClientProcessInstance;
 import org.jbpm.api.listener.EventListener;
 import org.jbpm.api.listener.EventListenerExecution;
 import org.jbpm.api.model.Event;
@@ -150,7 +151,7 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
     assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
@@ -159,9 +160,9 @@
     assertEquals(0, compositeListener.events.size());
     assertEquals(0, insideListener.events.size());
     
-    assertEquals("inside", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("inside"));
 
-    execution.signal();
+    processInstance.signal();
     
     assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
@@ -316,7 +317,7 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
     assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
@@ -324,9 +325,9 @@
     assertEquals(0, compositeListener.events.size());
     assertEquals(0, insideListener.events.size());
     
-    assertEquals("inside", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("inside"));
 
-    execution.signal();
+    processInstance.signal();
     
     assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
@@ -381,16 +382,16 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
     assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
 
     assertEquals(0, compositeListener.events.size());
     
-    assertEquals("inside", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("inside"));
 
-    execution.signal();
+    processInstance.signal();
     
     assertEquals("[event(end) on activity(inside), " +
                   "event(take) on (inside)-->(inside), " +
@@ -468,7 +469,7 @@
       .endActivity()
     .endProcess();
 
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
     assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
@@ -477,9 +478,9 @@
     assertEquals(0, compositeListener.events.size());
     assertEquals(0, insideListener.events.size());
     
-    assertEquals("inside", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("inside"));
 
-    execution.signal();
+    processInstance.signal();
     
     assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
@@ -585,11 +586,11 @@
     .endProcess();
 
     
-    ClientExecution execution = processDefinition.startProcessInstance();
+    ClientProcessInstance processInstance = processDefinition.startProcessInstance();
 
-    assertEquals("source inside", execution.getActivity().getName());
+    assertTrue(processInstance.isActive("source inside"));
 
-    execution.signal();
+    processInstance.signal();
     
     assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());




More information about the jbpm-commits mailing list