[jbpm-commits] JBoss JBPM SVN: r3700 - in jbpm4/trunk/modules: devguide/src/main/docbook/en/modules and 6 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Jan 22 05:56:09 EST 2009


Author: tom.baeyens at jboss.com
Date: 2009-01-22 05:56:09 -0500 (Thu, 22 Jan 2009)
New Revision: 3700

Modified:
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/model/Event.java
   jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch04-ImplementingBasicActivities.xml
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.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/ProcessDefinitionImpl.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/model/op/TakeTransition.java
   jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/eventlistener/EventListenerTest.java
   jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/eventlistener/EventPropagationTest.java
   jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessDefinitionDbTest.java
   jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventPropagationTest.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/TransitionEventsTest.java
Log:
JBPM-1753 review event names

Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/model/Event.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/model/Event.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/model/Event.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -24,26 +24,14 @@
 
 /** event constants.
  * 
- * <b>WARNING: these event names will be subject to change in the next release.
- * See <a href="https://jira.jboss.org/jira/browse/JBPM-1753">JBPM-1753</a></b>
- * 
  * @author Tom Baeyens
  */
 public interface Event {
 
-  /** <b>WARNING: this event name will be subject to change in the next release. See <a href="https://jira.jboss.org/jira/browse/JBPM-1753">JBPM-1753</a></b> 
-   * @deprecated */
-  String TRANSITION_TAKE = "transition-take";
-  /** <b>WARNING: this event name will be subject to change in the next release. See <a href="https://jira.jboss.org/jira/browse/JBPM-1753">JBPM-1753</a></b> 
-   * @deprecated */
-  String PROCESS_BEGIN = "process-begin";
-  /** <b>WARNING: this event name will be subject to change in the next release. See <a href="https://jira.jboss.org/jira/browse/JBPM-1753">JBPM-1753</a></b> 
-   * @deprecated */
-  String PROCESS_END = "process-end";
-  /** <b>WARNING: this event name will be subject to change in the next release. See <a href="https://jira.jboss.org/jira/browse/JBPM-1753">JBPM-1753</a></b> 
-   * @deprecated */
-  String NODE_BEGIN = "activity-begin";
-  /** <b>WARNING: this event name will be subject to change in the next release. See <a href="https://jira.jboss.org/jira/browse/JBPM-1753">JBPM-1753</a></b> 
-   * @deprecated */
-  String NODE_END = "activity-end";
+  /** fired when a transition is being taken */
+  String TAKE = "take";
+  /** fired when a process or an activity starts */
+  String START = "start";
+  /** fired when a process or an activity ends */
+  String END = "end";
 }

Modified: jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch04-ImplementingBasicActivities.xml
===================================================================
--- jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch04-ImplementingBasicActivities.xml	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch04-ImplementingBasicActivities.xml	2009-01-22 10:56:09 UTC (rev 3700)
@@ -310,32 +310,7 @@
     </para>
     <para>Most common events are fired by the execution automatically:
     </para>
-    <para><emphasis role="bold">WARNING: the following event names will be 
-    subject to change in the next release: see 
-    <ulink url="https://jira.jboss.org/jira/browse/JBPM-1753">JBPM-1753</ulink></emphasis>
-    </para>
-    <itemizedlist>
-      <listitem><literal><emphasis role="bold">Event.TRANSITION_TAKE</emphasis> = "transition-take"</literal> : 
-      fired on transitions when transitions are taken. 
-      </listitem>
-      <listitem><literal><emphasis role="bold">Event.NODE_BEGIN</emphasis> = "activity-begin"</literal> : fired on the activity 
-      when execution enters that activity.  This happens when execution takes a transition 
-      to that activity, when a child activity is being executed with <literal>execution.execute(Activity)</literal>
-      or when a transition is taken from a activity outside that activity to a contained activity.
-      The latter refers to super states in state machines.  
-      </listitem>
-      <listitem><literal><emphasis role="bold">Event.NODE_END</emphasis> = "activity-end"</literal> : fired on the activity 
-      when a transition is taken out of that activity or when a child activity execution is 
-      finished and the execution is propagated to the parent activity.
-      </listitem>
-      <listitem><literal><emphasis role="bold">Event.PROCESS_BEGIN</emphasis> = "process-begin"</literal> : fired on a process 
-      when a new process is started.
-      </listitem>
-      <listitem><literal><emphasis role="bold">Event.PROCESS_END</emphasis> = "process-end"</literal> : fired on a process 
-      when a new process is ended.  This might include a executions that are ended 
-      with a cancelled or error state.
-      </listitem>
-    </itemizedlist>
+    <para>TODO: explain events in userguide</para>
     <para>Events are identified by the combination of a process element 
     and an event name.  Users and process languages can also fire events 
     programmatically with the fire method on the Execution:
@@ -375,13 +350,13 @@
     </figure>
     <programlisting>ClientProcessDefinition processDefinition = ProcessFactory.build()
   .activity("a").initial().behaviour(new AutomaticActivity())
-    <emphasis role="bold">.event("activity-end")
+    <emphasis role="bold">.event("end")
       .listener(new PrintLn("leaving a"))
       .listener(new PrintLn("second message while leaving a"))</emphasis>
     .transition().to("b")
       <emphasis role="bold">.listener(new PrintLn("taking transition"))</emphasis>
   .activity("b").behaviour(new WaitState())
-    .event("activity-begin")
+    .event("start")
       <emphasis role="bold">.listener(new PrintLn("entering b"))</emphasis>
 .done();</programlisting>
      <para>The first event shows how to register multiple listeners to the same 
@@ -405,7 +380,7 @@
     is to allow for listeners on process definitions or composite activities that get executed
     for all events that occur within that process element.  For example this feature 
     allows to register an event listener on a process definition or a composite activity on 
-    <literal>activity-end</literal> events.  Such action will be executed if that activity is 
+    <literal>end</literal> events.  Such action will be executed if that activity is 
     left.  And if that event listener is registered on a composite activity, it will also be executed 
     for all activities that are left within that composite activity. 
     </para>
@@ -421,12 +396,12 @@
 }</programlisting>
     <para>Note that the purpose of event listeners is not to be visible, that's why the event listener 
     itself should not be displayed in the diagram. A <literal>DisplaySource</literal> event listener
