[jboss-cvs] JBossAS SVN: r59721 - in projects/microcontainer/trunk/kernel/src: resources/xml-test/org/jboss/test/kernel/config/test and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 17 18:21:02 EST 2007


Author: alesj
Date: 2007-01-17 18:21:02 -0500 (Wed, 17 Jan 2007)
New Revision: 59721

Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java
   projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomCollectionPreInstantiated.xml
   projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomListPreInstantiated.xml
   projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomMapPreInstantiated.xml
   projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomSetPreInstantiated.xml
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/support/SimpleBean.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/CollectionTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ListTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/MapTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/SetTestCase.java
Log:
JBMICROCONT-141

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java	2007-01-17 23:21:02 UTC (rev 59721)
@@ -28,8 +28,10 @@
 import org.jboss.beans.metadata.spi.MetaDataVisitor;
 import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
 import org.jboss.beans.metadata.spi.PropertyMetaData;
+import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.dependency.spi.ControllerState;
-import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.dependency.spi.dispatch.AttributeDispatchContext;
 import org.jboss.kernel.plugins.config.Configurator;
 import org.jboss.kernel.spi.config.KernelConfigurator;
@@ -108,7 +110,7 @@
 
    public void initialVisit(MetaDataVisitor visitor)
    {
-      controller = (KernelController) visitor.getControllerContext().getController();
+      controller = (KernelController)visitor.getControllerContext().getController();
       configurator = visitor.getControllerContext().getKernel().getConfigurator();
       preparePreinstantiatedLookup(visitor);
       visitor.initialVisit(this);
@@ -123,12 +125,12 @@
       {
          if (parent instanceof PropertyMetaData)
          {
-            PropertyMetaData pmd = (PropertyMetaData) parent;
+            PropertyMetaData pmd = (PropertyMetaData)parent;
             propertyName = pmd.getName();
             Object gp = visitorNodes.peek();
             if (gp instanceof BeanMetaData)
             {
-               BeanMetaData bmd = (BeanMetaData) gp;
+               BeanMetaData bmd = (BeanMetaData)gp;
                beanName = bmd.getName();
             }
          }
@@ -150,12 +152,21 @@
             ControllerContext context = controller.getContext(beanName, ControllerState.INSTANTIATED);
             if (context != null && context instanceof AttributeDispatchContext)
             {
-               result = ((AttributeDispatchContext)context).get(propertyName);
+               Object target = context.getTarget();
+               if (target != null)
+               {
+                  BeanInfo beanInfo = configurator.getBeanInfo(target.getClass());
+                  PropertyInfo pi = Configurator.resolveProperty(log.isTraceEnabled(), beanInfo, propertyName);
+                  if (pi.getGetter() != null)
+                  {
+                     result = ((AttributeDispatchContext)context).get(propertyName);
+                  }
+               }
             }
          }
          catch (Throwable t)
          {
-            log.warn("Exception in preinstantiated lookup for: "+beanName+"."+propertyName+", "+ t);
+            log.warn("Exception in preinstantiated lookup for: " + beanName + "." + propertyName + ", " + t);
          }
          if (result != null && expected != null && expected.isAssignableFrom(result.getClass()) == false)
             throw new ClassCastException(result.getClass() + " is not a " + expected.getName());

Modified: projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomCollectionPreInstantiated.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomCollectionPreInstantiated.xml	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomCollectionPreInstantiated.xml	2007-01-17 23:21:02 UTC (rev 59721)
@@ -14,5 +14,10 @@
             <value>string1</value>
          </collection>
       </property>
+      <property name="setterCollection">
+         <collection elementClass="java.lang.String">
+            <value>element</value>
+         </collection>
+      </property>
    </bean>
 </deployment>

Modified: projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomListPreInstantiated.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomListPreInstantiated.xml	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomListPreInstantiated.xml	2007-01-17 23:21:02 UTC (rev 59721)
@@ -8,11 +8,16 @@
          <parameter class="java.lang.String">string1</parameter>
       </constructor>
       <property name="preInstantiatedList">
-         <collection class="org.jboss.test.kernel.config.support.CustomList" elementClass="java.lang.String">
+         <list class="org.jboss.test.kernel.config.support.CustomList" elementClass="java.lang.String">
             <value>string2</value>
             <value>string2</value>
             <value>string1</value>
-         </collection>
+         </list>
       </property>
+      <property name="setterList">
+         <list elementClass="java.lang.String">
+            <value>element</value>
+         </list>
+      </property>
    </bean>
 </deployment>

Modified: projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomMapPreInstantiated.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomMapPreInstantiated.xml	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomMapPreInstantiated.xml	2007-01-17 23:21:02 UTC (rev 59721)
@@ -13,5 +13,10 @@
             <entry><key>string2</key><value>string1</value></entry>
          </map>
       </property>
+      <property name="setterMap">
+         <map keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry><key>justKey</key><value>justValue</value></entry>
+         </map>
+      </property>
    </bean>
 </deployment>

Modified: projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomSetPreInstantiated.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomSetPreInstantiated.xml	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testCustomSetPreInstantiated.xml	2007-01-17 23:21:02 UTC (rev 59721)
@@ -8,11 +8,16 @@
          <parameter class="java.lang.String">string1</parameter>
       </constructor>
       <property name="preInstantiatedSet">
-         <collection class="org.jboss.test.kernel.config.support.CustomSet" elementClass="java.lang.String">
+         <set class="org.jboss.test.kernel.config.support.CustomSet" elementClass="java.lang.String">
             <value>string2</value>
             <value>string2</value>
             <value>string1</value>
-         </collection>
+         </set>
       </property>
+      <property name="setterSet">
+         <set elementClass="java.lang.String">
+            <value>element</value>
+         </set>
+      </property>
    </bean>
 </deployment>

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/support/SimpleBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/support/SimpleBean.java	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/support/SimpleBean.java	2007-01-17 23:21:02 UTC (rev 59721)
@@ -151,7 +151,21 @@
    private String overloadedProperty;
 
    private Alphabet enumProperty = Alphabet.A;
-   
+
+   // public just for testing purpose
+
+   /** Just a setter for this collection */
+   public Collection setterCollection;
+
+   /** Just a setter for this set */
+   public Set setterSet;
+
+   /** Just a setter for this list */
+   public List setterList;
+
+   /** Just a setter for this map */
+   public Map setterMap;
+
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
@@ -630,4 +644,24 @@
    {
       this.enumProperty = enumProperty;
    }
+
+   public void setSetterCollection(Collection setterCollection)
+   {
+      this.setterCollection = setterCollection;
+   }
+
+   public void setSetterSet(Set setterSet)
+   {
+      this.setterSet = setterSet;
+   }
+
+   public void setSetterList(List setterList)
+   {
+      this.setterList = setterList;
+   }
+
+   public void setSetterMap(Map setterMap)
+   {
+      this.setterMap = setterMap;
+   }
 }
