~~ Licensed to the Apache Software Foundation (ASF) under one ~~ or more contributor license agreements. See the NOTICE file ~~ distributed with this work for additional information ~~ regarding copyright ownership. The ASF licenses this file ~~ to you under the Apache License, Version 2.0 (the ~~ "License"); you may not use this file except in compliance ~~ with the License. You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, ~~ software distributed under the License is distributed on an ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~~ KIND, either express or implied. See the License for the ~~ specific language governing permissions and limitations ~~ under the License. ------ Apache MyFaces Orchestra Flow ------ 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 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.