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.