Commons SCXML is aimed at creating and maintaining an
open-source Java SCXML engine capable of executing
a state machine defined using a SCXML document, while abstracting
out the environment interfaces.
The "core" requirements for Commons SCXML are Commons Logging.
You will need to choose an expression language for your SCXML documents
(details in next section of this
FAQ). See the dependencies page
for details about the dependency versions.
Yes, you must call the marker method, SCXMLExecutor#go().
This serves as an indication that you have finished configuring the
SCXMLExecutor instance and are now ready to begin executing the state
machine described by your SCXML document. For example, you may
attach zero, one or many SCXMLListeners to interesting "nodes" within
the SCXML document, such as the document root i.e. the SCXML object,
and/or particular State and Transition objects as well. See the
SCXMLExecutor section of the
user guide for more.
Yes. The Commons SCXML object model does not store any information
related to a particular execution of the state machine. It is
therefore possible to use a single SCXML instance as the state
machine for multiple SCXMLExecutor instances. This also means that
a SCXML document needs to be parsed only once, irrespective of the
number of "instances" of the state machine that may execute.
To a certain extent. Things such as firing events on a state machine or
reseting it are threadsafe. The underlying state machine needs to
model any race conditions correctly. You have to worry about
synchronizing access to other bits if you need to.
Apache Commons, Apache Commons SCXML, Apache, the Apache feather logo, and the Apache Commons project logos are trademarks of The Apache Software Foundation.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.