-    will be added as a listener to the event <literal>activity-end</literal> on the composite activity.  
+    will be added as a listener to the event <literal>end</literal> on the composite activity.  
     </para>
     <para>The next process shows how the <literal>DisplaySource</literal> event listener is registered 
-    as a listener to to the 'activity-end' event on the <literal>composite</literal> activity:</para>
+    as a listener to to the 'end' event on the <literal>composite</literal> activity:</para>
     <figure id="process.propagate">
-      <title>A process with an invisible event listener on a activity-end event on a composite activity.</title>
+      <title>A process with an invisible event listener on a end event on a composite activity.</title>
       <mediaobject><imageobject><imagedata align="center" fileref="images/process.propagate.png"/></imageobject></mediaobject>
     </figure>
     <programlisting>TODO update code snippet</programlisting>
@@ -439,7 +414,7 @@
     </para>
     <programlisting>execution.signal();</programlisting>  
     <para>When the signal method returns, the execution will have taken the transition and 
-    the <literal>activity-end</literal> event will be fired on activity <literal>a</literal>.  That 
+    the <literal>end</literal> event will be fired on activity <literal>a</literal>.  That 
     event will be propagated to the 
     composite activity and to the process definition.  Since our <literal>DisplaySource</literal> 
     event listener is placed 
@@ -476,13 +451,13 @@
     remains the same.
     </para>
     <figure id="process.propagate.propagation.disabled">
-      <title>A process with an event listener to 'activity-end' events with propagation disabled.</title>
+      <title>A process with an event listener to 'end' events with propagation disabled.</title>
       <mediaobject><imageobject><imagedata align="center" fileref="images/process.propagate.png"/></imageobject></mediaobject>
     </figure>
     <para>Building the process with the process factory:
     </para>
     <programlisting>TODO update code snippet</programlisting>
-    <para>So when the first signal is given for this process, again the <literal>activity-end</literal> 
+    <para>So when the first signal is given for this process, again the <literal>end</literal> 
     event will be fired on activity <literal>a</literal>, but now the event listener on the composite 
     activity will not be executed cause 
     propagated events have been disabled.  Disabling propagation is a property on the individual 
@@ -497,13 +472,13 @@
     <para>Next, the second signal will take the transition from b to c.  
     </para>
     <programlisting>execution.signal()</programlisting>
-    <para>Again two <literal>activity-end</literal>
+    <para>Again two <literal>end</literal>
     events are fired just like above on activities <literal>b</literal> and <literal>composite</literal> 
     respectively.  The first event 
-    is the <literal>activity-end</literal> event on activity <literal>b</literal>.  That will be propagated 
+    is the <literal>end</literal> event on activity <literal>b</literal>.  That will be propagated 
     to the <literal>composite</literal> activity.  So the event 
     listener will not be executed for this event cause it has propagation disabled.  But the 
-    event listener will be executed for the <literal>activity-end</literal> event on the 
+    event listener will be executed for the <literal>end</literal> event on the 
     <literal>composite</literal> activity.  That is not 
     propagated, but fired directly on the <literal>composite</literal> activity.  So the event 
     listener will now be executed 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -37,7 +37,7 @@
   protected TransitionImpl transition;
   
   public FlowBuilder(ActivityBuilder activityBuilder, TransitionImpl transition) {
-    super(transition, Event.TRANSITION_TAKE);
+    super(transition, Event.TAKE);
     this.activityBuilder = activityBuilder;
     this.transition = transition;
   }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -31,14 +31,14 @@
   private static final long serialVersionUID = 1L;
 
   /** does this action accept propagated events ?  */
-  boolean isPropagationEnabled = true;
+  boolean isPropagationEnabled = false;
 
-  /** does this action accept propagated events ?  Default is true. */
+  /** does this action accept propagated events ?  Default is false. */
   public boolean isPropagationEnabled() {
     return isPropagationEnabled;
   }
 
-  /** does this action accept propagated events ?  Default is true. */
+  /** does this action accept propagated events ?  Default is false. */
   public void setPropagationEnabled(boolean isPropagationEnabled) {
     this.isPropagationEnabled = isPropagationEnabled;
   }

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-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -203,7 +203,7 @@
     }
     this.state = STATE_ACTIVE;
     ExecutionImpl scopedExecution = initializeScopes();
-    fire(Event.PROCESS_BEGIN, processDefinition);
+    fire(Event.START, processDefinition);
     if (activity!=null) {
       scopedExecution.performAtomicOperation(EXECUTE_ACTIVITY);
     }
@@ -327,7 +327,7 @@
       parent.removeExecution(this);
       
     } else { // this is a process instance
-      fire(Event.PROCESS_END, processDefinition);
+      fire(Event.END, processDefinition);
       if (superProcessExecution!=null) {
         log.trace(toString()+" signals super process execution");
         superProcessExecution.signal();
@@ -549,13 +549,13 @@
     if (activity.isLocalScope()) {
       propagatingExecution = createScope(activity);
     }
-    fire(Event.NODE_BEGIN, activity);
+    fire(Event.START, activity);
     return propagatingExecution;
   }
 
   public ExecutionImpl endActivity(ActivityImpl activity) {
     ExecutionImpl propagatingExecution = this;
-    fire(Event.NODE_END, activity);
+    fire(Event.END, activity);
     if (activity.isLocalScope()) {
       propagatingExecution = destroyScope(activity);
     }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -163,7 +163,7 @@
   // basic methods ////////////////////////////////////////////////////////////
 
   public String toString() {
-    return (name!=null ? "processDefinition("+name+")" : "processDefinition");
+    return (name!=null ? "process("+name+")" : "process");
   }
   
   // getters and setters //////////////////////////////////////////////////////

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	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/TransitionImpl.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -62,13 +62,13 @@
   
   public EventImpl createEvent() {
     EventImpl event = new EventImpl();
-    event.setName(Event.TRANSITION_TAKE);
+    event.setName(Event.TAKE);
     addEvent(event);
     return event;
   }
 
   public EventImpl getEvent() {
-    return getEvent(Event.TRANSITION_TAKE);
+    return getEvent(Event.TAKE);
   }
   
   // get parent ///////////////////////////////////////////////////////////////

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/TakeTransition.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/TakeTransition.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/TakeTransition.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -58,7 +58,7 @@
     }
     
     propagatingExecution.setActivity(null);
-    propagatingExecution.fire(Event.TRANSITION_TAKE, transition);
+    propagatingExecution.fire(Event.TAKE, transition);
     
     boolean wait = false;
     

Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/eventlistener/EventListenerTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/eventlistener/EventListenerTest.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/eventlistener/EventListenerTest.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -37,7 +37,7 @@
       .startProcess()
       .startActivity("a", new AutomaticActivity())
         .initial()
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .listener(new PrintLn("leaving a"))
           .listener(new PrintLn("second message while leaving a"))
         .endEvent()
@@ -46,7 +46,7 @@
         .endFlow()
       .endActivity()
       .startActivity("b", new WaitState())
-        .startEvent(Event.NODE_BEGIN)
+        .startEvent(Event.START)
           .listener(new PrintLn("entering b"))
         .endEvent()
       .endActivity()

Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/eventlistener/EventPropagationTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/eventlistener/EventPropagationTest.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/eventlistener/EventPropagationTest.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -47,12 +47,12 @@
     testConsole = null;
   }
 
