[jboss-cvs] JBossAS SVN: r58414 - in projects/microcontainer/trunk: container/src/main/org/jboss/reflect/plugins kernel/src/resources/xml-test/org/jboss/test/kernel/config/test kernel/src/tests/org/jboss/test/kernel/config/test
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Nov 15 14:03:17 EST 2006
Author: scott.stark at jboss.org
Date: 2006-11-15 14:03:12 -0500 (Wed, 15 Nov 2006)
New Revision: 58414
Modified:
projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ValueConvertor.java
projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testConfigure.xml
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigureFromObjectTestCase.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigureFromStringTestCase.java
Log:
JBMICROCONT-110, add support for converting strings to enums.
Modified: projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ValueConvertor.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ValueConvertor.java 2006-11-15 18:32:47 UTC (rev 58413)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ValueConvertor.java 2006-11-15 19:03:12 UTC (rev 58414)
@@ -75,7 +75,14 @@
if (clazz.isAssignableFrom(valueClass))
return value;
- // First look for a property editor
+ // First see if this is an Enum
+ if (clazz.isEnum())
+ {
+ Class<? extends Enum> eclazz = clazz.asSubclass(Enum.class);
+ return Enum.valueOf(eclazz, value.toString());
+ }
+
+ // Next look for a property editor
if (valueClass == String.class)
{
PropertyEditor editor = PropertyEditorManager.findEditor(clazz);
Modified: projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testConfigure.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testConfigure.xml 2006-11-15 18:32:47 UTC (rev 58413)
+++ projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testConfigure.xml 2006-11-15 19:03:12 UTC (rev 58414)
@@ -24,6 +24,6 @@
<property name="adouble">3.14e12</property>
<property name="ANumber" class="java.lang.Long">12345</property>
<property name="overloadedProperty">StringValue</property>
- <property name="enumProperty">StringValue</property>
+ <property name="enumProperty">Z</property>
</bean>
</deployment>
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigureFromObjectTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigureFromObjectTestCase.java 2006-11-15 18:32:47 UTC (rev 58413)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigureFromObjectTestCase.java 2006-11-15 19:03:12 UTC (rev 58414)
@@ -125,10 +125,13 @@
assertEquals(longValue.longValue(), bean.getAlong());
assertEquals(floatValue.floatValue(), bean.getAfloat());
assertEquals(doubleValue.doubleValue(), bean.getAdouble());
+
Number number = bean.getANumber();
assertEquals(Long.class, number.getClass());
assertEquals(longValue, number);
assertEquals(stringValue, bean.getOverloadedProperty());
- assertEquals(enumValue, bean.getEnumProperty());
+
+ Alphabet anenum = bean.getEnumProperty();
+ assertEquals(enumValue, anenum);
}
-}
\ No newline at end of file
+}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigureFromStringTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigureFromStringTestCase.java 2006-11-15 18:32:47 UTC (rev 58413)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigureFromStringTestCase.java 2006-11-15 19:03:12 UTC (rev 58414)
@@ -36,6 +36,7 @@
import org.jboss.kernel.Kernel;
import org.jboss.kernel.spi.config.KernelConfigurator;
import org.jboss.test.kernel.config.support.SimpleBean;
+import org.jboss.test.kernel.config.support.SimpleBean.Alphabet;
/**
* Configuration from object Test Case.
@@ -64,6 +65,7 @@
Date dateValue = createDate("Mon Jan 01 00:00:00 CET 2001");
BigDecimal bigDecimalValue = new BigDecimal("12e4");
BigInteger bigIntegerValue = new BigInteger("123456");
+ Alphabet enumValue = Alphabet.Z;
public static Test suite()
{
@@ -110,6 +112,7 @@
assertEquals(Long.class, number.getClass());
assertEquals(longValue, number);
assertEquals(stringValue, bean.getOverloadedProperty());
+ assertEquals(enumValue, bean.getEnumProperty());
unconfigure(bean);
@@ -137,6 +140,7 @@
assertEquals(doubleValue.doubleValue(), bean.getAdouble());
assertEquals(null, bean.getANumber());
assertEquals(null, bean.getOverloadedProperty());
+ assertEquals(null, bean.getEnumProperty());
}
protected SimpleBean configure() throws Throwable
@@ -174,6 +178,7 @@
AbstractPropertyMetaData number = new AbstractPropertyMetaData("ANumber", longValue.toString(), "java.lang.Long");
((StringValueMetaData) number.getValue()).setConfigurator(configurator);
attributes.add(number);
+ attributes.add(new AbstractPropertyMetaData("enumProperty", enumValue.toString()));
metaData.setProperties(attributes);
More information about the jboss-cvs-commits
mailing list