diff --git a/spring-binding/src/main/java/org/springframework/binding/convert/ConversionService.java b/spring-binding/src/main/java/org/springframework/binding/convert/ConversionService.java
index 0a1adb64..e6f171ef 100644
--- a/spring-binding/src/main/java/org/springframework/binding/convert/ConversionService.java
+++ b/spring-binding/src/main/java/org/springframework/binding/convert/ConversionService.java
@@ -40,11 +40,10 @@ public interface ConversionService {
throws ConversionExecutorNotFoundException;
/**
- * Lookup a class by its fully qualified name or alias. As an example, for Long.class the fully qualified class name
- * is java.lang.Long and the alias is long.
- * @param name the fully qualified class name or alias
- * @return the class
+ * Lookup a class by it alias. For example, long for java.lang.Long
+ * @param alias the class alias
+ * @return the class, or null if no alias exists
*/
- public Class getClassByName(String name);
+ public Class getClassForAlias(String alias);
}
\ No newline at end of file
diff --git a/spring-binding/src/main/java/org/springframework/binding/convert/converters/PropertyEditorConverter.java b/spring-binding/src/main/java/org/springframework/binding/convert/converters/PropertyEditorConverter.java
new file mode 100644
index 00000000..43424695
--- /dev/null
+++ b/spring-binding/src/main/java/org/springframework/binding/convert/converters/PropertyEditorConverter.java
@@ -0,0 +1,28 @@
+package org.springframework.binding.convert.converters;
+
+import java.beans.PropertyEditor;
+
+public class PropertyEditorConverter extends StringToObject {
+
+ private PropertyEditor propertyEditor;
+
+ public PropertyEditorConverter(PropertyEditor propertyEditor, Class targetClass) {
+ super(targetClass);
+ this.propertyEditor = propertyEditor;
+ }
+
+ protected Object toObject(String string, Class targetClass) throws Exception {
+ synchronized (propertyEditor) {
+ propertyEditor.setAsText(string);
+ return propertyEditor.getValue();
+ }
+ }
+
+ protected String toString(Object object) throws Exception {
+ synchronized (propertyEditor) {
+ propertyEditor.setValue(object);
+ return propertyEditor.getAsText();
+ }
+ }
+
+}
diff --git a/spring-binding/src/main/java/org/springframework/binding/convert/service/GenericConversionService.java b/spring-binding/src/main/java/org/springframework/binding/convert/service/GenericConversionService.java
index cd5a88ef..96e5c676 100644
--- a/spring-binding/src/main/java/org/springframework/binding/convert/service/GenericConversionService.java
+++ b/spring-binding/src/main/java/org/springframework/binding/convert/service/GenericConversionService.java
@@ -32,7 +32,6 @@ import org.springframework.binding.convert.converters.ObjectToArray;
import org.springframework.binding.convert.converters.ReverseConverter;
import org.springframework.binding.convert.converters.TwoWayConverter;
import org.springframework.util.Assert;
-import org.springframework.util.ClassUtils;
/**
* Base implementation of a conversion service. Initially empty, e.g. no converters are registered by default.
@@ -160,22 +159,15 @@ public class GenericConversionService implements ConversionService {
}
}
- public Class getClassByName(String name) throws IllegalArgumentException {
+ public Class getClassForAlias(String name) throws IllegalArgumentException {
Class clazz = (Class) aliasMap.get(name);
if (clazz != null) {
return clazz;
} else {
if (parent != null) {
- return parent.getClassByName(name);
+ return parent.getClassForAlias(name);
} else {
- try {
- return ClassUtils.forName(name);
- } catch (ClassNotFoundException e) {
- IllegalArgumentException iae = new IllegalArgumentException(
- "No Class alias or instance found with name '" + name + "' in this ConversionService");
- iae.initCause(e);
- throw iae;
- }
+ return null;
}
}
}
diff --git a/spring-faces/src/test/java/org/springframework/faces/config/FacesFlowBuilderServicesBeanDefinitionParserTests.java b/spring-faces/src/test/java/org/springframework/faces/config/FacesFlowBuilderServicesBeanDefinitionParserTests.java
index 9de063f0..d7f30c90 100644
--- a/spring-faces/src/test/java/org/springframework/faces/config/FacesFlowBuilderServicesBeanDefinitionParserTests.java
+++ b/spring-faces/src/test/java/org/springframework/faces/config/FacesFlowBuilderServicesBeanDefinitionParserTests.java
@@ -76,7 +76,7 @@ public class FacesFlowBuilderServicesBeanDefinitionParserTests extends TestCase
throw new UnsupportedOperationException("Auto-generated method stub");
}
- public Class getClassByName(String name) throws ConversionExecutionException {
+ public Class getClassForAlias(String name) throws ConversionExecutionException {
throw new UnsupportedOperationException("Auto-generated method stub");
}
}
diff --git a/spring-faces/src/test/java/org/springframework/faces/ui/DojoDecorationRendererTests.java b/spring-faces/src/test/java/org/springframework/faces/ui/DojoDecorationRendererTests.java
index a63986fd..52d316a1 100644
--- a/spring-faces/src/test/java/org/springframework/faces/ui/DojoDecorationRendererTests.java
+++ b/spring-faces/src/test/java/org/springframework/faces/ui/DojoDecorationRendererTests.java
@@ -44,7 +44,6 @@ public class DojoDecorationRendererTests extends TestCase {
UIInput childComponent = new UIInput();
childComponent.setValue(new TestValue());
DojoDecorationRenderer renderer = new DojoDecorationRenderer();
-
try {
renderer.getValueAsString(jsf.facesContext(), childComponent);
fail("getValueAsString should throw exception if no converter is found");
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/config/FlowExecutorFactoryBean.java b/spring-webflow/src/main/java/org/springframework/webflow/config/FlowExecutorFactoryBean.java
index df5682c7..3a4de595 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/config/FlowExecutorFactoryBean.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/config/FlowExecutorFactoryBean.java
@@ -219,6 +219,6 @@ class FlowExecutorFactoryBean implements FactoryBean, ApplicationContextAware, I
}
private Class fromStringToClass(String name) {
- return conversionService.getClassByName(name);
+ return conversionService.getClassForAlias(name);
}
}
\ No newline at end of file
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/config/FlowRegistryFactoryBean.java b/spring-webflow/src/main/java/org/springframework/webflow/config/FlowRegistryFactoryBean.java
index c4097f08..b03f4fde 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/config/FlowRegistryFactoryBean.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/config/FlowRegistryFactoryBean.java
@@ -237,7 +237,7 @@ class FlowRegistryFactoryBean implements FactoryBean, InitializingBean {
}
private Class fromStringToClass(String type) {
- return flowBuilderServices.getConversionService().getClassByName(type);
+ return flowBuilderServices.getConversionService().getClassForAlias(type);
}
private FlowDefinition buildFlowDefinition(FlowBuilderInfo builderInfo) {
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 e164acbf..d8130b45 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
@@ -910,7 +910,7 @@ public class FlowModelFlowBuilder extends AbstractFlowBuilder {
}
private Class toClass(String name) {
- return getLocalContext().getConversionService().getClassByName(name);
+ return getLocalContext().getConversionService().getClassForAlias(name);
}
private static class FlowRelativeResourceLoader implements ResourceLoader {
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 0dc3d209..aef036f1 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
@@ -124,8 +124,8 @@ public class FlowBuilderContextImpl implements FlowBuilderContext {
return getFlowBuilderServices().getConversionService().getConversionExecutor(sourceClass, targetClass);
}
- public Class getClassByName(String name) {
- return getFlowBuilderServices().getConversionService().getClassByName(name);
+ public Class getClassForAlias(String name) {
+ return getFlowBuilderServices().getConversionService().getClassForAlias(name);
}
}
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 904bbb02..48315a78 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
@@ -59,7 +59,7 @@ public class FlowBuilderServicesBeanDefinitionParserTests extends TestCase {
throw new UnsupportedOperationException("Auto-generated method stub");
}
- public Class getClassByName(String alias) throws ConversionExecutionException {
+ public Class getClassForAlias(String alias) throws ConversionExecutionException {
throw new UnsupportedOperationException("Auto-generated method stub");
}