diff --git a/spring-webflow-reference/src/system-setup.xml b/spring-webflow-reference/src/system-setup.xml index 146b90e0..9a2cc999 100644 --- a/spring-webflow-reference/src/system-setup.xml +++ b/spring-webflow-reference/src/system-setup.xml @@ -59,6 +59,112 @@ flow-registry options + + This section explores flow-registry configuration options. + + + Specifying flow locations + + Use the location element to specify paths to flow definitions to register. + By default, flows will be assigned registry identifiers equal to their filenames minus the file extension, unless a registry bath path is defined. + + ]]> + + + + Assigning custom flow identifiers + + Specify an id to assign a custom registry identifier to a flow: + + ]]> + + + + Assigning flow meta-attributes + + Use the flow-definition-attributes element to assign custom meta-attributes to a registered flow: + + + + + +]]> + + + + Registering flows using a location pattern + + Use the flow-location-patterns element to register flows that match a specific resource location pattern: + + ]]> + + + + Flow location base path + + Use the base-path attribute to define a base location for all flows in the application. + All flow locations are then relative to the base path. + The base path can be a resource path such as '/WEB-INF' or a location on the classpath like 'classpath:org/springframework/webflow/samples'. + + + +]]> + + + With a base path defined, the algorithm that assigns flow identifiers changes slightly. + Flows will now be assigned registry identifiers equal to the the path segment between their base path and file name. + For example, if a flow definition is located at '/WEB-INF/hotels/booking/booking-flow.xml' and the base path is '/WEB-INF' the remaining path to this flow is 'hotels/booking' which becomes the flow id. + + + Directory per flow definition + + Recall it is a best practice to package each flow definition in a unique directory. + This improves modularity, allowing dependent resources to be packaged with the flow definition. + It also prevents two flows from having the same identifiers when using the convention. + + + + If no base path is not specified or if the flow definition is directly on the base path, flow id assignment from the filename (minus the extension) is used. + For example, if a flow definition file is 'booking.xml', the flow identifier is simply 'booking'. + + + Location patterns are particularly powerful when combined with a registry base path. + Instead of the flow identifiers becoming '*-flow', they will be based on the directory path. + For example: + + + +]]> + + + In the above example, suppose you had flows located in /user/login, /user/registration, /hotels/booking, and /flights/booking directories within WEB-INF, + you'd end up with flow ids of user/login, user/registration, hotels/booking, and flights/booking, respectively. + + + + Configuring FlowRegistry hierarchies + + Use the parent attribute to link two flow registries together in a hierarchy. + When the child registry is queried, if it cannot find the requested flow it will delegate to its parent. + + + + + + + + + +]]> + + Configuring custom FlowBuilder services @@ -121,110 +227,12 @@ - - Configuring FlowRegistry hierarchies - - Use the parent attribute to link two flow registries together in a hierarchy. - When the child registry is queried, if it cannot find the requested flow it will delegate to its parent. - - - - - - - - - -]]> - - - - Flow location base path - - Use the base-path attribute to define the base location of all flow definitions for the application. - All flow locations, for the registry, are loaded relative to the base path. - The base path can be a file path such as '/WEB-INF' or a location on the classpath like 'classpath:org/springframework/webflow/samples'. - - - ... -]]> - - - When a base path is defined, the convention is different to determine the default flow identifier. - The default identifier is determined from the path to the flow definition between the base path and the file name. - For example, if a flow definition is located at '/WEB-INF/hotels/booking/booking-flow.xml' and the base path is '/WEB-INF' the remaining path to the flow definition file is 'hotels/booking' which becomes the flow identifier. - - - Directory per flow definition - - It is a best practice to package each flow definition in a unique directory. - This allows flow specific resources to be packaged with the flow definition. - It also prevents two flows from obtaining the same identifier by convention. - - - - If the base path is not specified or if the flow definition is directly on the base path, the filename (without the extension) is used. - For example, if a flow definition file is 'booking.xml', the flow identifier is 'booking'. - - - - Specifying flow locations - - Use the location element to specify paths to flow definitions to register. - By default, flows will be assigned registry identifiers equal to their filenames minus the file extension, unless a registry bath path is defined. - See Flow location base path for more information. - - ]]> - - - - Assigning custom flow identifiers - - Specify an id to assign a custom registry identifier to a flow: - - ]]> - - - - Assigning flow meta-attributes - - Use the flow-definition-attributes element to assign custom meta-attributes to a registered flow: - - - - - - -]]> - - - - Registering flows using a location pattern - - Use the flow-location-patterns element to register flows that match a specific resource location pattern: - - ]]> - - - Location patterns are particularly powerful when combined with a registry base path. - Instead of the flow identifiers becoming '*-flow', they will be based on the path represented by '**'. - For example: - - - -]]> - - flow-executor options + + This section explores flow-executor configuration options. + Attaching flow execution listeners