-  public void testEventPropagation() {
+  public void testEventPropagationEnabled() {
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
       .startActivity("composite")
-        .startEvent(Event.NODE_END)
-          .listener(new DisplaySource())
+        .startEvent(Event.END)
+          .listener(new DisplaySource(), true)
         .endEvent()
         .startActivity("a", new WaitState())
           .initial()
@@ -83,12 +83,12 @@
     assertEquals(expectedLines, testConsole.lines);
   }
   
-  public void testEventPropagationDisabled() {
+  public void testEventPropagationDefaultDisabled() {
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
       .startActivity("composite")
-        .startEvent(Event.NODE_END)
-          .listener(new DisplaySource(), false)
+        .startEvent(Event.END)
+          .listener(new DisplaySource())
         .endEvent()
         .startActivity("a", new WaitState())
           .initial()

Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessDefinitionDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessDefinitionDbTest.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessDefinitionDbTest.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -248,11 +248,11 @@
   public void testEventsOnProcessDefinition() {
     ProcessDefinitionImpl processDefinition = (ProcessDefinitionImpl) ProcessDefinitionBuilder
     .startProcess()
-      .startEvent(Event.PROCESS_BEGIN)
+      .startEvent(Event.START)
         .listener("one")
         .listener("two")
       .endEvent()
-      .startEvent(Event.PROCESS_END)
+      .startEvent(Event.END)
         .listener("three")
         .listener("four")
       .endEvent()
@@ -263,12 +263,12 @@
 
     processDefinition = reload(processDefinition, ProcessDefinitionImpl.class);
 
-    EventImpl event = processDefinition.getEvent(Event.PROCESS_BEGIN);
+    EventImpl event = processDefinition.getEvent(Event.START);
     List<EventListenerReference> listenerReferences = event.getListenerReferences();
     assertEquals("one", listenerReferences.get(0).getExpression());
     assertEquals("two", listenerReferences.get(1).getExpression());
 
-    event = processDefinition.getEvent(Event.PROCESS_END);
+    event = processDefinition.getEvent(Event.END);
     listenerReferences = event.getListenerReferences();
     assertEquals("three", listenerReferences.get(0).getExpression());
     assertEquals("four", listenerReferences.get(1).getExpression());
@@ -279,11 +279,11 @@
     .startProcess()
       .startActivity("a")
         .initial()
-        .startEvent(Event.NODE_BEGIN)
+        .startEvent(Event.START)
           .listener("one")
           .listener("two")
         .endEvent()
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .listener("three")
           .listener("four")
         .endEvent()
@@ -292,12 +292,12 @@
 
     processDefinition = reload(processDefinition, ProcessDefinitionImpl.class);
 
-    EventImpl event = processDefinition.getActivity("a").getEvent(Event.NODE_BEGIN);
+    EventImpl event = processDefinition.getActivity("a").getEvent(Event.START);
     List<EventListenerReference> listenerReferences = event.getListenerReferences();
     assertEquals("one", listenerReferences.get(0).getExpression());
     assertEquals("two", listenerReferences.get(1).getExpression());
 
-    event = processDefinition.getActivity("a").getEvent(Event.NODE_END);
+    event = processDefinition.getActivity("a").getEvent(Event.END);
     listenerReferences = event.getListenerReferences();
     assertEquals("three", listenerReferences.get(0).getExpression());
     assertEquals("four", listenerReferences.get(1).getExpression());
@@ -442,7 +442,7 @@
   public void testEventDynamicProperties() {
     ProcessDefinitionImpl processDefinition = (ProcessDefinitionImpl) ProcessDefinitionBuilder
     .startProcess()
-      .startEvent(Event.PROCESS_BEGIN)
+      .startEvent(Event.START)
         .property("key1", "val1")
         .property("key2", "val2")
       .endEvent()
@@ -453,7 +453,7 @@
 
     processDefinition = reload(processDefinition, ProcessDefinitionImpl.class);
 
-    EventImpl event = processDefinition.getEvent(Event.PROCESS_BEGIN);
+    EventImpl event = processDefinition.getEvent(Event.START);
     assertEquals("val1", event.getProperty("key1"));
     assertEquals("val2", event.getProperty("key2"));
   }

Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventPropagationTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventPropagationTest.java	2009-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventPropagationTest.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -25,15 +25,14 @@
 import java.util.List;
 import java.util.Map;
 
-import org.jbpm.activity.ActivityBehaviour;
 import org.jbpm.activity.ActivityExecution;
 import org.jbpm.activity.ExternalActivityBehaviour;
 import org.jbpm.client.ClientExecution;
 import org.jbpm.client.ClientProcessDefinition;
 import org.jbpm.listener.EventListener;
 import org.jbpm.listener.EventListenerExecution;
-import org.jbpm.model.Event;
 import org.jbpm.model.Activity;
+import org.jbpm.model.Event;
 import org.jbpm.model.ObservableElement;
 import org.jbpm.pvm.internal.builder.ProcessDefinitionBuilder;
 import org.jbpm.test.JbpmTestCase;
@@ -47,9 +46,8 @@
     private static final long serialVersionUID = 1L;
     public List<Object> events = new ArrayList<Object>();
     public void notify(EventListenerExecution execution) {
-      ObservableElement element = execution.getEventSource();
-      String elementName = element.getName();
-      events.add(execution.getEvent()+" on "+(elementName!=null ? elementName : element));
+      ObservableElement eventSource = execution.getEventSource();
+      events.add(execution.getEvent()+" on "+eventSource);
     }
   }
   
@@ -63,28 +61,13 @@
     }
   }
 
-  public static class AutomaticActivity implements ActivityBehaviour {
-    private static final long serialVersionUID = 1L;
-    public void execute(ActivityExecution execution) {
-    }
-  }
-  
-  public static class WaitState implements ExternalActivityBehaviour {
-    private static final long serialVersionUID = 1L;
-    public void execute(ActivityExecution execution) {
-      execution.waitForSignal();
-    }
-    public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters){
-    }
-  }
-
   public void testListenToActivityLeaveOnProcessForProcessActivities(){
     Recorder recorder = new Recorder();
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
-      .startEvent(Event.NODE_END) 
-        .listener(recorder)
+      .startEvent(Event.END) 
+        .listener(recorder, true)
       .endEvent()
       .startActivity("initial", new WaitState())
         .initial()
@@ -97,7 +80,7 @@
     ClientExecution execution = processDefinition.startProcessInstance();
     execution.signal();
     
-    assertEquals("event(activity-end) on initial", recorder.events.get(0));
+    assertEquals("event(end) on activity(initial)", recorder.events.get(0));
     assertEquals(1, recorder.events.size());
   }
 
