diff --git a/spring-webflow/src/main/java/org/springframework/webflow/config/FlowBuilderServicesBeanDefinitionParser.java b/spring-webflow/src/main/java/org/springframework/webflow/config/FlowBuilderServicesBeanDefinitionParser.java
index 2a473665..987d47a0 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/config/FlowBuilderServicesBeanDefinitionParser.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/config/FlowBuilderServicesBeanDefinitionParser.java
@@ -20,7 +20,6 @@ import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.binding.convert.service.DefaultConversionService;
-import org.springframework.binding.format.registry.DefaultFormatterRegistry;
import org.springframework.util.StringUtils;
import org.springframework.webflow.engine.builder.support.FlowBuilderServices;
import org.springframework.webflow.expression.DefaultExpressionParserFactory;
@@ -39,21 +38,11 @@ class FlowBuilderServicesBeanDefinitionParser extends AbstractSingleBeanDefiniti
}
protected void doParse(Element element, ParserContext context, BeanDefinitionBuilder builder) {
- parseFormatterRegistry(element, builder, context);
parseConversionService(element, builder, context);
parseExpressionParser(element, builder, context);
parseViewFactoryCreator(element, builder, context);
}
- private void parseFormatterRegistry(Element element, BeanDefinitionBuilder definitionBuilder, ParserContext context) {
- String formatterRegistry = element.getAttribute("formatter-registry");
- if (StringUtils.hasText(formatterRegistry)) {
- definitionBuilder.addPropertyReference("formatterRegistry", formatterRegistry);
- } else {
- definitionBuilder.addPropertyValue("formatterRegistry", DefaultFormatterRegistry.getSharedInstance());
- }
- }
-
private void parseConversionService(Element element, BeanDefinitionBuilder definitionBuilder, ParserContext context) {
String conversionService = element.getAttribute("conversion-service");
if (StringUtils.hasText(conversionService)) {
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/config/FlowRegistryBeanDefinitionParser.java b/spring-webflow/src/main/java/org/springframework/webflow/config/FlowRegistryBeanDefinitionParser.java
index c4d64c15..44fa55d3 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/config/FlowRegistryBeanDefinitionParser.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/config/FlowRegistryBeanDefinitionParser.java
@@ -28,7 +28,6 @@ import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.binding.convert.service.DefaultConversionService;
-import org.springframework.binding.format.registry.DefaultFormatterRegistry;
import org.springframework.util.StringUtils;
import org.springframework.util.xml.DomUtils;
import org.springframework.webflow.engine.builder.support.FlowBuilderServices;
@@ -127,7 +126,6 @@ class FlowRegistryBeanDefinitionParser extends AbstractSingleBeanDefinitionParse
private BeanDefinition createDefaultFlowBuilderServices(ParserContext context) {
BeanDefinitionBuilder defaultBuilder = BeanDefinitionBuilder.genericBeanDefinition(FlowBuilderServices.class);
- defaultBuilder.addPropertyValue("formatterRegistry", DefaultFormatterRegistry.getSharedInstance());
defaultBuilder.addPropertyValue("conversionService", DefaultConversionService.getSharedInstance());
defaultBuilder.addPropertyValue("expressionParser", DefaultExpressionParserFactory.getExpressionParser());
defaultBuilder.addPropertyValue("viewFactoryCreator", BeanDefinitionBuilder.genericBeanDefinition(
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/config/spring-webflow-config-2.0.xsd b/spring-webflow/src/main/java/org/springframework/webflow/config/spring-webflow-config-2.0.xsd
index b554fb56..90fbbfde 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/config/spring-webflow-config-2.0.xsd
+++ b/spring-webflow/src/main/java/org/springframework/webflow/config/spring-webflow-config-2.0.xsd
@@ -5,7 +5,7 @@
xmlns:beans="http://www.springframework.org/schema/beans"
targetNamespace="http://www.springframework.org/schema/webflow-config"
elementFormDefault="qualified" attributeFormDefault="unqualified"
- version="2.0">
+ version="2.0.3">
@@ -188,15 +188,6 @@ This tag is only needed when you wish to plugin custom implementations.
-
-
-
-
-
-
-
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/FlowBuilderContext.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/FlowBuilderContext.java
index f56fda0e..dae6da6c 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/FlowBuilderContext.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/FlowBuilderContext.java
@@ -17,7 +17,6 @@ package org.springframework.webflow.engine.builder;
import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.webflow.core.collection.AttributeMap;
import org.springframework.webflow.definition.registry.FlowDefinitionLocator;
@@ -71,12 +70,6 @@ public interface FlowBuilderContext {
*/
public ExpressionParser getExpressionParser();
- /**
- * Returns an application-wide registry of formatters for formatting view values.
- * @return the formatter registry
- */
- public FormatterRegistry getFormatterRegistry();
-
/**
* Returns the application context hosting the flow system.
* @return the application context
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/ViewFactoryCreator.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/ViewFactoryCreator.java
index 4f46e05e..8860900c 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/ViewFactoryCreator.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/ViewFactoryCreator.java
@@ -15,9 +15,9 @@
*/
package org.springframework.webflow.engine.builder;
+import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.webflow.execution.View;
import org.springframework.webflow.execution.ViewFactory;
@@ -32,11 +32,11 @@ public interface ViewFactoryCreator {
* provided identifier.
* @param viewId an expression that resolves the id of the view to render
* @param expressionParser an optional expression parser to use to resolve view expressions
- * @param formatterRegistry an optional formatter registry to use to format text values
+ * @param conversionService an optional conversion service to use to format text values
* @return the view factory
*/
public ViewFactory createViewFactory(Expression viewId, ExpressionParser expressionParser,
- FormatterRegistry formatterRegistry);
+ ConversionService conversionService);
/**
* Get the default id of the view to render in the provided view state by convention.
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/model/FlowModelFlowBuilder.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/model/FlowModelFlowBuilder.java
index d0b94346..fbfbaef0 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/model/FlowModelFlowBuilder.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/model/FlowModelFlowBuilder.java
@@ -608,7 +608,7 @@ public class FlowModelFlowBuilder extends AbstractFlowBuilder {
private ViewFactory createViewFactory(Expression viewId) {
return getLocalContext().getViewFactoryCreator().createViewFactory(viewId,
- getLocalContext().getExpressionParser(), getLocalContext().getFormatterRegistry());
+ getLocalContext().getExpressionParser(), getLocalContext().getConversionService());
}
private ViewVariable[] parseViewVariables(List vars) {
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/model/LocalFlowBuilderContext.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/model/LocalFlowBuilderContext.java
index 5b1d1930..23da90b3 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/model/LocalFlowBuilderContext.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/model/LocalFlowBuilderContext.java
@@ -17,7 +17,6 @@ package org.springframework.webflow.engine.builder.model;
import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.webflow.core.collection.AttributeMap;
@@ -86,14 +85,6 @@ class LocalFlowBuilderContext implements FlowBuilderContext {
}
}
- public FormatterRegistry getFormatterRegistry() {
- if (localFlowContext.containsLocalBean("formatterRegistry")) {
- return (FormatterRegistry) localFlowContext.getBean("formatterRegistry", FormatterRegistry.class);
- } else {
- return parent.getFormatterRegistry();
- }
- }
-
public ExpressionParser getExpressionParser() {
if (localFlowContext.containsLocalBean("expressionParser")) {
return (ExpressionParser) localFlowContext.getBean("expressionParser", ExpressionParser.class);
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/FlowBuilderContextImpl.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/FlowBuilderContextImpl.java
index a829315f..9d860e13 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/FlowBuilderContextImpl.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/FlowBuilderContextImpl.java
@@ -20,7 +20,6 @@ import org.springframework.binding.convert.ConversionExecutor;
import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.convert.service.GenericConversionService;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.util.Assert;
import org.springframework.webflow.core.collection.AttributeMap;
@@ -94,10 +93,6 @@ public class FlowBuilderContextImpl implements FlowBuilderContext {
return flowBuilderServices.getViewFactoryCreator();
}
- public FormatterRegistry getFormatterRegistry() {
- return flowBuilderServices.getFormatterRegistry();
- }
-
public ExpressionParser getExpressionParser() {
return flowBuilderServices.getExpressionParser();
}
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/FlowBuilderServices.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/FlowBuilderServices.java
index e429c4cd..6156a3ad 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/FlowBuilderServices.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/FlowBuilderServices.java
@@ -19,7 +19,6 @@ import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.util.Assert;
@@ -60,11 +59,6 @@ public class FlowBuilderServices implements ApplicationContextAware, Initializin
*/
private ConversionService conversionService;
- /**
- * The service for formatting string values for display in a UI.
- */
- private FormatterRegistry formatterRegistry;
-
/**
* The parser for parsing expression strings into expression objects. The default is Web Flow's default expression
* parser implementation.
@@ -100,14 +94,6 @@ public class FlowBuilderServices implements ApplicationContextAware, Initializin
this.conversionService = conversionService;
}
- public FormatterRegistry getFormatterRegistry() {
- return formatterRegistry;
- }
-
- public void setFormatterRegistry(FormatterRegistry formatterRegistry) {
- this.formatterRegistry = formatterRegistry;
- }
-
public ExpressionParser getExpressionParser() {
return expressionParser;
}
@@ -132,7 +118,6 @@ public class FlowBuilderServices implements ApplicationContextAware, Initializin
Assert.notNull(flowArtifactFactory, "The FlowArtifactFactory is required");
Assert.notNull(viewFactoryCreator, "The ViewFactoryCreator is required");
Assert.notNull(conversionService, "The type ConversionService is required");
- Assert.notNull(formatterRegistry, "The FormatterRegistry is required");
Assert.notNull(expressionParser, "The expressionParser is required");
Assert.notNull(applicationContext, "The ApplicationContext is required");
}
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/TextToTargetStateResolver.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/TextToTargetStateResolver.java
index 4b0a1610..ac17331d 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/TextToTargetStateResolver.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/TextToTargetStateResolver.java
@@ -15,7 +15,7 @@
*/
package org.springframework.webflow.engine.builder.support;
-import org.springframework.binding.convert.Converter;
+import org.springframework.binding.convert.converters.Converter;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
import org.springframework.binding.expression.support.FluentParserContext;
@@ -55,15 +55,15 @@ class TextToTargetStateResolver implements Converter {
this.flowBuilderContext = flowBuilderContext;
}
- public Class[] getSourceClasses() {
- return new Class[] { String.class };
+ public Class getSourceClass() {
+ return String.class;
}
- public Class[] getTargetClasses() {
- return new Class[] { TargetStateResolver.class };
+ public Class getTargetClass() {
+ return TargetStateResolver.class;
}
- public Object convert(Object source, Class targetClass, Object context) throws Exception {
+ public Object convertSourceToTargetClass(Object source, Class targetClass) throws Exception {
String targetStateId = (String) source;
if (!StringUtils.hasText(targetStateId)) {
return null;
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/TextToTransitionCriteria.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/TextToTransitionCriteria.java
index 387730d0..5122aa0e 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/TextToTransitionCriteria.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/support/TextToTransitionCriteria.java
@@ -16,7 +16,7 @@
package org.springframework.webflow.engine.builder.support;
import org.springframework.binding.convert.ConversionExecutionException;
-import org.springframework.binding.convert.Converter;
+import org.springframework.binding.convert.converters.Converter;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
import org.springframework.binding.expression.support.FluentParserContext;
@@ -59,15 +59,15 @@ class TextToTransitionCriteria implements Converter {
this.flowBuilderContext = flowBuilderContext;
}
- public Class[] getSourceClasses() {
- return new Class[] { String.class };
+ public Class getSourceClass() {
+ return String.class;
}
- public Class[] getTargetClasses() {
- return new Class[] { TransitionCriteria.class };
+ public Class getTargetClass() {
+ return TransitionCriteria.class;
}
- public Object convert(Object source, Class targetClass, Object context) throws Exception {
+ public Object convertSourceToTargetClass(Object source, Class targetClass) throws Exception {
String encodedCriteria = (String) source;
ExpressionParser parser = flowBuilderContext.getExpressionParser();
if (!StringUtils.hasText(encodedCriteria)
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/builder/MvcViewFactoryCreator.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/builder/MvcViewFactoryCreator.java
index 0fb00df8..48deadd0 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/builder/MvcViewFactoryCreator.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/builder/MvcViewFactoryCreator.java
@@ -17,9 +17,9 @@ package org.springframework.webflow.mvc.builder;
import java.util.List;
+import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.web.servlet.View;
@@ -115,11 +115,11 @@ public class MvcViewFactoryCreator implements ViewFactoryCreator, ApplicationCon
}
public ViewFactory createViewFactory(Expression viewId, ExpressionParser expressionParser,
- FormatterRegistry formatterRegistry) {
+ ConversionService conversionService) {
if (environment == MvcEnvironment.SERVLET) {
- return new ServletMvcViewFactory(viewId, flowViewResolver, expressionParser, formatterRegistry);
+ return new ServletMvcViewFactory(viewId, flowViewResolver, expressionParser, conversionService);
} else if (environment == MvcEnvironment.PORTLET) {
- return new PortletMvcViewFactory(viewId, flowViewResolver, expressionParser, formatterRegistry);
+ return new PortletMvcViewFactory(viewId, flowViewResolver, expressionParser, conversionService);
} else {
throw new IllegalStateException("Web MVC Environment " + environment + " not supported ");
}
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/portlet/PortletMvcViewFactory.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/portlet/PortletMvcViewFactory.java
index f7091cf9..c40af945 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/portlet/PortletMvcViewFactory.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/portlet/PortletMvcViewFactory.java
@@ -15,9 +15,9 @@
*/
package org.springframework.webflow.mvc.portlet;
+import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.web.servlet.View;
import org.springframework.webflow.execution.RequestContext;
import org.springframework.webflow.mvc.view.AbstractMvcView;
@@ -31,22 +31,15 @@ import org.springframework.webflow.mvc.view.FlowViewResolver;
*/
public class PortletMvcViewFactory extends AbstractMvcViewFactory {
- /**
- * Creates a new portlet mvc view factory.
- * @param viewId the view id expression
- * @param viewResolver the flow view resolver
- * @param expressionParser the expression parser
- * @param formatterRegistry the view formatter registry
- */
public PortletMvcViewFactory(Expression viewId, FlowViewResolver viewResolver, ExpressionParser expressionParser,
- FormatterRegistry formatterRegistry) {
- super(viewId, viewResolver, expressionParser, formatterRegistry);
+ ConversionService conversionService) {
+ super(viewId, viewResolver, expressionParser, conversionService);
}
protected AbstractMvcView createMvcView(View view, RequestContext context) {
PortletMvcView mvcView = new PortletMvcView(view, context);
mvcView.setExpressionParser(getExpressionParser());
- mvcView.setFormatterRegistry(getFormatterRegistry());
+ mvcView.setConversionService(getConversionService());
return mvcView;
}
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/servlet/ServletMvcViewFactory.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/servlet/ServletMvcViewFactory.java
index fe895cd6..3d4cd3ba 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/servlet/ServletMvcViewFactory.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/servlet/ServletMvcViewFactory.java
@@ -15,9 +15,9 @@
*/
package org.springframework.webflow.mvc.servlet;
+import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.web.servlet.View;
import org.springframework.webflow.execution.RequestContext;
import org.springframework.webflow.mvc.view.AbstractMvcView;
@@ -32,14 +32,14 @@ import org.springframework.webflow.mvc.view.FlowViewResolver;
public class ServletMvcViewFactory extends AbstractMvcViewFactory {
public ServletMvcViewFactory(Expression viewId, FlowViewResolver viewResolver, ExpressionParser expressionParser,
- FormatterRegistry formatterRegistry) {
- super(viewId, viewResolver, expressionParser, formatterRegistry);
+ ConversionService conversionService) {
+ super(viewId, viewResolver, expressionParser, conversionService);
}
protected AbstractMvcView createMvcView(View view, RequestContext context) {
ServletMvcView mvcView = new ServletMvcView(view, context);
mvcView.setExpressionParser(getExpressionParser());
- mvcView.setFormatterRegistry(getFormatterRegistry());
+ mvcView.setConversionService(getConversionService());
return mvcView;
}
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcView.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcView.java
index 5663c960..3999cb29 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcView.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcView.java
@@ -27,23 +27,19 @@ import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.BeanFactory;
-import org.springframework.binding.convert.ConversionExecutionException;
-import org.springframework.binding.convert.ConversionExecutor;
+import org.springframework.binding.convert.ConversionService;
+import org.springframework.binding.convert.service.DefaultConversionService;
import org.springframework.binding.expression.EvaluationException;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
import org.springframework.binding.expression.ParserContext;
import org.springframework.binding.expression.support.FluentParserContext;
import org.springframework.binding.expression.support.StaticExpression;
-import org.springframework.binding.format.Formatter;
-import org.springframework.binding.format.FormatterRegistry;
-import org.springframework.binding.format.InvalidFormatException;
import org.springframework.binding.mapping.MappingResult;
import org.springframework.binding.mapping.MappingResults;
import org.springframework.binding.mapping.MappingResultsCriteria;
import org.springframework.binding.mapping.impl.DefaultMapper;
import org.springframework.binding.mapping.impl.DefaultMapping;
-import org.springframework.binding.mapping.impl.DefaultMappingContext;
import org.springframework.binding.message.MessageBuilder;
import org.springframework.binding.message.MessageContext;
import org.springframework.binding.message.MessageContextErrors;
@@ -52,7 +48,6 @@ import org.springframework.util.ReflectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
-import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.util.WebUtils;
import org.springframework.webflow.core.collection.ParameterMap;
import org.springframework.webflow.definition.TransitionDefinition;
@@ -82,7 +77,7 @@ public abstract class AbstractMvcView implements View {
private ExpressionParser expressionParser = DefaultExpressionParserFactory.getExpressionParser();
- private FormatterRegistry formatterRegistry;
+ private ConversionService conversionService = DefaultConversionService.getSharedInstance();
private MappingResults mappingResults;
@@ -94,8 +89,6 @@ public abstract class AbstractMvcView implements View {
private String fieldMarkerPrefix = "_";
- private ConversionExecutor bindingTypeConverter;
-
/**
* Creates a new MVC view.
* @param view the Spring MVC view to render
@@ -118,9 +111,8 @@ public abstract class AbstractMvcView implements View {
* Sets the formatter registry to use to expose formatters for field values.
* @param formatterRegistry the formatter registry
*/
- public void setFormatterRegistry(FormatterRegistry formatterRegistry) {
- this.formatterRegistry = formatterRegistry;
- bindingTypeConverter = new FormatterBackedMappingConversionExecutor(this.formatterRegistry);
+ public void setConversionService(ConversionService conversionService) {
+ this.conversionService = conversionService;
}
/**
@@ -248,7 +240,7 @@ public abstract class AbstractMvcView implements View {
Object modelObject = getModelObject();
if (modelObject != null) {
BindingModel bindingModel = new BindingModel(getModelExpression().getExpressionString(), modelObject,
- expressionParser, formatterRegistry, requestContext.getMessageContext());
+ expressionParser, conversionService, requestContext.getMessageContext());
bindingModel.setMappingResults(mappingResults);
model.put(BindingResult.MODEL_KEY_PREFIX + getModelExpression().getExpressionString(), bindingModel);
}
@@ -283,6 +275,7 @@ public abstract class AbstractMvcView implements View {
logger.debug("Setting up view->model mappings");
}
DefaultMapper mapper = new DefaultMapper();
+ mapper.setConversionService(conversionService);
ParameterMap requestParameters = requestContext.getRequestParameters();
addDefaultMappings(mapper, requestParameters.asMap().keySet(), model);
return mapper.map(requestParameters, model);
@@ -357,7 +350,6 @@ public abstract class AbstractMvcView implements View {
ParserContext parserContext = new FluentParserContext().evaluate(model.getClass());
Expression target = expressionParser.parseExpression(parameter, parserContext);
DefaultMapping mapping = new DefaultMapping(source, target);
- mapping.setTypeConverter(bindingTypeConverter);
if (logger.isDebugEnabled()) {
logger.debug("Adding mapping for parameter '" + parameter + "'");
}
@@ -460,78 +452,7 @@ public abstract class AbstractMvcView implements View {
}
public String toString() {
- return parameterName;
+ return "parameter:'" + parameterName + "'";
}
-
}
-
- private static class FormatterBackedMappingConversionExecutor implements ConversionExecutor {
-
- private FormatterRegistry formatterRegistry;
-
- public FormatterBackedMappingConversionExecutor(FormatterRegistry formatterRegistry) {
- this.formatterRegistry = formatterRegistry;
- }
-
- public Object execute(Object source) throws ConversionExecutionException {
- throw new UnsupportedOperationException("Should never be called");
- }
-
- public Object execute(Object source, Object context) throws ConversionExecutionException {
- if (source instanceof MultipartFile) {
- // for the case of MultipartFile parameters; nothing to do
- return source;
- }
- if (source instanceof String[]) {
- return source;
- }
- String formattedValue = (String) source;
- DefaultMappingContext mappingContext = (DefaultMappingContext) context;
- Expression target = mappingContext.getCurrentMapping().getTargetExpression();
- Class targetClass = getTargetClass();
- if (targetClass == null) {
- try {
- targetClass = target.getValueType(mappingContext.getTarget());
- } catch (EvaluationException e) {
- // ignore
- }
- }
- if (targetClass == null) {
- return formattedValue;
- }
- Formatter formatter = getFormatter(target, targetClass);
- if (formatter != null) {
- try {
- return formatter.parse(formattedValue);
- } catch (InvalidFormatException e) {
- throw new ConversionExecutionException(formattedValue, String.class, targetClass, e);
- }
- } else {
- return formattedValue;
- }
- }
-
- private Formatter getFormatter(Expression target, Class targetClass) {
- if (formatterRegistry != null) {
- Formatter formatter = formatterRegistry.getFormatter(targetClass, target.getExpressionString());
- if (formatter != null) {
- return formatter;
- } else {
- return formatterRegistry.getFormatter(targetClass);
- }
- } else {
- return null;
- }
- }
-
- public Class getSourceClass() {
- return String.class;
- }
-
- public Class getTargetClass() {
- return null;
- }
-
- }
-
}
\ No newline at end of file
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcViewFactory.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcViewFactory.java
index b002139e..5da93f11 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcViewFactory.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcViewFactory.java
@@ -15,9 +15,9 @@
*/
package org.springframework.webflow.mvc.view;
+import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.webflow.execution.RequestContext;
import org.springframework.webflow.execution.View;
import org.springframework.webflow.execution.ViewFactory;
@@ -35,22 +35,22 @@ public abstract class AbstractMvcViewFactory implements ViewFactory {
private ExpressionParser expressionParser;
- private FormatterRegistry formatterRegistry;
+ private ConversionService conversionService;
public AbstractMvcViewFactory(Expression viewId, FlowViewResolver viewResolver, ExpressionParser expressionParser,
- FormatterRegistry formatterRegistry) {
+ ConversionService conversionService) {
this.viewId = viewId;
this.viewResolver = viewResolver;
this.expressionParser = expressionParser;
- this.formatterRegistry = formatterRegistry;
+ this.conversionService = conversionService;
}
protected ExpressionParser getExpressionParser() {
return expressionParser;
}
- protected FormatterRegistry getFormatterRegistry() {
- return formatterRegistry;
+ protected ConversionService getConversionService() {
+ return conversionService;
}
public View getView(RequestContext context) {
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/BindingModel.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/BindingModel.java
index 7ab9da71..957abaac 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/BindingModel.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/BindingModel.java
@@ -19,11 +19,11 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import org.springframework.binding.convert.ConversionExecutor;
+import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
import org.springframework.binding.expression.support.FluentParserContext;
-import org.springframework.binding.format.Formatter;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.binding.mapping.MappingResult;
import org.springframework.binding.mapping.MappingResults;
import org.springframework.binding.mapping.MappingResultsCriteria;
@@ -55,7 +55,7 @@ public class BindingModel extends AbstractErrors {
private ExpressionParser expressionParser;
- private FormatterRegistry formatterRegistry;
+ private ConversionService conversionService;
private MappingResults mappingResults;
@@ -70,13 +70,13 @@ public class BindingModel extends AbstractErrors {
* @param messageContext the message context containing flow messages to display
*/
public BindingModel(String objectName, Object boundObject, ExpressionParser expressionParser,
- FormatterRegistry formatterRegistry, MessageContext messageContext) {
+ ConversionService conversionService, MessageContext messageContext) {
Assert.hasText(objectName, "The object name is required");
Assert.notNull(boundObject, "The bound object instance is required");
this.objectName = objectName;
this.boundObject = boundObject;
this.expressionParser = expressionParser;
- this.formatterRegistry = formatterRegistry;
+ this.conversionService = conversionService;
this.messageContext = messageContext;
}
@@ -131,18 +131,18 @@ public class BindingModel extends AbstractErrors {
}
private Object getFormattedValue(Expression fieldExpression) {
- Formatter formatter = getFormatter(fieldExpression);
- if (formatter != null) {
- return formatter.format(fieldExpression.getValue(boundObject));
+ ConversionExecutor converter = getConverter(fieldExpression);
+ if (converter != null) {
+ return converter.execute(fieldExpression.getValue(boundObject));
} else {
return fieldExpression.getValue(boundObject);
}
}
- private Formatter getFormatter(Expression fieldExpression) {
- if (formatterRegistry != null) {
+ private ConversionExecutor getConverter(Expression fieldExpression) {
+ if (conversionService != null) {
Class valueType = fieldExpression.getValueType(boundObject);
- return formatterRegistry.getFormatter(valueType);
+ return conversionService.getConversionExecutor(valueType, String.class);
} else {
return null;
}
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/test/MockViewFactoryCreator.java b/spring-webflow/src/main/java/org/springframework/webflow/test/MockViewFactoryCreator.java
index f5a176e8..a17e3c1b 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/test/MockViewFactoryCreator.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/test/MockViewFactoryCreator.java
@@ -17,9 +17,9 @@ package org.springframework.webflow.test;
import java.io.IOException;
+import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.webflow.engine.builder.ViewFactoryCreator;
import org.springframework.webflow.execution.Event;
import org.springframework.webflow.execution.RequestContext;
@@ -35,7 +35,7 @@ import org.springframework.webflow.execution.ViewFactory;
class MockViewFactoryCreator implements ViewFactoryCreator {
public ViewFactory createViewFactory(Expression viewId, ExpressionParser expressionParser,
- FormatterRegistry formatterRegistry) {
+ ConversionService conversionService) {
return new MockViewFactory(viewId);
}
diff --git a/spring-webflow/src/test/java/org/springframework/webflow/config/FlowBuilderServicesBeanDefinitionParserTests.java b/spring-webflow/src/test/java/org/springframework/webflow/config/FlowBuilderServicesBeanDefinitionParserTests.java
index 85cfcf28..98bc9256 100644
--- a/spring-webflow/src/test/java/org/springframework/webflow/config/FlowBuilderServicesBeanDefinitionParserTests.java
+++ b/spring-webflow/src/test/java/org/springframework/webflow/config/FlowBuilderServicesBeanDefinitionParserTests.java
@@ -8,8 +8,6 @@ import org.springframework.binding.convert.ConversionService;
import org.springframework.binding.convert.service.DefaultConversionService;
import org.springframework.binding.expression.Expression;
import org.springframework.binding.expression.ExpressionParser;
-import org.springframework.binding.format.Formatter;
-import org.springframework.binding.format.FormatterRegistry;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.webflow.engine.builder.ViewFactoryCreator;
import org.springframework.webflow.engine.builder.support.FlowBuilderServices;
@@ -39,13 +37,12 @@ public class FlowBuilderServicesBeanDefinitionParserTests extends TestCase {
assertNotNull(builderServices.getExpressionParser());
assertTrue(builderServices.getViewFactoryCreator() instanceof TestViewFactoryCreator);
assertTrue(builderServices.getConversionService() instanceof TestConversionService);
- assertTrue(builderServices.getFormatterRegistry() instanceof TestFormatterRegistry);
}
public static class TestViewFactoryCreator implements ViewFactoryCreator {
public ViewFactory createViewFactory(Expression viewIdExpression, ExpressionParser expressionParser,
- FormatterRegistry formatterRegistry) {
+ ConversionService conversionService) {
throw new UnsupportedOperationException("Auto-generated method stub");
}
@@ -78,16 +75,4 @@ public class FlowBuilderServicesBeanDefinitionParserTests extends TestCase {
}
- public static class TestFormatterRegistry implements FormatterRegistry {
-
- public Formatter getFormatter(Class clazz) {
- throw new UnsupportedOperationException("Auto-generated method stub");
- }
-
- public Formatter getFormatter(Class clazz, String id) {
- throw new UnsupportedOperationException("Auto-generated method stub");
- }
-
- }
-
-}
+}
\ No newline at end of file
diff --git a/spring-webflow/src/test/java/org/springframework/webflow/config/flow-builder-services.xml b/spring-webflow/src/test/java/org/springframework/webflow/config/flow-builder-services.xml
index 04f969d6..9e56d9de 100644
--- a/spring-webflow/src/test/java/org/springframework/webflow/config/flow-builder-services.xml
+++ b/spring-webflow/src/test/java/org/springframework/webflow/config/flow-builder-services.xml
@@ -13,15 +13,12 @@
+ conversion-service="customConversionService" />
-
-
\ No newline at end of file
diff --git a/spring-webflow/src/test/java/org/springframework/webflow/engine/builder/support/TextToTargetStateResolverTests.java b/spring-webflow/src/test/java/org/springframework/webflow/engine/builder/support/TextToTargetStateResolverTests.java
index af2fcf98..30452002 100644
--- a/spring-webflow/src/test/java/org/springframework/webflow/engine/builder/support/TextToTargetStateResolverTests.java
+++ b/spring-webflow/src/test/java/org/springframework/webflow/engine/builder/support/TextToTargetStateResolverTests.java
@@ -32,8 +32,8 @@ public class TextToTargetStateResolverTests extends TestCase {
public void testStatic() throws Exception {
String expression = "mockState";
- TargetStateResolver resolver = (TargetStateResolver) converter.convert(expression, TargetStateResolver.class,
- null);
+ TargetStateResolver resolver = (TargetStateResolver) converter.convertSourceToTargetClass(expression,
+ TargetStateResolver.class);
MockRequestContext context = new MockRequestContext();
Transition transition = new Transition();
assertEquals("mockState", resolver.resolveTargetState(transition, null, context).getId());
@@ -41,8 +41,8 @@ public class TextToTargetStateResolverTests extends TestCase {
public void testDynamic() throws Exception {
String expression = "${flowScope.lastState}";
- TargetStateResolver resolver = (TargetStateResolver) converter.convert(expression, TargetStateResolver.class,
- null);
+ TargetStateResolver resolver = (TargetStateResolver) converter.convertSourceToTargetClass(expression,
+ TargetStateResolver.class);
MockRequestContext context = new MockRequestContext();
context.getFlowScope().put("lastState", "mockState");
Transition transition = new Transition();
@@ -51,15 +51,15 @@ public class TextToTargetStateResolverTests extends TestCase {
public void testNull() throws Exception {
String expression = null;
- TargetStateResolver resolver = (TargetStateResolver) converter.convert(expression, TargetStateResolver.class,
- null);
+ TargetStateResolver resolver = (TargetStateResolver) converter.convertSourceToTargetClass(expression,
+ TargetStateResolver.class);
assertNull(resolver);
}
public void testEmpty() throws Exception {
String expression = "";
- TargetStateResolver resolver = (TargetStateResolver) converter.convert(expression, TargetStateResolver.class,
- null);
+ TargetStateResolver resolver = (TargetStateResolver) converter.convertSourceToTargetClass(expression,
+ TargetStateResolver.class);
assertNull(resolver);
}
}
\ No newline at end of file
diff --git a/spring-webflow/src/test/java/org/springframework/webflow/engine/builder/support/TextToTransitionCriteriaTests.java b/spring-webflow/src/test/java/org/springframework/webflow/engine/builder/support/TextToTransitionCriteriaTests.java
index 97d158e1..854bb3c3 100644
--- a/spring-webflow/src/test/java/org/springframework/webflow/engine/builder/support/TextToTransitionCriteriaTests.java
+++ b/spring-webflow/src/test/java/org/springframework/webflow/engine/builder/support/TextToTransitionCriteriaTests.java
@@ -41,43 +41,46 @@ public class TextToTransitionCriteriaTests extends TestCase {
public void testAny() throws Exception {
String expression = "*";
- TransitionCriteria criterion = (TransitionCriteria) converter.convert(expression, TransitionCriteria.class,
- null);
+ TransitionCriteria criterion = (TransitionCriteria) converter.convertSourceToTargetClass(expression,
+ TransitionCriteria.class);
RequestContext ctx = getRequestContext();
assertTrue("Criterion should evaluate to true", criterion.test(ctx));
- assertSame(WildcardTransitionCriteria.INSTANCE, converter.convert("*", TransitionCriteria.class, null));
- assertSame(WildcardTransitionCriteria.INSTANCE, converter.convert("", TransitionCriteria.class, null));
- assertSame(WildcardTransitionCriteria.INSTANCE, converter.convert(null, TransitionCriteria.class, null));
+ assertSame(WildcardTransitionCriteria.INSTANCE, converter.convertSourceToTargetClass("*",
+ TransitionCriteria.class));
+ assertSame(WildcardTransitionCriteria.INSTANCE, converter.convertSourceToTargetClass("",
+ TransitionCriteria.class));
+ assertSame(WildcardTransitionCriteria.INSTANCE, converter.convertSourceToTargetClass(null,
+ TransitionCriteria.class));
}
public void testStaticEventId() throws Exception {
String expression = "sample";
- TransitionCriteria criterion = (TransitionCriteria) converter.convert(expression, TransitionCriteria.class,
- null);
+ TransitionCriteria criterion = (TransitionCriteria) converter.convertSourceToTargetClass(expression,
+ TransitionCriteria.class);
RequestContext ctx = getRequestContext();
assertTrue("Criterion should evaluate to true", criterion.test(ctx));
}
public void testTrueEvaluation() throws Exception {
String expression = "${flowScope.foo == 'bar'}";
- TransitionCriteria criterion = (TransitionCriteria) converter.convert(expression, TransitionCriteria.class,
- null);
+ TransitionCriteria criterion = (TransitionCriteria) converter.convertSourceToTargetClass(expression,
+ TransitionCriteria.class);
RequestContext ctx = getRequestContext();
assertTrue("Criterion should evaluate to true", criterion.test(ctx));
}
public void testFalseEvaluation() throws Exception {
String expression = "${flowScope.foo != 'bar'}";
- TransitionCriteria criterion = (TransitionCriteria) converter.convert(expression, TransitionCriteria.class,
- null);
+ TransitionCriteria criterion = (TransitionCriteria) converter.convertSourceToTargetClass(expression,
+ TransitionCriteria.class);
RequestContext ctx = getRequestContext();
assertFalse("Criterion should evaluate to false", criterion.test(ctx));
}
public void testNonStringEvaluation() throws Exception {
String expression = "${3 + 4}";
- TransitionCriteria criterion = (TransitionCriteria) converter.convert(expression, TransitionCriteria.class,
- null);
+ TransitionCriteria criterion = (TransitionCriteria) converter.convertSourceToTargetClass(expression,
+ TransitionCriteria.class);
MockRequestContext ctx = getRequestContext();
ctx.setCurrentEvent(new Event(this, "7"));
assertTrue("Criterion should evaluate to true", criterion.test(ctx));
@@ -85,8 +88,8 @@ public class TextToTransitionCriteriaTests extends TestCase {
public void testCurrenEventEval() throws Exception {
String expression = "${currentEvent == 'submit'}";
- TransitionCriteria criterion = (TransitionCriteria) converter.convert(expression, TransitionCriteria.class,
- null);
+ TransitionCriteria criterion = (TransitionCriteria) converter.convertSourceToTargetClass(expression,
+ TransitionCriteria.class);
MockRequestContext ctx = getRequestContext();
ctx.setCurrentEvent(new Event(this, "submit"));
assertTrue("Criterion should evaluate to true", criterion.test(ctx));
@@ -98,8 +101,8 @@ public class TextToTransitionCriteriaTests extends TestCase {
return new StaticExpression(null);
}
});
- TransitionCriteria criterion = (TransitionCriteria) converter.convert("doesnt matter",
- TransitionCriteria.class, null);
+ TransitionCriteria criterion = (TransitionCriteria) converter.convertSourceToTargetClass("doesnt matter",
+ TransitionCriteria.class);
RequestContext ctx = getRequestContext();
assertFalse("Criterion should evaluate to false", criterion.test(ctx));
}
diff --git a/spring-webflow/src/test/java/org/springframework/webflow/mvc/portlet/PortletMvcViewTests.java b/spring-webflow/src/test/java/org/springframework/webflow/mvc/portlet/PortletMvcViewTests.java
index 45262edd..107e1fc1 100644
--- a/spring-webflow/src/test/java/org/springframework/webflow/mvc/portlet/PortletMvcViewTests.java
+++ b/spring-webflow/src/test/java/org/springframework/webflow/mvc/portlet/PortletMvcViewTests.java
@@ -1,15 +1,11 @@
package org.springframework.webflow.mvc.portlet;
-import java.util.Locale;
-
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import junit.framework.TestCase;
import org.easymock.EasyMock;
-import org.springframework.binding.format.formatters.DateFormatter;
-import org.springframework.binding.format.registry.DefaultFormatterRegistry;
import org.springframework.mock.web.portlet.MockPortletContext;
import org.springframework.mock.web.portlet.MockRenderRequest;
import org.springframework.mock.web.portlet.MockRenderResponse;
@@ -20,14 +16,6 @@ import org.springframework.webflow.test.MockRequestContext;
public class PortletMvcViewTests extends TestCase {
- private DefaultFormatterRegistry formatterRegistry = new DefaultFormatterRegistry();
-
- protected void setUp() {
- DateFormatter dateFormatter = new DateFormatter();
- dateFormatter.setLocale(Locale.ENGLISH);
- formatterRegistry.registerFormatter(dateFormatter);
- }
-
public void testRender() throws Exception {
RenderRequest request = new MockRenderRequest();
RenderResponse response = new MockRenderResponse();
@@ -39,7 +27,6 @@ public class PortletMvcViewTests extends TestCase {
org.springframework.web.servlet.View mvcView = (org.springframework.web.servlet.View) EasyMock
.createMock(org.springframework.web.servlet.View.class);
AbstractMvcView view = new PortletMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
view.render();
assertNotNull(request.getAttribute(ViewRendererServlet.VIEW_ATTRIBUTE));
assertNotNull(request.getAttribute(ViewRendererServlet.MODEL_ATTRIBUTE));
diff --git a/spring-webflow/src/test/java/org/springframework/webflow/mvc/servlet/ServletMvcViewTests.java b/spring-webflow/src/test/java/org/springframework/webflow/mvc/servlet/ServletMvcViewTests.java
index 953f8434..711f4f18 100644
--- a/spring-webflow/src/test/java/org/springframework/webflow/mvc/servlet/ServletMvcViewTests.java
+++ b/spring-webflow/src/test/java/org/springframework/webflow/mvc/servlet/ServletMvcViewTests.java
@@ -3,7 +3,6 @@ package org.springframework.webflow.mvc.servlet;
import java.security.Principal;
import java.util.Calendar;
import java.util.Date;
-import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -11,8 +10,6 @@ import javax.servlet.http.HttpServletResponse;
import junit.framework.TestCase;
-import org.springframework.binding.format.formatters.DateFormatter;
-import org.springframework.binding.format.registry.DefaultFormatterRegistry;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletContext;
@@ -28,14 +25,6 @@ public class ServletMvcViewTests extends TestCase {
private Map model;
- private DefaultFormatterRegistry formatterRegistry = new DefaultFormatterRegistry();
-
- protected void setUp() {
- DateFormatter dateFormatter = new DateFormatter();
- dateFormatter.setLocale(Locale.ENGLISH);
- formatterRegistry.registerFormatter(dateFormatter);
- }
-
public void testRender() throws Exception {
MockRequestContext context = new MockRequestContext();
context.getRequestScope().put("foo", "bar");
@@ -50,7 +39,6 @@ public class ServletMvcViewTests extends TestCase {
context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1"));
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new ServletMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
view.render();
assertTrue(renderCalled);
assertEquals("bar", model.get("foo"));
diff --git a/spring-webflow/src/test/java/org/springframework/webflow/mvc/view/MvcViewTests.java b/spring-webflow/src/test/java/org/springframework/webflow/mvc/view/MvcViewTests.java
index 6179c893..dfbfd948 100644
--- a/spring-webflow/src/test/java/org/springframework/webflow/mvc/view/MvcViewTests.java
+++ b/spring-webflow/src/test/java/org/springframework/webflow/mvc/view/MvcViewTests.java
@@ -5,7 +5,6 @@ import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -14,8 +13,6 @@ import javax.servlet.http.HttpServletResponse;
import junit.framework.TestCase;
import org.springframework.binding.expression.support.StaticExpression;
-import org.springframework.binding.format.formatters.DateFormatter;
-import org.springframework.binding.format.registry.DefaultFormatterRegistry;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockMultipartFile;
@@ -38,14 +35,6 @@ public class MvcViewTests extends TestCase {
private Map model;
- private DefaultFormatterRegistry formatterRegistry = new DefaultFormatterRegistry();
-
- protected void setUp() {
- DateFormatter dateFormatter = new DateFormatter();
- dateFormatter.setLocale(Locale.ENGLISH);
- formatterRegistry.registerFormatter(dateFormatter);
- }
-
public void testRender() throws Exception {
MockRequestControlContext context = new MockRequestControlContext();
context.setCurrentState(new ViewState(context.getRootFlow(), "test", new StubViewFactory()));
@@ -61,7 +50,6 @@ public class MvcViewTests extends TestCase {
context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1"));
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
view.render();
assertTrue(renderCalled);
assertEquals("bar", model.get("foo"));
@@ -91,7 +79,6 @@ public class MvcViewTests extends TestCase {
context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse());
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
view.render();
assertTrue(renderCalled);
assertEquals("bar", model.get("foo"));
@@ -119,7 +106,6 @@ public class MvcViewTests extends TestCase {
context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1"));
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
view.render();
assertEquals(context.getFlowScope().get("bindBean"), model.get("bindBean"));
BindingModel bm = (BindingModel) model.get(BindingResult.MODEL_KEY_PREFIX + "bindBean");
@@ -151,7 +137,6 @@ public class MvcViewTests extends TestCase {
context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1"));
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
view.processUserEvent();
assertTrue(view.hasFlowEvent());
assertEquals("submit", view.getFlowEvent().getId());
@@ -165,10 +150,10 @@ public class MvcViewTests extends TestCase {
context.putRequestParameter("dateProperty", "2007-01-01");
context.putRequestParameter("beanProperty.name", "foo");
context.putRequestParameter("multipartFile", new MockMultipartFile("foo", new byte[0]));
- // context.putRequestParameter("stringArrayProperty", new String[] { "foo", "bar", "baz" });
- // context.putRequestParameter("integerArrayProperty", new String[] { "1", "2", "3" });
- // context.putRequestParameter("primitiveArrayProperty", new String[] { "1", "2", "3" });
- // context.putRequestParameter("listProperty", new String[] { "1", "2", "3" });
+ context.putRequestParameter("stringArrayProperty", new String[] { "foo", "bar", "baz" });
+ context.putRequestParameter("integerArrayProperty", new String[] { "1", "2", "3" });
+ context.putRequestParameter("primitiveArrayProperty", new String[] { "1", "2", "3" });
+ context.putRequestParameter("listProperty", new String[] { "1", "2", "3" });
BindBean bindBean = new BindBean();
StaticExpression modelObject = new StaticExpression(bindBean);
modelObject.setExpressionString("bindBean");
@@ -180,7 +165,6 @@ public class MvcViewTests extends TestCase {
context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1"));
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
view.processUserEvent();
assertTrue(view.hasFlowEvent());
assertEquals("submit", view.getFlowEvent().getId());
@@ -192,22 +176,22 @@ public class MvcViewTests extends TestCase {
assertEquals(cal.getTime(), bindBean.getDateProperty());
assertEquals("foo", bindBean.getBeanProperty().getName());
assertEquals("foo", bindBean.getMultipartFile().getName());
- // assertEquals(3, bindBean.getStringArrayProperty().length);
- // assertEquals("foo", bindBean.getStringArrayProperty()[0]);
- // assertEquals("bar", bindBean.getStringArrayProperty()[1]);
- // assertEquals("baz", bindBean.getStringArrayProperty()[2]);
- // assertEquals(3, bindBean.getIntegerArrayProperty().length);
- // assertEquals(new Integer(1), bindBean.getIntegerArrayProperty()[0]);
- // assertEquals(new Integer(2), bindBean.getIntegerArrayProperty()[1]);
- // assertEquals(new Integer(3), bindBean.getIntegerArrayProperty()[2]);
- // assertEquals(3, bindBean.getPrimitiveArrayProperty().length);
- // assertEquals(1, bindBean.getPrimitiveArrayProperty()[0]);
- // assertEquals(2, bindBean.getPrimitiveArrayProperty()[1]);
- // assertEquals(3, bindBean.getPrimitiveArrayProperty()[2]);
- // assertEquals(3, bindBean.getListProperty().size());
- // assertEquals(new Integer(1), bindBean.getListProperty().get(0));
- // assertEquals(new Integer(2), bindBean.getListProperty().get(1));
- // assertEquals(new Integer(3), bindBean.getListProperty().get(2));
+ assertEquals(3, bindBean.getStringArrayProperty().length);
+ assertEquals("foo", bindBean.getStringArrayProperty()[0]);
+ assertEquals("bar", bindBean.getStringArrayProperty()[1]);
+ assertEquals("baz", bindBean.getStringArrayProperty()[2]);
+ assertEquals(3, bindBean.getIntegerArrayProperty().length);
+ assertEquals(new Integer(1), bindBean.getIntegerArrayProperty()[0]);
+ assertEquals(new Integer(2), bindBean.getIntegerArrayProperty()[1]);
+ assertEquals(new Integer(3), bindBean.getIntegerArrayProperty()[2]);
+ assertEquals(3, bindBean.getPrimitiveArrayProperty().length);
+ assertEquals(1, bindBean.getPrimitiveArrayProperty()[0]);
+ assertEquals(2, bindBean.getPrimitiveArrayProperty()[1]);
+ assertEquals(3, bindBean.getPrimitiveArrayProperty()[2]);
+ assertEquals(3, bindBean.getListProperty().size());
+ assertEquals("1", bindBean.getListProperty().get(0));
+ assertEquals("2", bindBean.getListProperty().get(1));
+ assertEquals("3", bindBean.getListProperty().get(2));
}
public void testResumeEventModelBindingAllowedFields() throws Exception {
@@ -228,7 +212,6 @@ public class MvcViewTests extends TestCase {
context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1"));
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
HashSet allowedBindFields = new HashSet();
allowedBindFields.add("stringProperty");
view.setAllowedBindFields(allowedBindFields);
@@ -259,7 +242,6 @@ public class MvcViewTests extends TestCase {
context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1"));
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
HashSet allowedBindFields = new HashSet();
allowedBindFields.add("booleanProperty");
view.setAllowedBindFields(allowedBindFields);
@@ -283,7 +265,6 @@ public class MvcViewTests extends TestCase {
context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1"));
org.springframework.web.servlet.View mvcView = new MockView();
AbstractMvcView view = new MockMvcView(mvcView, context);
- view.setFormatterRegistry(formatterRegistry);
view.processUserEvent();
assertEquals(true, bindBean.getBooleanProperty());
}