[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