@@ -106,8 +89,8 @@
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
-      .startEvent(Event.NODE_BEGIN) 
-        .listener(recorder)
+      .startEvent(Event.START) 
+        .listener(recorder, true)
       .endEvent()
       .startActivity("initial", new WaitState())
         .initial()
@@ -120,8 +103,9 @@
     ClientExecution execution = processDefinition.startProcessInstance();
     execution.signal();
     
-    assertEquals("event(activity-begin) on end", recorder.events.get(0));
-    assertEquals(1, recorder.events.size());
+    assertEquals("event(start) on process(propagate)", recorder.events.get(0));
+    assertEquals("event(start) on activity(end)", recorder.events.get(1));
+    assertEquals(2, recorder.events.size());
   }
 
   public void testListenToTransitionOnProcessForTransitionBetweenProcessActivities(){
@@ -129,8 +113,8 @@
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
-      .startEvent(Event.TRANSITION_TAKE) 
-        .listener(recorder)
+      .startEvent(Event.TAKE) 
+        .listener(recorder, true)
       .endEvent()
       .startActivity("initial", new WaitState())
         .initial()
@@ -143,7 +127,7 @@
     ClientExecution execution = processDefinition.startProcessInstance();
     execution.signal();
     
-    assertEquals("event(transition-take) on go", recorder.events.get(0));
+    assertEquals("event(take) on (initial)--go-->(end)", recorder.events.get(0));
     assertEquals(1, recorder.events.size());
   }
 
@@ -177,8 +161,8 @@
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
-      .startEvent(Event.NODE_END) 
-        .listener(recorder)
+      .startEvent(Event.END) 
+        .listener(recorder, true)
       .endEvent()
       .startActivity("sequence", new Sequence())
         .initial()
@@ -197,14 +181,15 @@
     ClientExecution execution = processDefinition.startProcessInstance();
     assertEquals(0, recorder.events.size());
     execution.signal();
-    assertEquals("event(activity-end) on one", recorder.events.get(0));
+    assertEquals("event(end) on activity(one)", recorder.events.get(0));
     assertEquals(1, recorder.events.size());
     execution.signal();
-    assertEquals("event(activity-end) on two", recorder.events.get(1));
+    assertEquals("event(end) on activity(two)", recorder.events.get(1));
     assertEquals(2, recorder.events.size());
     execution.signal();
-    assertEquals("event(activity-end) on three", recorder.events.get(2));
-    assertEquals(3, recorder.events.size());
+    assertEquals("event(end) on activity(three)", recorder.events.get(2));
+    assertEquals("event(end) on process(propagate)", recorder.events.get(3));
+    assertEquals(recorder.events.toString(), 4, recorder.events.size());
   }
 
   public void testListenToActivityLeaveOnProcessForTransitionBetweenSequenceChildActivities(){
@@ -212,8 +197,8 @@
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
-      .startEvent(Event.NODE_END) 
-        .listener(recorder)
+      .startEvent(Event.END) 
+        .listener(recorder, true)
       .endEvent()
       .startActivity("sequence", new Sequence())
         .initial()
@@ -231,10 +216,10 @@
 
     assertEquals(0, recorder.events.size());
     execution.signal();
-    assertEquals("event(activity-end) on one", recorder.events.get(0));
+    assertEquals("event(end) on activity(one)", recorder.events.get(0));
     assertEquals(1, recorder.events.size());
     execution.signal();
-    assertEquals("event(activity-end) on two", recorder.events.get(1));
+    assertEquals("event(end) on activity(two)", recorder.events.get(1));
     assertEquals(2, recorder.events.size());
   }
 
@@ -244,8 +229,8 @@
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
-      .startEvent(Event.NODE_BEGIN) 
-        .listener(recorder)
+      .startEvent(Event.START) 
+        .listener(recorder, true)
       .endEvent()
       .startActivity("sequence", new Sequence())
         .initial()
@@ -262,14 +247,21 @@
     .endProcess();
     
     ClientExecution execution = processDefinition.startProcessInstance();
-    assertEquals("event(activity-begin) on one", recorder.events.get(0));
-    assertEquals(1, recorder.events.size());
+    
+    List<Object> expectedEvents = new ArrayList<Object>();
+    expectedEvents.add("event(start) on process(propagate)");
+    expectedEvents.add("event(start) on activity(one)");
+    assertEquals(expectedEvents, recorder.events);
+    
     execution.signal();
-    assertEquals("event(activity-begin) on two", recorder.events.get(1));
-    assertEquals(2, recorder.events.size());
+
+    expectedEvents.add("event(start) on activity(two)");
+    assertEquals(expectedEvents, recorder.events);
+
     execution.signal();