\ No newline at end of file

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/CollectionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/CollectionTestCase.java	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/CollectionTestCase.java	2007-01-17 23:21:02 UTC (rev 59721)
@@ -250,6 +250,10 @@
       expected.add(string2);
       expected.add(string1);
       assertEquals(expected, result);
+
+      Collection setter = bean.setterCollection;
+      assertNotNull(setter);
+      assertFalse("Empty setterCollection", setter.isEmpty());
    }
 
    protected SimpleBean customCollectionPreInstantiated() throws Throwable
@@ -275,6 +279,12 @@
       AbstractPropertyMetaData pmd = new AbstractPropertyMetaData("preInstantiatedCollection", smd);
       properties.add(pmd);
       
+      AbstractListMetaData lmd = new AbstractListMetaData();
+      lmd.setElementType("java.lang.String");
+      lmd.add(new StringValueMetaData("element"));
+      AbstractPropertyMetaData pmd2 = new AbstractPropertyMetaData("setterCollection", lmd);
+      properties.add(pmd2);
+
       return (SimpleBean) instantiate(controller, bmd);
    }
 

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ListTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ListTestCase.java	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ListTestCase.java	2007-01-17 23:21:02 UTC (rev 59721)
@@ -243,13 +243,17 @@
       assertNotNull("Should be a list", result);
       assertTrue("Not a CustomList: " + result.getClass(), result instanceof CustomList);
       assertTrue("Not preinstantiated", ((CustomList) result).getPreInstantiated());
