Author: rahul
Date: Fri Nov 21 08:40:01 2008
New Revision: 719633

URL: http://svn.apache.org/viewvc?rev=719633&view=rev
Log:
Porting r719632 from trunk.
event attribute of <send> is not evaluated
SCXML-90

Modified:
    
commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/model/Send.java
    
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-03.xml
    
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-04.xml
    
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/wizard-02.xml
    
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/invoke/invoked-02.xml
    
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/send-02.xml

Modified: 
commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/model/Send.java
URL: 
http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/model/Send.java?rev=719633&r1=719632&r2=719633&view=diff
==============================================================================
--- 
commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/model/Send.java
 (original)
+++ 
commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/model/Send.java
 Fri Nov 21 08:40:01 2008
@@ -326,6 +326,15 @@
                 wait = parseDelay(delayString, appLog);
             }
         }
+        String eventValue = event;
+        if (!SCXMLHelper.isStringEmpty(event)) {
+            eventValue = (String) eval.eval(ctx, event);
+            if (SCXMLHelper.isStringEmpty(eventValue)
+                    && appLog.isWarnEnabled()) {
+                appLog.warn("<send>: event expression \"" + event
+                    + "\" evaluated to null or empty String");
+            }
+        }
         // Lets see if we should handle it ourselves
         if (targettypeValue != null
               && targettypeValue.trim().equalsIgnoreCase(TARGETTYPE_SCXML)) {
@@ -333,10 +342,10 @@
                 // TODO: Remove both short-circuit passes in v1.0
                 if (wait == 0L) {
                     if (appLog.isDebugEnabled()) {
-                        appLog.debug("<send>: Enqueued event '" + event
+                        appLog.debug("<send>: Enqueued event '" + eventValue
                             + "' with no delay");
                     }
-                    derivedEvents.add(new TriggerEvent(event,
+                    derivedEvents.add(new TriggerEvent(eventValue,
                         TriggerEvent.SIGNAL_EVENT, params));
                     return;
                 }
@@ -355,13 +364,13 @@
         }
         ctx.setLocal(getNamespacesKey(), null);
         if (appLog.isDebugEnabled()) {
-            appLog.debug("<send>: Dispatching event '" + event
+            appLog.debug("<send>: Dispatching event '" + eventValue
                 + "' to target '" + targetValue + "' of target type '"
                 + targettypeValue + "' with suggested delay of " + wait
                 + "ms");
         }
         // Else, let the EventDispatcher take care of it
-        evtDispatcher.send(sendid, targetValue, targettypeValue, event,
+        evtDispatcher.send(sendid, targetValue, targettypeValue, eventValue,
             params, hintsValue, wait, externalNodes);
     }
 

Modified: 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-03.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-03.xml?rev=719633&r1=719632&r2=719633&view=diff
==============================================================================
--- 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-03.xml
 (original)
+++ 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-03.xml
 Fri Nov 21 08:40:01 2008
@@ -37,7 +37,7 @@
         <onentry>
             <cs:var name="one" expr="Data(rootdata,'root/one')"/>
             <cs:var name="two" expr="Data(rootdata,'root/two')"/>
-            <send event="event.bar" namelist="one two"/>
+            <send event="'event.bar'" namelist="one two"/>
         </onentry>
         <transition event="event.bar"
             cond="_eventdatamap['event.bar'].one + 
_eventdatamap['event.bar'].two eq 3"

Modified: 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-04.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-04.xml?rev=719633&r1=719632&r2=719633&view=diff
==============================================================================
--- 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-04.xml
 (original)
+++ 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/eventdata-04.xml
 Fri Nov 21 08:40:01 2008
@@ -28,7 +28,7 @@
            </datamodel>
 
            <onentry>
-               <send event="event.bar" namelist="one two" delay="'100ms'"/>
+               <send event="'event.bar'" namelist="one two" delay="'100ms'"/>
            </onentry>
            <transition event="event.bar">
                <log label="'simulatedUser'" 
expr="_eventdatamap['event.bar'].one + ', ' + _eventdatamap['event.bar'].two"/>

Modified: 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/wizard-02.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/wizard-02.xml?rev=719633&r1=719632&r2=719633&view=diff
==============================================================================
--- 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/wizard-02.xml
 (original)
+++ 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/jexl/wizard-02.xml
 Fri Nov 21 08:40:01 2008
@@ -25,7 +25,7 @@
                       default to be chosen as "scxml".
                       This will cause the first transition
                       to state2 to be immediately followed. -->
-                 <send event="event2" />
+                 <send event="'event2'" />
            </onentry>
            <transition event="event2" target="state2"/>
            <transition event="event3" target="state3"/>

Modified: 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/invoke/invoked-02.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/invoke/invoked-02.xml?rev=719633&r1=719632&r2=719633&view=diff
==============================================================================
--- 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/invoke/invoked-02.xml
 (original)
+++ 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/invoke/invoked-02.xml
 Fri Nov 21 08:40:01 2008
@@ -21,7 +21,7 @@
 
     <state id="state1">
         <onentry>
-            <send event="invoked.next" />
+            <send event="'invoked.next'" />
         </onentry>
         <transition event="invoked.next" target="state2" />
     </state>

Modified: 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/send-02.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/send-02.xml?rev=719633&r1=719632&r2=719633&view=diff
==============================================================================
--- 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/send-02.xml
 (original)
+++ 
commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/send-02.xml
 Fri Nov 21 08:40:01 2008
@@ -25,49 +25,49 @@
          the state "seventy", then hop over and end up in "ninety" -->
     <state id="ten">
         <onentry>
-            <send event="ten.done" />
+            <send event="'ten.' + 'done'" />
         </onentry>
         <transition event="ten.done" target="twenty" />
     </state>
 
     <state id="twenty">
         <onentry>
-            <send event="twenty.done" targettype="'scxml'" />
+            <send event="'twenty.done'" targettype="'scxml'" />
         </onentry>
         <transition event="twenty.done" target="thirty" />
     </state>
 
     <state id="thirty">
         <onentry>
-            <send event="thirty.done" targettype="' sCxML  '" />
+            <send event="'thirty.done'" targettype="' sCxML  '" />
         </onentry>
         <transition event="thirty.done" target="forty" />
     </state>
 
     <state id="forty">
         <onentry>
-            <send event="forty.done" targettype=" " target=" " />
+            <send event="'forty.done'" targettype=" " target=" " />
         </onentry>
         <transition event="forty.done" target="fifty" />
     </state>
 
     <state id="fifty">
         <onentry>
-            <send event="fifty.done" target="'  '" />
+            <send event="'fifty.done'" target="'  '" />
         </onentry>
         <transition event="fifty.done" target="sixty" />
     </state>
 
     <state id="sixty">
         <onentry>
-            <send event="sixty.done" targettype="'scxml'" target=" " />
+            <send event="'sixty.done'" targettype="'scxml'" target=" " />
         </onentry>
         <transition event="sixty.done" target="seventy" />
     </state>
 
     <state id="seventy">
         <onentry>
-            <send event="seventy.done" targettype="'scxml'" target="'foo'" />
+            <send event="'seventy.done'" targettype="'scxml'" target="'foo'" />
         </onentry>
 
         <!-- This transition should not be followed since


Reply via email to