-    assertEquals("event(activity-begin) on three", recorder.events.get(2));
-    assertEquals(3, recorder.events.size());
+    
+    expectedEvents.add("event(start) on activity(three)");
+    assertEquals(expectedEvents, recorder.events);
   }
 
   public void testListenToTransitionTakeOnProcessForTransitionBetweenSequenceChildActivities(){
@@ -277,8 +269,8 @@
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
-      .startEvent(Event.TRANSITION_TAKE) 
-        .listener(recorder)
+      .startEvent(Event.TAKE) 
+        .listener(recorder, true)
       .endEvent()
       .startActivity("sequence", new Sequence())
         .initial()
@@ -296,7 +288,7 @@
     
     assertEquals(0, recorder.events.size());
     execution.signal();
-    assertEquals("event(transition-take) on increment", recorder.events.get(0));
+    assertEquals("event(take) on (one)--increment-->(two)", recorder.events.get(0));
     assertEquals(1, recorder.events.size());
   }
 
@@ -310,24 +302,24 @@
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
       .startEvent("hello") 
-        .listener(processRecorder)
+        .listener(processRecorder, true)
       .endEvent()
       .startActivity("outer", new Sequence())
         .initial()
         .startEvent("hello") 
-          .listener(outerRecorder)
+          .listener(outerRecorder, true)
         .endEvent()
         .startActivity("middel", new Sequence())
           .startEvent("hello") 
-            .listener(middelRecorder)
+            .listener(middelRecorder, true)
           .endEvent()
           .startActivity("inner", new Sequence())
             .startEvent("hello") 
-              .listener(innerRecorder)
+              .listener(innerRecorder, true)
             .endEvent()
             .startActivity("nested state", new FireableState())
               .startEvent("hello") 
-                .listener(nestedStateRecorder)
+                .listener(nestedStateRecorder, true)
               .endEvent()
             .endActivity()
           .endActivity()
@@ -340,19 +332,19 @@
     assertEquals(0, processRecorder.events.size());
     execution.signal("hello");
     
