##### Commons SCXML Resources

- Overview
- User Guide
- Javadoc
- FAQ
- Usecases
  - SCXML Stopwatch
  - SCXML in RDC group container
  - SCXML in Shale dialogs
- Building
- Dependencies
- Mailing lists
- Team
- SVN repository
- Nightly snapshots

##### Releases

- Version 0.7
- Version 0.6
- Version 0.5

##### Project Documentation

- About
- Project Info
- Project Reports
- Development Process

##### Commons

- Home
- Components
- Sandbox
- Dormant
- Volunteering
- Contributing Patches
- Building Components
- Releasing Components
- Wiki

##### Legend

- External Link
- Opens in a new window

## SCXML documents to describe Shale dialogs

Shale is "a modern web application framework, fundamentaly based on JavaServer Faces". The Shale Framework includes a Dialog Manager, to describe "conversations" or "dialogs" (involving multiple views) with the user. Such a dialog is described using a state-machine like declarative notation defined by the Shale Framework. An alternative is using SCXML to describe the Shale dialogs by introducing a `DialogNavigationHandler` that uses the Commons SCXML engine.

### Motivation

- SCXML semantics support parallelism, allowing multiple dialogs to execute at the same time (a.k.a regions), and interact with each other. This will be useful as Shale Dialog Managers evolve.
- The Commons SCXML implementation allows for registering listeners that get notified as the state machine executes (onentry, onexit, ontransition).
- Those developing multi-channel applications, or using frameworks that use SCXML for the controller bits in other contexts (e.g. RDC framework), may be inclined towards SCXML-based authoring for Shale dialogs.

## Details

Please refer to the Apache Shale website for details. The relevant module is the Shale Dialogs (Commons SCXML Implementation) module.