Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Proposal for Commons SCXML

Wiki Markup
\[I\] Rationale:

Wiki Markup
The World Wide Web Consortium (W3C) Voice Browser Working Group recently announced the publication of the first Working Draft of State Chart XML (SCXML) \[1\]. SCXML provides a generic state-machine based execution environment based on CCXML and Harel State Tables. SCXML is a candidate for the control language within multiple markup languages coming out of the W3C (see Working Draft for details). There are potential use cases for SCXML within Apache projects. The availability of an SCXML engine as a Jakarta Commons library will be of much benefit.

No such library exists in Jakarta Commons (or anywhere else, AFAIK, under ASF license).

Wiki Markup
\[II\] Scope:

The package shall create and maintain an SCXML engine, capable of executing a state machine defined using a SCXML document, while abstracting out the environment interfaces. The codebase will be in Java, distributed under the ASF license.

Wiki Markup
\[III\] Dependencies:

The SCXML codebase has the following dependencies:

a) Commons Digester

b) Commons Logging

Expression evaluation in SCXML documents is environment specific, the expression evaluator and context of evaluation is envisioned to be "pluggable", and the project possibly producing a commons-scxml-core.jar and adapters for various environments. The existing code provides an example for the servlet/JSP environment using:

c) Commons EL

The minimum JDK version shall be 1.4

Wiki Markup
\[IV\] Code Provenance:

Wiki Markup
The authors of this original work are Jaroslav Gergic and Rahul Akolkar, and the code was contributed to Jakarta Taglibs, as part of the RDC Taglib \[2\]. The code is already distributed under the Apache license, in the RDC nightlies.

Wiki Markup
Source is available for viewing \[3\]

Wiki Markup
Javadoc is available as part of the RDC Javadoc \[4\]

Wiki Markup
\[V\] Naming, Resources and Conventions:

The base name for the proposed package will be:

org.apache.commons.scxml

The project will use the Jakarta Commons user and dev mailing lists, will create a component repository named "scxml" (lower case) in SVN under commons-sandbox and will be listed as "SCXML" (upper case) in the component list under the Jakarta-Commons Bugzilla entry. Sun Java conventions shall be used for coding style.

Wiki Markup
\[VI\] Committer Interest:

Wiki Markup
The following Apache committers have expressed interest in the creation of this Commons Sandbox component \[5\]:

A ) Martin Cooper

B ) Rahul Akolkar

Wiki Markup
The RDC Taglib will have a dependency on Commons SCXML, so we have at least one immediate user project within Apache. The RDC Taglib is one of the active tag libraries in Jakarta Taglibs, with a 1.0 release cut couple of weeks ago \[6\]. The SCXML code is under development \[7\], and was not part of the 1.0 release.

-Rahul Akolkar

Reference Links:

Wiki Markup
\[1\] [W3C SCXML Working Draft|http://www.w3.org/TR/2005/WD-scxml-20050705/]

Wiki Markup
\[2\] [Reusable Dialog Components (RDC) Taglib |http://jakarta.apache.org/taglibs/doc/rdc-doc/intro.html]

Wiki Markup
\[3\] [SCXML codebase, direct|http://svn.apache.org/repos/asf/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/] (now obsolete)

Wiki Markup
\[4\] [SCXML Javadoc|http://jakarta.apache.org/taglibs/doc/rdc-doc/javadoc/index.html] (now obsolete)

Wiki Markup
\[5\] [The thread on taglibs-dev that initiated this proposal|http://mail-archives.apache.org/mod_mbox/jakarta-taglibs-dev/200508.mbox/%3c16d6c62005080408143d2361c5@mail.gmail.com%3e]

Wiki Markup
\[6\] [RDC Taglib 1.0 release news item|http://jakarta.apache.org/site/news/news-2005-q3.html#20050726.1]

Wiki Markup
\[7\] [Status of SCXML codebase (from RDC Taglib revision history), see revision posting on 07/29/05|http://jakarta.apache.org/taglibs/doc/rdc-doc/changes.html]