diff --git a/build-spring-webflow/resources/changelog.txt b/build-spring-webflow/resources/changelog.txt index 7b469c18..22085cb5 100644 --- a/build-spring-webflow/resources/changelog.txt +++ b/build-spring-webflow/resources/changelog.txt @@ -14,7 +14,8 @@ Bug Fixes * Fixed bug where form:checkbox and form:checkboxes tags did not apply type conversion properly in views rendered by Web Flows (SWF-986) * Fixed bug where Errors nestedPath attribute was not respected in views rendered by Web Flow (SWF-973) * Fixed bug where Errors nestedPath attribute was not respected when using Errors API programatically within a Validator called by Web Flow (SWF-973) -* Made MessageCodesResolver pluggable on MvcViewFactoryCreator; configure a DefaultMessageCodesResolver to resolve error message codes consistent with default Spring MVC behavior (SWF-977). +* Made MessageCodesResolver pluggable on MvcViewFactoryCreator; configure a DefaultMessageCodesResolver to resolve error message codes consistent with default Spring MVC behavior (SWF-977) +* Introduced createDefaultFlowHandler hook in FlowHandlerMapping, allowing for customizing the Default FlowHandler implementation application wide (SWF-994) Improvements * Improved FlowExecution test documentation diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/servlet/FlowHandlerMapping.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/servlet/FlowHandlerMapping.java index ce8ce57c..4af933a5 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/servlet/FlowHandlerMapping.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/servlet/FlowHandlerMapping.java @@ -108,7 +108,7 @@ public class FlowHandlerMapping extends AbstractHandlerMapping { logger.debug("Mapping request with URI '" + request.getRequestURI() + "' to flow with id '" + flowId + "'"); } - return new DefaultFlowHandler(flowId); + return createDefaultFlowHandler(flowId); } if (logger.isDebugEnabled()) { logger.debug("No flow mapping found for request with URI '" + request.getRequestURI() + "'"); @@ -116,6 +116,16 @@ public class FlowHandlerMapping extends AbstractHandlerMapping { return null; } + /** + * Factory method that returns the default flow handler for the flow with the given id. Subclasses may override to + * return their own custom default FlowHandler. + * @param flowId the id of the flow to handle invocation of + * @return the default flow handler + */ + protected FlowHandler createDefaultFlowHandler(String flowId) { + return new DefaultFlowHandler(flowId); + } + private static class DefaultFlowHandler extends AbstractFlowHandler { private String flowId;