-      
+
       ArrayList<Object> expected = new ArrayList<Object>();
       expected.add(string1);
       expected.add(string2);
       expected.add(string2);
       expected.add(string1);
       assertEquals(expected, result);
+
+      List setter = bean.setterList;
+      assertNotNull(setter);
+      assertFalse("Empty setterList", setter.isEmpty());
    }
 
    protected SimpleBean customListPreInstantiated() throws Throwable
@@ -272,8 +276,14 @@
       smd.add(vmd2); // tests duplicates
       smd.add(vmd3); // tests duplicates
 
-      AbstractPropertyMetaData pmd = new AbstractPropertyMetaData("preInstantiatedList", smd);
-      properties.add(pmd);
+      AbstractPropertyMetaData pmd1 = new AbstractPropertyMetaData("preInstantiatedList", smd);
+      properties.add(pmd1);
+
+      AbstractListMetaData lmd = new AbstractListMetaData();
+      lmd.setElementType("java.lang.String");
+      lmd.add(new StringValueMetaData("element"));
+      AbstractPropertyMetaData pmd2 = new AbstractPropertyMetaData("setterList", lmd);
+      properties.add(pmd2);
       
       return (SimpleBean) instantiate(controller, bmd);
    }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/MapTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/MapTestCase.java	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/MapTestCase.java	2007-01-17 23:21:02 UTC (rev 59721)
@@ -240,6 +240,10 @@
       expected.put(string1, string2);
       expected.put(string2, string1);
       assertEquals(expected, result);
+
+      Map setter = bean.setterMap;
+      assertNotNull(setter);
+      assertFalse("Empty setterMap", setter.isEmpty());
    }
 
    protected SimpleBean customMapPreInstantiated() throws Throwable
@@ -265,6 +269,13 @@
       AbstractPropertyMetaData pmd = new AbstractPropertyMetaData("preInstantiatedMap", smd);
       properties.add(pmd);
       
+      AbstractMapMetaData lmd = new AbstractMapMetaData();
+      lmd.setKeyType("java.lang.String");
+      lmd.setValueType("java.lang.String");
+      lmd.put(new StringValueMetaData("justKey"), new StringValueMetaData("justValue"));
+      AbstractPropertyMetaData pmd2 = new AbstractPropertyMetaData("setterMap", lmd);
+      properties.add(pmd2);
+
       return (SimpleBean) instantiate(controller, bmd);
    }
 

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/SetTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/SetTestCase.java	2007-01-17 23:05:52 UTC (rev 59720)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/SetTestCase.java	2007-01-17 23:21:02 UTC (rev 59721)
@@ -249,6 +249,10 @@
       expected.add(string2);
       expected.add(string1);
       assertEquals(expected, result);
+
+      Set setter = bean.setterSet;
+      assertNotNull(setter);
+      assertFalse("Empty setterSet", setter.isEmpty());
    }
 
    protected SimpleBean customSetPreInstantiated() throws Throwable
@@ -274,6 +278,12 @@
       AbstractPropertyMetaData pmd = new AbstractPropertyMetaData("preInstantiatedSet", smd);
       properties.add(pmd);
       
+      AbstractSetMetaData lmd = new AbstractSetMetaData();
+      lmd.setElementType("java.lang.String");
+      lmd.add(new StringValueMetaData("element"));
+      AbstractPropertyMetaData pmd2 = new AbstractPropertyMetaData("setterSet", lmd);
+      properties.add(pmd2);
+
       return (SimpleBean) instantiate(controller, bmd);
    }
 




More information about the jboss-cvs-commits mailing list