Status
This library is currently in SANDBOX status only.
This means that it is not yet an approved Apache MyFaces project. If not approved, then the code may be moved to a "failed projects" location and no longer maintained. APIs may also change at any time without notice. Using this code in a production system is therefore risky and not advised unless you are willing and capable to maintain your own version of this code if the project does not continue.
However we (the flow developers) obviously believe that there is a fairly good chance that this project will be approved. You are invited to join in, and help that happen!
Flow Overview
The Apache MyFaces Orchestra Flow module provides the ability to "call" a sequence of pages (called a "flow"). The called flow can "return" to the caller without complicated navigation rules. The called pages also have an entirely separate variable namespace, so that they cannot accidentally overwrite any other data, and so that all objects created during the flow are automatically discarded when the flow returns.
Data is passed in to a flow from the caller in a manner similar to a java method call, and data can be returned from the flow to the caller in an equally convenient manner
This functionality is similar to Spring WebFlow, or Trinidad PageFlow.
As with other Orchestra functionality, this is built on the principles of JSF rather than reinventing it, and tries to be as unintrusive as possible. Normal JSF navigation rules are used for inter-page navigation for example, and flows can be used with zero modification to JSF pages or backing beans. Orchestra Flow functionality can be incrementally added to existing JSF applications where needed, while leaving the rest of the application unchanged.
Orchestra Flow requires the Orchestra Core library. It is compatible with JSF1.1 and later, and requires only java 1.4.