[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