Proper handling of SCXML events
-------------------------------

                 Key: SCXML-142
                 URL: https://issues.apache.org/jira/browse/SCXML-142
             Project: Commons SCXML
          Issue Type: Sub-task
    Affects Versions: GSoC
            Reporter: Jacob Beard
            Assignee: Jacob Beard


Current implementation is not fully compliant with 
http://www.w3.org/TR/scxml/#events. Specifically:

{quote}
Events have names which are matched against the "event" attribute of 
transitions. These names are strings consisting of alphanumeric characters plus 
the character '.' which is used to segment names into tokens. The "event" 
attribute of a transition consists of one or more event designators separated 
by spaces. A transition matches an event if one of its event designators is 
identical to the event's name or if it is a sequence of tokens that form a 
prefix of the event's name. Thus a transition with an "event" attribute of 
'error foo' will match events named 'error', 'error.send', 'error.send.failed', 
etc. (or 'foo', 'foo.bar' etc.) but would not match events named 
'errors.my.custom' or 'errorhandler.mistake' (or 'foobar'). For compatibility 
with CCXML, and to make the prefix matching possibly more clear to a reader of 
the SCXML document, an event designator may also end with the wildcard '.*', 
which matches zero or more tokens at the end of the processed event's name. 
Note that a transition with "event" of 'error' and one with 'error.*' are 
functionally equivalent since the transition selection algorithm always runs 
prefix matching on the "event" attribute. As further syntactic sugar, an event 
designator consisting solely of '*' can be used as a wildcard matching any 
sequence of tokens which thus will match any event. Note that this is different 
from a transition lacking the "event" attribute altogether. Such an eventless 
transition does not match any event, but will be taken whenever its "cond" 
attribute evaluates to 'true'. As shown in B Algorithm for SCXML 
Interpretation, the SCXML interpreter will check for such eventless transitions 
when it first enters a state, before it looks for transitions driven by 
internal or external events.
{quote}

Currently, SCXML events are simply enumerated for efficiency. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to