[jbpm-commits] JBoss JBPM SVN: r6106 - in jbpm4/trunk/modules: bpmn/src/main/java/org/jbpm/bpmn/flownodes and 10 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jan 20 10:55:04 EST 2010


Author: tom.baeyens at jboss.com
Date: 2010-01-20 10:55:02 -0500 (Wed, 20 Jan 2010)
New Revision: 6106

Added:
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Transition.java
Removed:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Transition.java
Modified:
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractMergingGatewayActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTask.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/EndActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ExclusiveGatewayActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ReceiveActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/model/BpmnProcessDefinition.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionConditionActivity.java
   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/DecisionHandlerActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EndActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ForkActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JoinActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java
   jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TransitionParsingTest.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetOutcomes.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/DefaultMigrationHandler.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElement.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElementImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Condition.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/model/OpenProcessDefinition.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessModificationsImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/TransitionImpl.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/builder/BuilderTest.java
   jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/custombusinesscalendarimpl/CustomBusinessCalendar.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/FunctionalActivityTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableDeclarationTest.java
Log:
JBPM-2609 Extended API to be able to list all outgoing transitions of active activities

Copied: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java (from rev 6105, jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java)
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java	                        (rev 0)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -0,0 +1,147 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.model;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * a activity in a {@link OpenProcessDefinition} graph.
+ * 
+ * <p>The activity supports both graph based process models as well as 
+ * block structured (tree based) process models.  First we describe 
+ * tranisions that can be used to formResourceName graph based process structures 
+ * and then we'll describe activity composition to formResourceName block structured
+ * process models.  Both models can be combined as well.
+ * </p>
+ * 
+ * <p>Activities have {@link #getIncomingTransitions() incoming}
+ * and {@link #getOutgoingTransitions() outgoing transitions}.
+ * These are lists of transitions.
+ * </p>
+ * 
+ * <p>Optionally, transitions can have names.  In that case the 
+ * transition {@link #getOutgoingTransition(String) names are associated 
+ * to activity's outgoing transitions}.  The {@link #getOutgoingTransitionsMap() map 
+ * of outgoing transitions} provides easy access to the named transitions.
+ * </p> 
+ *   
+ * <p>One of the outgoing transitions can optionally be marked as 
+ * {@link #getDefaultOutgoingTransition() the default transition}.
+ * </p>
+ * 
+ * <p>Block structured process languages have composite activities that can be 
+ * modeled with the {@link #getParent() parent}-{@link #getActivities() child} 
+ * relation.
+ * </p> 
+ * 
+ * @author Tom Baeyens
+ */
+public interface Activity {
+
+  /** the short display name given to this element. */
+  String getName();
+
+  /** the list of outgoing transitions.
+   * Caution: the actual member is returned.  No copy is made. */
+  List<Transition> getOutgoingTransitions();
+
+  /** the default outgoing transition. */
+  Transition getDefaultOutgoingTransition();
+
+  /** the first leaving transition with the given name or null of no
+   * such leaving transition exists. If the multiple transitions have 
+   * the given transition name, the first (in order of {@link #getOutgoingTransitions()})
+   * will be returned.
+   *  
+   * @param transitionName is the name of the transition to take.  A null value will 
+   * match the first unnamed transition. */
+  Transition getOutgoingTransition(String transitionName);
+
+  /** indicates if a leaving transition with the given transitionName exists. 
+   * A null value matches an unnamed transition. */
+  boolean hasOutgoingTransition(String transitionName);
+
+  /** indicates if this activity has leaving transitions */
+  boolean hasOutgoingTransitions();
+
+  /** the leaving transitions, keyed by transition name.  If a transition with 
+   * the same name occurs mutltiple times, the first one is returned.
+   * Leaving transitions with a null value for their name are not included 
+   * in the map.
+   * Beware: the actual member is returned.  No copy is made.  In fact, the 
+   * returned map is maintained as a cache.  So updates to the map will 
+   * influence subsequent retrievals of outgoing transitions by name. */
+  Map<String, Transition> getOutgoingTransitionsMap();
+  
+  /** searches for the given transitionName in this activity and then up the 
+   * parent chain. Returns null if no such transition is found. */
+  Transition findOutgoingTransition(String transitionName);
+
+  /** the list of arriving transitions.
+   * Beware: the actual member is returned.  No copy is made. */
+  List<Transition> getIncomingTransitions();
+
+  /** indicates if this activity has arriving transitions */
+  boolean hasIncomingTransitions();
+  
+  /** retrieve the parent activity in the composite activity structure.  This is 
+   * different from {@link ObservableElement#getParent()} in that it is restricted 
+   * to the parent activities.  It doesn't take into account the process definition. */ 
+  Activity getParentActivity();
+  
+  /** indicates if this processDefinition has activities. */
+  boolean hasActivities();
+
+  /** the list of direct composite activities.  Recursively contained 
+   * activities are not included in the list. 
+   * Beware: the actual member is returned.  No copy is made. */
+  List<? extends Activity> getActivities();
+
+  /** indicates if an activity with the given name exists directly in 
+   * this element.  Only the direct contained activities are 
+   * searched.  No recursive search is made. */
+  boolean hasActivity(String activityName);
+
+  /** the first composite activity with the given name or null of no
+   * such activity exists. Only the direct contained activities are 
+   * searched.  No recursive search is made. */
+  Activity getActivity(String activityName);
+
+  /** searches for the given activity in this element recursively, 
+   * including this activity and all child activities.  The search 
+   * is done depth-first. A null value for activityName matches a activity 
+   * without a name. */
+  Activity findActivity(String activityName);
+
+  /** the composite activities, keyed by activity name.  If an activity 
+   * with the same name occurs mutltiple times, the first in the list
+   * is included in the map. Activities with a null value for their name 
+   * are not included in the map. 
+   * Beware: the actual member is returned.  No copy is made. In fact, the 
+   * returned map is maintained as a cache.  So updates to the map will 
+   * influence subsequent retrievals of activities by name.*/
+  Map<String, Activity> getActivitiesMap();
+
+  /** the type of this activity which corresponds to the xml tag */
+  String getType();
+}
\ No newline at end of file


Property changes on: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:mergeinfo
   + 
Name: svn:eol-style
   + LF

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	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -46,6 +46,9 @@
  */
 public interface OpenExecution extends Execution {
   
+  /** the current activity */
+  Activity getActivity();
+  
   /** update the state */
   void setState(String state);
 

Copied: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Transition.java (from rev 6105, jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Transition.java)
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Transition.java	                        (rev 0)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Transition.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.model;
+
+/**
+ * a transition in a {@link OpenProcessDefinition} graph.
+ * 
+ * <h3 id="guardconditions">Guard conditions</h3>
+ * <p>TODO</p>
+ * 
+ * <h3 id="transitionsaswaitstates">Transitions as wait states</h3>
+ * <p>A wait condition indicates wether a transition is to be taken synchronously
+ * or wether the transition will behave as a wait state.
+ * </p>
+ * 
+ * <p>Transitions that are wait states can occur when an analyst has 
+ * an actual state (e.g. 'making loss') and a desired state (e.g. 'making profit')
+ * and models a transition between those states.  In that case the transition 
+ * might take a long time and hence it results into a wait state for the system.
+ * </p>
+ * 
+ * <p>If the wait condition is null or if it returns false, then the transition 
+ * will be taking synchronously.  Otherwise the transition will behave as 
+ * a wait state and wait for a signal on the execution.
+ * </p>
+ * 
+ * <p>Transitions as wait states has every thing to do with matching the 
+ * process graph to transactions on the server.  If the transition is taken 
+ * in one (the current) transaction, then the async condition should be empty 
+ * or evaluate to false.  If the arrival of the execution in the destination 
+ * activity should occur in a separate execution 
+ * 
+ * @author Tom Baeyens
+ */
+public interface Transition {
+  /** the short display name given to this element. */
+  String getName();
+  
+  /** the activity from which this transition leaves. */
+  Activity getSource();
+
+  /** the activity in which this transition arrives. */ 
+  Activity getDestination();
+}
\ No newline at end of file


Property changes on: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Transition.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractMergingGatewayActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractMergingGatewayActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractMergingGatewayActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -29,11 +29,11 @@
 import org.jbpm.api.Execution;
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.internal.log.Log;
 import org.jbpm.pvm.internal.env.EnvironmentImpl;
-import org.jbpm.pvm.internal.model.Activity;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 /**
  * Superclass for gateway activities that wait on multiple incoming executions before merging

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTask.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTask.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTask.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -26,10 +26,10 @@
 
 import org.jbpm.api.Execution;
 import org.jbpm.api.activity.ActivityExecution;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.model.Condition;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 /**
  * The abstract task is a base class for all BPMN 2.0 tasks

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -29,11 +29,13 @@
 import org.jbpm.api.Execution;
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.Condition;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
+import org.jbpm.pvm.internal.model.TransitionImpl;
 
 /**
  * Basic activity for BPMN activities (tasks, gateways)
@@ -115,12 +117,12 @@
    * If the boolean 'checkConditions' is true, conditions on the sequence flow will be evaluated.
    */
   protected List<Transition> findOutgoingSequenceFlow(ExecutionImpl execution, boolean checkConditions) {
-    Activity activity = execution.getActivity();
+    ActivityImpl activity = execution.getActivity();
     // evaluate the conditions and find the transitions that should be forked
     List<Transition> forkingTransitions = new ArrayList<Transition>();
-    List<Transition> outgoingTransitions = activity.getOutgoingTransitions();
+    List<TransitionImpl> outgoingTransitions = (List) activity.getOutgoingTransitions();
     
-    for (Transition transition : outgoingTransitions) {
+    for (TransitionImpl transition : outgoingTransitions) {
       Condition condition = transition.getCondition();
       if ( ( (condition == null) || (!checkConditions) || (condition.evaluate(execution)) ) 
            && (activity.getDefaultOutgoingTransition() != transition) ) {

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/EndActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/EndActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/EndActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,11 +24,11 @@
 import java.util.List;
 
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.api.model.Activity;
 import org.jbpm.api.model.OpenExecution;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 
 /**

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ExclusiveGatewayActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ExclusiveGatewayActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ExclusiveGatewayActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,10 +24,10 @@
 import java.util.List;
 
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.api.model.Transition;
 import org.jbpm.bpmn.parser.BindingsParser;
 import org.jbpm.internal.log.Log;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 /**
  * @author Tom Baeyens

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -23,8 +23,8 @@
 
 import java.util.List;
 
+import org.jbpm.api.model.Activity;
 import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.model.Activity;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 
 /**

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ReceiveActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ReceiveActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ReceiveActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -27,10 +27,10 @@
 
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.api.model.Transition;
 import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 /**
  * Java version of the Receive activity.
@@ -57,7 +57,7 @@
   }
   
   public void signal(ExecutionImpl execution, String signalName, Map<String, ?> parameters) {
-    Activity activity = execution.getActivity();
+    ActivityImpl activity = execution.getActivity();
     
     if (parameters!=null) {
       execution.setVariables(parameters);

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -30,7 +30,7 @@
 import org.jbpm.pvm.internal.env.EnvironmentImpl;
 import org.jbpm.pvm.internal.history.HistoryEvent;
 import org.jbpm.pvm.internal.history.events.TaskActivityStart;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.pvm.internal.session.DbSession;
 import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
@@ -92,7 +92,7 @@
   }
 
   public void signal(ExecutionImpl execution, String signalName, Map<String, ? > parameters) throws Exception {
-    Activity activity = execution.getActivity();
+    ActivityImpl activity = execution.getActivity();
 
     if (parameters != null) {
       execution.setVariables(parameters);

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/model/BpmnProcessDefinition.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/model/BpmnProcessDefinition.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/model/BpmnProcessDefinition.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -28,10 +28,10 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.jbpm.api.model.Transition;
 import org.jbpm.bpmn.common.Resource;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 import org.jbpm.pvm.internal.model.VariableDefinitionImpl;
 import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
 import org.w3c.dom.Element;

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionConditionActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionConditionActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionConditionActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -25,10 +25,11 @@
 
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityExecution;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.model.Condition;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
+import org.jbpm.pvm.internal.model.TransitionImpl;
 
 
 /**
@@ -55,8 +56,8 @@
 
   public static Transition findTransitionUsingConditions(ExecutionImpl execution) {
     Activity activity = execution.getActivity();
-    List<Transition> outgoingTransitions = activity.getOutgoingTransitions();
-    for (Transition transition : outgoingTransitions) {
+    List<TransitionImpl> outgoingTransitions = (List) activity.getOutgoingTransitions();
+    for (TransitionImpl transition : outgoingTransitions) {
       Condition condition = transition.getCondition();
       if  ( (condition==null)
             || (condition.evaluate(execution))

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	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionExpressionActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -23,9 +23,9 @@
 
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityExecution;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 import org.jbpm.pvm.internal.script.ScriptManager;
 
 /**

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,9 +24,9 @@
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityExecution;
 import org.jbpm.api.jpdl.DecisionHandler;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 import org.jbpm.pvm.internal.wire.usercode.UserCodeReference;
 
 /**

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EndActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EndActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EndActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,11 +24,11 @@
 import java.util.List;
 
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.api.model.Activity;
 import org.jbpm.api.model.OpenExecution;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 
 /**

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ForkActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ForkActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/ForkActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -28,10 +28,11 @@
 
 import org.jbpm.api.Execution;
 import org.jbpm.api.activity.ActivityExecution;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.model.Condition;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
+import org.jbpm.pvm.internal.model.TransitionImpl;
 
 
 /**
@@ -50,8 +51,8 @@
 
     // evaluate the conditions and find the transitions that should be forked
     List<Transition> forkingTransitions = new ArrayList<Transition>();
-    List<Transition> outgoingTransitions = activity.getOutgoingTransitions();
-    for (Transition transition: outgoingTransitions) {
+    List<TransitionImpl> outgoingTransitions = (List) activity.getOutgoingTransitions();
+    for (TransitionImpl transition: outgoingTransitions) {
       Condition condition = transition.getCondition();
       if  ( (condition==null)
             || (condition.evaluate(execution))

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -28,10 +28,10 @@
 import org.jbpm.api.Execution;
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityExecution;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 
 /**

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JoinActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JoinActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JoinActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -29,10 +29,10 @@
 import org.jbpm.api.Execution;
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.env.EnvironmentImpl;
-import org.jbpm.pvm.internal.model.Activity;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 
 /**

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,9 +24,9 @@
 import java.util.Map;
 
 import org.jbpm.api.activity.ActivityExecution;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.api.model.Transition;
+import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 
 /**
  * @author Tom Baeyens
@@ -50,7 +50,7 @@
   }
 
   public void signal(ExecutionImpl execution, String signalName, Map<String, ?> parameters) throws Exception {
-    Activity activity = execution.getActivity();
+    ActivityImpl activity = execution.getActivity();
     
     if (parameters!=null) {
       execution.setVariables(parameters);

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -25,11 +25,11 @@
 import java.util.Map;
 
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.api.model.Activity;
 import org.jbpm.pvm.internal.client.ClientProcessDefinition;
 import org.jbpm.pvm.internal.env.Context;
 import org.jbpm.pvm.internal.env.EnvironmentImpl;
 import org.jbpm.pvm.internal.env.ExecutionContext;
-import org.jbpm.pvm.internal.model.Activity;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.pvm.internal.script.ScriptManager;
 import org.jbpm.pvm.internal.session.DbSession;

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -27,13 +27,13 @@
 
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.api.model.Transition;
 import org.jbpm.internal.log.Log;
 import org.jbpm.pvm.internal.env.EnvironmentImpl;
 import org.jbpm.pvm.internal.history.HistoryEvent;
 import org.jbpm.pvm.internal.history.events.TaskActivityStart;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 import org.jbpm.pvm.internal.session.DbSession;
 import org.jbpm.pvm.internal.task.ParticipationImpl;
 import org.jbpm.pvm.internal.task.SwimlaneDefinitionImpl;
@@ -104,7 +104,7 @@
   }
 
   public void signal(ExecutionImpl execution, String signalName, Map<String, ?> parameters) throws Exception {
-    Activity activity = execution.getActivity();
+    ActivityImpl activity = execution.getActivity();
     
     if (parameters!=null) {
       execution.setVariables(parameters);

Modified: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TransitionParsingTest.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TransitionParsingTest.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/TransitionParsingTest.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -23,9 +23,9 @@
 
 import java.util.List;
 
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.client.ClientProcessDefinition;
-import org.jbpm.pvm.internal.model.Activity;
-import org.jbpm.pvm.internal.model.Transition;
 import org.jbpm.pvm.internal.xml.Problem;
 
 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetOutcomes.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetOutcomes.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetOutcomes.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -28,10 +28,10 @@
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.cmd.Command;
 import org.jbpm.api.cmd.Environment;
+import org.jbpm.api.model.Transition;
 import org.jbpm.api.task.Task;
 import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.pvm.internal.model.Transition;
 import org.jbpm.pvm.internal.session.DbSession;
 import org.jbpm.pvm.internal.task.TaskImpl;
 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/DefaultMigrationHandler.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/DefaultMigrationHandler.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/DefaultMigrationHandler.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -4,9 +4,9 @@
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.ProcessDefinition;
 import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.model.Activity;
 import org.jbpm.pvm.internal.history.HistoryEvent;
 import org.jbpm.pvm.internal.history.events.ProcessInstanceMigration;
-import org.jbpm.pvm.internal.model.Activity;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
 

Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -1,111 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.model;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * a activity in a {@link OpenProcessDefinition} graph.
- * 
- * <p>The activity supports both graph based process models as well as 
- * block structured (tree based) process models.  First we describe 
- * tranisions that can be used to formResourceName graph based process structures 
- * and then we'll describe activity composition to formResourceName block structured
- * process models.  Both models can be combined as well.
- * </p>
- * 
- * <p>Activities have {@link #getIncomingTransitions() incoming}
- * and {@link #getOutgoingTransitions() outgoing transitions}.
- * These are lists of transitions.
- * </p>
- * 
- * <p>Optionally, transitions can have names.  In that case the 
- * transition {@link #getOutgoingTransition(String) names are associated 
- * to activity's outgoing transitions}.  The {@link #getOutgoingTransitionsMap() map 
- * of outgoing transitions} provides easy access to the named transitions.
- * </p> 
- *   
- * <p>One of the outgoing transitions can optionally be marked as 
- * {@link #getDefaultOutgoingTransition() the default transition}.
- * </p>
- * 
- * <p>Block structured process languages have composite activities that can be 
- * modeled with the {@link #getParent() parent}-{@link #getActivities() child} 
- * relation.
- * </p> 
- * 
- * @author Tom Baeyens
- */
-public interface Activity extends CompositeElement {
-
-  /** the list of outgoing transitions.
-   * Caution: the actual member is returned.  No copy is made. */
-  List<Transition> getOutgoingTransitions();
-
-  /** the default outgoing transition. */
-  Transition getDefaultOutgoingTransition();
-
-  /** the first leaving transition with the given name or null of no
-   * such leaving transition exists. If the multiple transitions have 
-   * the given transition name, the first (in order of {@link #getOutgoingTransitions()})
-   * will be returned.
-   *  
-   * @param transitionName is the name of the transition to take.  A null value will 
-   * match the first unnamed transition. */
-  Transition getOutgoingTransition(String transitionName);
-
-  /** indicates if a leaving transition with the given transitionName exists. 
-   * A null value matches an unnamed transition. */
-  boolean hasOutgoingTransition(String transitionName);
-
-  /** indicates if this activity has leaving transitions */
-  boolean hasOutgoingTransitions();
-
-  /** the leaving transitions, keyed by transition name.  If a transition with 
-   * the same name occurs mutltiple times, the first one is returned.
-   * Leaving transitions with a null value for their name are not included 
-   * in the map.
-   * Beware: the actual member is returned.  No copy is made.  In fact, the 
-   * returned map is maintained as a cache.  So updates to the map will 
-   * influence subsequent retrievals of outgoing transitions by name. */
-  Map<String, Transition> getOutgoingTransitionsMap();
-  
-  /** searches for the given transitionName in this activity and then up the 
-   * parent chain. Returns null if no such transition is found. */
-  Transition findOutgoingTransition(String transitionName);
-
-  /** the list of arriving transitions.
-   * Beware: the actual member is returned.  No copy is made. */
-  List<Transition> getIncomingTransitions();
-
-  /** indicates if this activity has arriving transitions */
-  boolean hasIncomingTransitions();
-  
-  /** retrieve the parent activity in the composite activity structure.  This is 
-   * different from {@link ObservableElement#getParent()} in that it is restricted 
-   * to the parent activities.  It doesn't take into account the process definition. */ 
-  Activity getParentActivity();
-
-  /** the type of this activity which corresponds to the xml tag */
-  String getType();
-}
\ No newline at end of file

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -27,13 +27,15 @@
 import java.util.Map;
 
 import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.model.Activity;
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.util.ReflectUtil;
 import org.jbpm.pvm.internal.wire.Descriptor;
 
 /**
  * @author Tom Baeyens
  */
-public class ActivityImpl extends CompositeElementImpl implements Activity {
+public class ActivityImpl extends CompositeElementImpl implements Activity, ObservableElement {
 
   private static final long serialVersionUID = 1L;
   

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElement.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElement.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElement.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,8 +24,10 @@
 import java.util.List;
 import java.util.Map;
 
+import org.jbpm.api.model.Activity;
 
 
+
 /** activity container base class for {@link OpenProcessDefinition} and {@link Activity}.
  * 
  * @author Tom Baeyens

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElementImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElementImpl.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElementImpl.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -25,7 +25,9 @@
 import java.util.List;
 import java.util.Map;
 
+import org.jbpm.api.model.Activity;
 
+
 /**
  * @author Tom Baeyens
  */

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Condition.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Condition.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Condition.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,6 +24,7 @@
 import java.io.Serializable;
 
 import org.jbpm.api.model.OpenExecution;
+import org.jbpm.api.model.Transition;
 
 /** user code that reflects a runtime calculation of a boolean value.
  * Used for {@link Transition#getCondition() transition guard conditions} and 

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	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -42,8 +42,10 @@
 import org.jbpm.api.job.Job;
 import org.jbpm.api.job.Timer;
 import org.jbpm.api.listener.EventListenerExecution;
+import org.jbpm.api.model.Activity;
 import org.jbpm.api.model.Event;
 import org.jbpm.api.model.OpenExecution;
+import org.jbpm.api.model.Transition;
 import org.jbpm.api.task.Assignable;
 import org.jbpm.api.task.AssignmentHandler;
 import org.jbpm.internal.log.Log;

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/OpenProcessDefinition.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/OpenProcessDefinition.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/OpenProcessDefinition.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -22,6 +22,7 @@
 package org.jbpm.pvm.internal.model;
 
 import org.jbpm.api.ProcessDefinition;
+import org.jbpm.api.model.Activity;
 
 
 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessModificationsImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessModificationsImpl.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessModificationsImpl.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,8 +24,10 @@
 import java.io.Serializable;
 import java.util.List;
 
+import org.jbpm.api.model.Activity;
 
 
+
 /**
  * @author Tom Baeyens
  */

Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Transition.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Transition.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Transition.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -1,66 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.model;
-
-
-/**
- * a transition in a {@link OpenProcessDefinition} graph.
- * 
- * <h3 id="guardconditions">Guard conditions</h3>
- * <p>TODO</p>
- * 
- * <h3 id="transitionsaswaitstates">Transitions as wait states</h3>
- * <p>A wait condition indicates wether a transition is to be taken synchronously
- * or wether the transition will behave as a wait state.
- * </p>
- * 
- * <p>Transitions that are wait states can occur when an analyst has 
- * an actual state (e.g. 'making loss') and a desired state (e.g. 'making profit')
- * and models a transition between those states.  In that case the transition 
- * might take a long time and hence it results into a wait state for the system.
- * </p>
- * 
- * <p>If the wait condition is null or if it returns false, then the transition 
- * will be taking synchronously.  Otherwise the transition will behave as 
- * a wait state and wait for a signal on the execution.
- * </p>
- * 
- * <p>Transitions as wait states has every thing to do with matching the 
- * process graph to transactions on the server.  If the transition is taken 
- * in one (the current) transaction, then the async condition should be empty 
- * or evaluate to false.  If the arrival of the execution in the destination 
- * activity should occur in a separate execution 
- * 
- * @author Tom Baeyens
- */
-public interface Transition extends ObservableElement {
-  
-  /** the activity from which this transition leaves. */
-  Activity getSource();
-
-  /** the activity in which this transition arrives. */ 
-  Activity getDestination();
-  
-  /** the general purpose condition that can be used in various ways by the 
-   * activities. */
-  Condition getCondition();
-}
\ No newline at end of file

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/TransitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/TransitionImpl.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/TransitionImpl.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,6 +24,7 @@
 import java.util.List;
 
 import org.jbpm.api.model.Event;
+import org.jbpm.api.model.Transition;
 
 
 /** 

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	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycle.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -25,8 +25,8 @@
 import java.util.Map;
 
 import org.jbpm.api.JbpmException;
+import org.jbpm.api.model.Activity;
 import org.jbpm.pvm.internal.id.IdComposer;
-import org.jbpm.pvm.internal.model.Activity;
 import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;

Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/BuilderTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/BuilderTest.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/BuilderTest.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -24,10 +24,10 @@
 import java.util.List;
 import java.util.Map;
 
+import org.jbpm.api.model.Transition;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
 import org.jbpm.pvm.internal.client.ClientProcessDefinition;
 import org.jbpm.pvm.internal.model.ActivityImpl;
-import org.jbpm.pvm.internal.model.Transition;
 import org.jbpm.test.BaseJbpmTestCase;
 
 

Modified: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/custombusinesscalendarimpl/CustomBusinessCalendar.java
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/custombusinesscalendarimpl/CustomBusinessCalendar.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/custombusinesscalendarimpl/CustomBusinessCalendar.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -42,4 +42,8 @@
     }
     return null;
   }
+
+  public Date subtract(Date date, String duration) {
+    return null;
+  }
 }

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	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -33,7 +33,7 @@
 import org.jbpm.pvm.internal.client.ClientExecution;
 import org.jbpm.pvm.internal.client.ClientProcessDefinition;
 import org.jbpm.pvm.internal.client.ClientProcessInstance;
-import org.jbpm.pvm.internal.model.Activity;
+import org.jbpm.pvm.internal.model.ActivityImpl;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.test.BaseJbpmTestCase;
 
@@ -179,7 +179,7 @@
       signal((ExecutionImpl)execution, signal, parameters);
     }
     public void signal(ExecutionImpl execution, String signal, Map<String, ?> parameters) throws Exception {
-      Activity activity = execution.getActivity();
+      ActivityImpl activity = execution.getActivity();
       if ( (signal!=null)
            && (activity!=null)
            && (activity.hasEvent(signal))

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	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -30,11 +30,11 @@
 import org.jbpm.api.activity.ExternalActivityBehaviour;
 import org.jbpm.api.listener.EventListener;
 import org.jbpm.api.listener.EventListenerExecution;
+import org.jbpm.api.model.Activity;
 import org.jbpm.api.model.OpenExecution;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
 import org.jbpm.pvm.internal.client.ClientProcessDefinition;
 import org.jbpm.pvm.internal.client.ClientProcessInstance;
-import org.jbpm.pvm.internal.model.Activity;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.test.BaseJbpmTestCase;
 

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableDeclarationTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableDeclarationTest.java	2010-01-20 12:32:25 UTC (rev 6105)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableDeclarationTest.java	2010-01-20 15:55:02 UTC (rev 6106)
@@ -26,11 +26,11 @@
 
 import org.jbpm.api.activity.ActivityExecution;
 import org.jbpm.api.activity.ExternalActivityBehaviour;
+import org.jbpm.api.model.Activity;
 import org.jbpm.api.model.OpenExecution;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
 import org.jbpm.pvm.internal.client.ClientExecution;
 import org.jbpm.pvm.internal.client.ClientProcessDefinition;
-import org.jbpm.pvm.internal.model.Activity;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 import org.jbpm.pvm.internal.wire.descriptor.StringDescriptor;
 import org.jbpm.test.BaseJbpmTestCase;



More information about the jbpm-commits mailing list