-    assertEquals("event(hello) on nested state", processRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", processRecorder.events.get(0));
     assertEquals(1, processRecorder.events.size());
 
-    assertEquals("event(hello) on nested state", outerRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", outerRecorder.events.get(0));
     assertEquals(1, outerRecorder.events.size());
 
-    assertEquals("event(hello) on nested state", middelRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", middelRecorder.events.get(0));
     assertEquals(1, middelRecorder.events.size());
 
-    assertEquals("event(hello) on nested state", innerRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", innerRecorder.events.get(0));
     assertEquals(1, innerRecorder.events.size());
 
-    assertEquals("event(hello) on nested state", nestedStateRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", nestedStateRecorder.events.get(0));
     assertEquals(1, nestedStateRecorder.events.size());
   }
 
@@ -366,20 +358,20 @@
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
     .startProcess("propagate")
       .startEvent("hello") 
-        .listener(processRecorder)
+        .listener(processRecorder, true)
       .endEvent()
       .startActivity("outer", new Sequence())
         .initial()
         .startEvent("hello") 
-          .listener(outerRecorder)
+          .listener(outerRecorder, true)
         .endEvent()
         .startActivity("middle", new Sequence())
           .startEvent("hello") 
-            .listener(middleRecorder, false)
+            .listener(middleRecorder)
           .endEvent()
           .startActivity("inner", new Sequence())
             .startEvent("hello") 
-              .listener(innerRecorder)
+              .listener(innerRecorder, true)
             .endEvent()
             .startActivity("nested state", new FireableState())
               .startEvent("hello") 
@@ -396,18 +388,18 @@
     // the middle action should not be executed for an event that was propagated from the nested state 
     execution.signal("hello");
     
-    assertEquals("event(hello) on nested state", processRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", processRecorder.events.get(0));
     assertEquals(1, processRecorder.events.size());
 
-    assertEquals("event(hello) on nested state", outerRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", outerRecorder.events.get(0));
     assertEquals(1, outerRecorder.events.size());
 
     assertEquals(0, middleRecorder.events.size());
 
-    assertEquals("event(hello) on nested state", innerRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", innerRecorder.events.get(0));
     assertEquals(1, innerRecorder.events.size());
 
-    assertEquals("event(hello) on nested state", nestedStateRecorder.events.get(0));
+    assertEquals("event(hello) on activity(nested state)", nestedStateRecorder.events.get(0));
     assertEquals(1, nestedStateRecorder.events.size());
   }
 }

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-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -52,23 +52,6 @@
  */
 public class EventTest extends JbpmTestCase {
   
-  public static class AutomaticActivity implements ActivityBehaviour {
-    private static final long serialVersionUID = 1L;
-    public void execute(ActivityExecution execution) {
-    }
-  }
-  
-  public static class WaitState implements ExternalActivityBehaviour {
-    private static final long serialVersionUID = 1L;
-    public void execute(ActivityExecution execution) {
-      execution.waitForSignal();
-    }
-    public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters){
-      execution.take(signalName);
-    }
-  }
-
-  
   // activity leave action ////////////////////////////////////////////////////////
   
   public static class ActivityEndAction implements EventListener {
@@ -91,7 +74,7 @@
       .startActivity("initial", new WaitState())
         .initial()
         .flow("end")
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .listener(activityEndAction)
         .endEvent()
       .endActivity()
@@ -167,7 +150,7 @@
         .flow("end")
       .endActivity()
       .startActivity("end", new WaitState())
-        .startEvent(Event.NODE_BEGIN)
+        .startEvent(Event.START)
           .listener(activityBeginAction)
         .endEvent()
       .endActivity()
@@ -278,14 +261,14 @@
     RecordingExecution execution = (RecordingExecution) processDefinition.startProcessInstance();
 
     int index = 0;
-    assertEquals("process-begin on processDefinition(basic)", execution.events.get(index));
+    assertEquals("start on process(basic)", execution.events.get(index));
     index++;
-    assertEquals("activity-end on activity(initial)", execution.events.get(index));
+    assertEquals("end on activity(initial)", execution.events.get(index));
     index++;
-    assertEquals("transition-take on (initial)-->(end)", execution.events.get(index));
+    assertEquals("take on (initial)-->(end)", execution.events.get(index));
     index++;
-    assertEquals("activity-begin on activity(end)", execution.events.get(index));
+    assertEquals("start on activity(end)", execution.events.get(index));
     index++;
-    assertEquals("process-end on processDefinition(basic)", execution.events.get(index));
+    assertEquals("end on process(basic)", execution.events.get(index));
   }
 }

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-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -73,7 +73,7 @@
       .startActivity("initial", new WaitState())
         .initial()
         .flow("end")
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .listener(new Batter())
         .endEvent()
       .endActivity()
@@ -97,7 +97,7 @@
       .startActivity("initial", new WaitState())
         .initial()
         .flow("end")
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .startExceptionHandler(RuntimeException.class)
             .listener(catcher)
           .endExceptionHandler()
@@ -124,7 +124,7 @@
       .startActivity("initial", new WaitState())
         .initial()
         .flow("end")
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .listener(new Batter())
           .startExceptionHandler(RuntimeException.class)
             .listener(catcher)
@@ -151,7 +151,7 @@
       .startActivity("initial",new WaitState())
         .initial()
         .flow("end")
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .listener(new Batter())
         .endEvent()
       .endActivity()
@@ -185,7 +185,7 @@
             .listener(catcher)
           .endExceptionHandler()
         .endEvent()
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .listener(new Batter())
         .endEvent()
       .endActivity()
@@ -217,7 +217,7 @@
       .startActivity("initial", new WaitState())
         .initial()
         .flow("end")
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .startExceptionHandler(NullPointerException.class)
             .listener(catcher)
           .endExceptionHandler()
@@ -255,7 +255,7 @@
       .startActivity("initial", new WaitState())
         .initial()
         .flow("end")
-        .startEvent(Event.NODE_END)
+        .startEvent(Event.END)
           .startExceptionHandler(RuntimeException.class)
             .listener(rethrowingCatcher)
           .endExceptionHandler()

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-01-21 19:21:34 UTC (rev 3699)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/TransitionEventsTest.java	2009-01-22 10:56:09 UTC (rev 3700)
@@ -23,10 +23,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
-import org.jbpm.activity.ActivityExecution;
-import org.jbpm.activity.ExternalActivityBehaviour;
 import org.jbpm.client.ClientExecution;
 import org.jbpm.client.ClientProcessDefinition;
 import org.jbpm.listener.EventListener;
@@ -38,18 +35,8 @@
 /**
  * @author Tom Baeyens
  */
-public class TransitionEventsTest extends JbpmTestCase
-{
+public class TransitionEventsTest extends JbpmTestCase {
   
-  public static class WaitState implements ExternalActivityBehaviour {
-    private static final long serialVersionUID = 1L;
-    public void execute(ActivityExecution execution) {
-      execution.waitForSignal();
-    }
-    public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters){
-    }
-  }
-  
   public class Recorder implements EventListener {
     private static final long serialVersionUID = 1L;
     public List<Object> events = new ArrayList<Object>();
@@ -75,48 +62,48 @@
     */
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
-    .startProcess("leave a super state")
-      .startEvent(Event.NODE_END) 
+    .startProcess("p")
+      .startEvent(Event.END) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.NODE_BEGIN) 
+      .startEvent(Event.START) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.TRANSITION_TAKE) 
+      .startEvent(Event.TAKE) 
         .listener(processListener)
       .endEvent()
       .startActivity("composite")
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(compositeListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(compositeListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(compositeListener)
         .endEvent()
         .startActivity("inside", new WaitState())
           .initial()
           .flow("outside")
-          .startEvent(Event.NODE_END) 
+          .startEvent(Event.END) 
             .listener(insideListener)
           .endEvent()
-          .startEvent(Event.NODE_BEGIN) 
+          .startEvent(Event.START) 
             .listener(insideListener)
           .endEvent()
-          .startEvent(Event.TRANSITION_TAKE) 
+          .startEvent(Event.TAKE) 
             .listener(insideListener)
           .endEvent()
         .endActivity()
       .endActivity()
       .startActivity("outside", new WaitState())
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(outsideListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(outsideListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(outsideListener)
         .endEvent()
       .endActivity()
@@ -124,7 +111,9 @@
 
     ClientExecution execution = processDefinition.startProcessInstance();
 
-    assertEquals(0, processListener.events.size());
+    assertEquals("[event(start) on process(p)]", 
+                 processListener.events.toString());
+
     assertEquals(0, outsideListener.events.size());
     assertEquals(0, compositeListener.events.size());
     assertEquals(0, insideListener.events.size());
@@ -133,20 +122,16 @@
 
     execution.signal();
     
-    assertEquals("[event(activity-end) on activity(inside), " +
-                  "event(activity-end) on activity(composite), " +
-                  "event(transition-take) on (inside)-->(outside), " +
-                  "event(activity-begin) on activity(outside)]", 
+    assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
-    
-    assertEquals("[event(activity-begin) on activity(outside)]",
+
+    assertEquals("[event(start) on activity(outside)]",
                  outsideListener.events.toString());
     
-    assertEquals("[event(activity-end) on activity(inside), " +
-                  "event(activity-end) on activity(composite)]",
+    assertEquals("[event(end) on activity(composite)]",
                  compositeListener.events.toString());
     
-    assertEquals("[event(activity-end) on activity(inside)]",
+    assertEquals("[event(end) on activity(inside)]",
                  insideListener.events.toString());
   }
 
@@ -166,47 +151,47 @@
     */
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
-    .startProcess("enter a super state")
-      .startEvent(Event.NODE_END) 
+    .startProcess("p")
+      .startEvent(Event.END) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.NODE_BEGIN) 
+      .startEvent(Event.START) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.TRANSITION_TAKE) 
+      .startEvent(Event.TAKE) 
         .listener(processListener)
       .endEvent()
       .startActivity("outside", new WaitState())
         .initial()
         .flow("inside")
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(outsideListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(outsideListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(outsideListener)
         .endEvent()
       .endActivity()
       .startActivity("composite")
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(compositeListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(compositeListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(compositeListener)
         .endEvent()
         .startActivity("inside", new WaitState())
-          .startEvent(Event.NODE_END) 
+          .startEvent(Event.END) 
             .listener(insideListener)
           .endEvent()
-          .startEvent(Event.NODE_BEGIN) 
+          .startEvent(Event.START) 
             .listener(insideListener)
           .endEvent()
-          .startEvent(Event.TRANSITION_TAKE) 
+          .startEvent(Event.TAKE) 
             .listener(insideListener)
           .endEvent()
         .endActivity()
@@ -215,27 +200,25 @@
     
     ClientExecution execution = processDefinition.startProcessInstance();
 
-    assertEquals(0, processListener.events.size());
+    assertEquals("[event(start) on process(p)]", 
+                 processListener.events.toString());
+
     assertEquals(0, outsideListener.events.size());
     assertEquals(0, compositeListener.events.size());
     assertEquals(0, insideListener.events.size());
 
     execution.signal();
     
-    assertEquals("[event(activity-end) on activity(outside), " +
-    		          "event(transition-take) on (outside)-->(inside), " +
-    		          "event(activity-begin) on activity(composite), " +
-    		          "event(activity-begin) on activity(inside)]", 
+    assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
-    
-    assertEquals("[event(activity-end) on activity(outside)]",
+
+    assertEquals("[event(end) on activity(outside)]",
                  outsideListener.events.toString());
     
-    assertEquals("[event(activity-begin) on activity(composite), " +
-    		           "event(activity-begin) on activity(inside)]",
-    		         compositeListener.events.toString());
+    assertEquals("[event(start) on activity(composite)]",
+    		     compositeListener.events.toString());
     
-    assertEquals("[event(activity-begin) on activity(inside)]",
+    assertEquals("[event(start) on activity(inside)]",
                  insideListener.events.toString());
   }
 
@@ -256,36 +239,36 @@
     */
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
-    .startProcess("leave a super state")
-      .startEvent(Event.NODE_END) 
+    .startProcess("p")
+      .startEvent(Event.END) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.NODE_BEGIN) 
+      .startEvent(Event.START) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.TRANSITION_TAKE) 
+      .startEvent(Event.TAKE) 
         .listener(processListener)
       .endEvent()
       .startActivity("composite")
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(compositeListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(compositeListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(compositeListener)
         .endEvent()
         .startActivity("inside", new WaitState())
           .initial()
           .flow("inside")
-          .startEvent(Event.NODE_END) 
+          .startEvent(Event.END) 
             .listener(insideListener)
           .endEvent()
-          .startEvent(Event.NODE_BEGIN) 
+          .startEvent(Event.START) 
             .listener(insideListener)
           .endEvent()
-          .startEvent(Event.TRANSITION_TAKE) 
+          .startEvent(Event.TAKE) 
             .listener(insideListener)
           .endEvent()
         .endActivity()
@@ -294,7 +277,9 @@
 
     ClientExecution execution = processDefinition.startProcessInstance();
 
-    assertEquals(0, processListener.events.size());
+    assertEquals("[event(start) on process(p)]", 
+                 processListener.events.toString());
+
     assertEquals(0, compositeListener.events.size());
     assertEquals(0, insideListener.events.size());
     
@@ -302,22 +287,83 @@
 
     execution.signal();
     
-    assertEquals("[event(activity-end) on activity(inside), " +
-                  "event(transition-take) on (inside)-->(inside), " +
-                  "event(activity-begin) on activity(inside)]", 
+    assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
     
-    assertEquals("[event(activity-end) on activity(inside), " +
-                 "event(transition-take) on (inside)-->(inside), " +
-                 "event(activity-begin) on activity(inside)]",
-                 compositeListener.events.toString());
+    assertEquals(0, compositeListener.events.size());
     
-    assertEquals("[event(activity-end) on activity(inside), " +
-    		          "event(activity-begin) on activity(inside)]",
+    assertEquals("[event(end) on activity(inside), " +
+    		      "event(start) on activity(inside)]",
                  insideListener.events.toString());
   }
 
+  public void testPropagateSelfTransition(){
+    Recorder processListener = new Recorder();
+    Recorder compositeListener = new Recorder();
 
+    /*
+    +-----------------+
+    | composite       |
+    |  +--------+     |    
+    |  | inside |---+ |
+    |  |        |   | |
+    |  |        |<--+ |
+    |  +--------+     |    
+    +-----------------+
+    */
+    
+    ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
+    .startProcess("p")
+      .startEvent(Event.END) 
+        .listener(processListener, true)
+      .endEvent()
+      .startEvent(Event.START) 
+        .listener(processListener, true)
+      .endEvent()
+      .startEvent(Event.TAKE) 
+        .listener(processListener, true)
+      .endEvent()
+      .startActivity("composite")
+        .startEvent(Event.END) 
+          .listener(compositeListener, true)
+        .endEvent()
+        .startEvent(Event.START) 
+          .listener(compositeListener, true)
+        .endEvent()
+        .startEvent(Event.TAKE) 
+          .listener(compositeListener, true)
+        .endEvent()
+        .startActivity("inside", new WaitState())
+          .initial()
+          .flow("inside")
+        .endActivity()
+      .endActivity()
+    .endProcess();
+
+    ClientExecution execution = processDefinition.startProcessInstance();
+
+    assertEquals("[event(start) on process(p)]", 
+                 processListener.events.toString());
+
+    assertEquals(0, compositeListener.events.size());
+    
+    assertEquals("inside", execution.getActivity().getName());
+
+    execution.signal();
+    
+    assertEquals("[event(end) on activity(inside), " +
+                  "event(take) on (inside)-->(inside), " +
+                  "event(start) on activity(inside)]",
+                 compositeListener.events.toString());
+
+    assertEquals("[event(start) on process(p), " +
+    		      "event(end) on activity(inside), " +
+                  "event(take) on (inside)-->(inside), " +
+                  "event(start) on activity(inside)]", 
+                 processListener.events.toString());
+  }
+
+
   public void testCompositeLeaveInheritedTransition(){
     Recorder processListener = new Recorder();
     Recorder outsideListener = new Recorder();
@@ -334,48 +380,48 @@
     */
     
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
-    .startProcess("leave a super state")
-      .startEvent(Event.NODE_END) 
+    .startProcess("p")
+      .startEvent(Event.END) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.NODE_BEGIN) 
+      .startEvent(Event.START) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.TRANSITION_TAKE) 
+      .startEvent(Event.TAKE) 
         .listener(processListener)
       .endEvent()
       .startActivity("composite")
         .flow("outside")
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(compositeListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(compositeListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(compositeListener)
         .endEvent()
         .startActivity("inside", new WaitState())
           .initial()
-          .startEvent(Event.NODE_END) 
+          .startEvent(Event.END) 
             .listener(insideListener)
           .endEvent()
-          .startEvent(Event.NODE_BEGIN) 
+          .startEvent(Event.START) 
             .listener(insideListener)
           .endEvent()
-          .startEvent(Event.TRANSITION_TAKE) 
+          .startEvent(Event.TAKE) 
             .listener(insideListener)
           .endEvent()
         .endActivity()
       .endActivity()
       .startActivity("outside", new WaitState())
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(outsideListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(outsideListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(outsideListener)
         .endEvent()
       .endActivity()
@@ -383,7 +429,9 @@
 
     ClientExecution execution = processDefinition.startProcessInstance();
 
-    assertEquals(0, processListener.events.size());
+    assertEquals("[event(start) on process(p)]", 
+                 processListener.events.toString());
+
     assertEquals(0, outsideListener.events.size());
     assertEquals(0, compositeListener.events.size());
     assertEquals(0, insideListener.events.size());
@@ -392,20 +440,16 @@
 
     execution.signal();
     
-    assertEquals("[event(activity-end) on activity(inside), " +
-                  "event(activity-end) on activity(composite), " +
-                  "event(transition-take) on (composite)-->(outside), " +
-                  "event(activity-begin) on activity(outside)]", 
+    assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
-    
-    assertEquals("[event(activity-begin) on activity(outside)]",
+
+    assertEquals("[event(start) on activity(outside)]",
                  outsideListener.events.toString());
     
-    assertEquals("[event(activity-end) on activity(inside), " +
-                  "event(activity-end) on activity(composite)]",
+    assertEquals("[event(end) on activity(composite)]",
                  compositeListener.events.toString());
     
-    assertEquals("[event(activity-end) on activity(inside)]",
+    assertEquals("[event(end) on activity(inside)]",
                  insideListener.events.toString());
   }
 
@@ -430,69 +474,69 @@
     */
 
     ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
-    .startProcess("leave a super state")
-      .startEvent(Event.NODE_END) 
+    .startProcess("p")
+      .startEvent(Event.END) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.NODE_BEGIN) 
+      .startEvent(Event.START) 
         .listener(processListener)
       .endEvent()
-      .startEvent(Event.TRANSITION_TAKE) 
+      .startEvent(Event.TAKE) 
         .listener(processListener)
       .endEvent()
       .startActivity("source outside")
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(sourceOutsideListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(sourceOutsideListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(sourceOutsideListener)
         .endEvent()
         .startActivity("source middle")
           .flow("destination inside")
-          .startEvent(Event.NODE_END) 
+          .startEvent(Event.END) 
             .listener(sourceMiddleListener)
           .endEvent()
-          .startEvent(Event.NODE_BEGIN) 
+          .startEvent(Event.START) 
             .listener(sourceMiddleListener)
           .endEvent()
-          .startEvent(Event.TRANSITION_TAKE) 
+          .startEvent(Event.TAKE) 
             .listener(sourceMiddleListener)
           .endEvent()
           .startActivity("source inside", new WaitState())
             .initial()
-            .startEvent(Event.NODE_END) 
+            .startEvent(Event.END) 
               .listener(sourceInsideListener)
             .endEvent()
-            .startEvent(Event.NODE_BEGIN) 
+            .startEvent(Event.START) 
               .listener(sourceInsideListener)
             .endEvent()
-            .startEvent(Event.TRANSITION_TAKE) 
+            .startEvent(Event.TAKE) 
               .listener(sourceInsideListener)
             .endEvent()
           .endActivity()
         .endActivity()
       .endActivity()
       .startActivity("destination outside")
-        .startEvent(Event.NODE_END) 
+        .startEvent(Event.END) 
           .listener(destinationOutsideListener)
         .endEvent()
-        .startEvent(Event.NODE_BEGIN) 
+        .startEvent(Event.START) 
           .listener(destinationOutsideListener)
         .endEvent()
-        .startEvent(Event.TRANSITION_TAKE) 
+        .startEvent(Event.TAKE) 
           .listener(destinationOutsideListener)
         .endEvent()
         .startActivity("destination inside", new WaitState())
-          .startEvent(Event.NODE_END) 
+          .startEvent(Event.END) 
             .listener(destinationInsideListener)
           .endEvent()
-          .startEvent(Event.NODE_BEGIN) 
+          .startEvent(Event.START) 
             .listener(destinationInsideListener)
           .endEvent()
-          .startEvent(Event.TRANSITION_TAKE) 
+          .startEvent(Event.TAKE) 
             .listener(destinationInsideListener)
           .endEvent()
         .endActivity()
@@ -506,31 +550,22 @@
 
     execution.signal();
     
-    assertEquals("[event(activity-end) on activity(source inside), " +
-                  "event(activity-end) on activity(source middle), " +
-                  "event(activity-end) on activity(source outside), " +
-                  "event(transition-take) on (source middle)-->(destination inside), " +
-                  "event(activity-begin) on activity(destination outside), " +
-                  "event(activity-begin) on activity(destination inside)]", 
+    assertEquals("[event(start) on process(p)]", 
                  processListener.events.toString());
     
-    assertEquals("[event(activity-end) on activity(source inside), " +
-                  "event(activity-end) on activity(source middle), " +
-                  "event(activity-end) on activity(source outside)]", 
+    assertEquals("[event(end) on activity(source outside)]", 
                  sourceOutsideListener.events.toString());
     
-    assertEquals("[event(activity-end) on activity(source inside), " +
-                  "event(activity-end) on activity(source middle)]", 
+    assertEquals("[event(end) on activity(source middle)]", 
                  sourceMiddleListener.events.toString());
 
-    assertEquals("[event(activity-end) on activity(source inside)]", 
+    assertEquals("[event(end) on activity(source inside)]", 
                  sourceInsideListener.events.toString());
 
-    assertEquals("[event(activity-begin) on activity(destination outside), " +
-                  "event(activity-begin) on activity(destination inside)]", 
+    assertEquals("[event(start) on activity(destination outside)]", 
                  destinationOutsideListener.events.toString());
 
-    assertEquals("[event(activity-begin) on activity(destination inside)]", 
+    assertEquals("[event(start) on activity(destination inside)]", 
                  destinationInsideListener.events.toString());
   }
 }




More information about the jbpm-commits mailing list