[jboss-cvs] JBossAS SVN: r64094 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/beans/metadata/spi and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jul 17 05:22:47 EDT 2007
Author: alesj
Date: 2007-07-17 05:22:47 -0400 (Tue, 17 Jul 2007)
New Revision: 64094
Added:
projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameAware.xml
projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameAware.xml
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryHandler.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java
projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_1_0.xsd
projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd
projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java
Log:
JBMICROCONT-192; name-aware attribute --> defaults to setName method.
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -71,6 +71,9 @@
/** The name of this instance */
protected String name;
+ /** The name aware flag */
+ protected boolean nameAware;
+
/** The name method name */
protected String nameMethod;
@@ -343,6 +346,21 @@
flushJBossObjectCache();
}
+ public boolean isNameAware()
+ {
+ return nameAware;
+ }
+
+ /**
+ * Set the name aware.
+ *
+ * @param nameAware the flag
+ */
+ public void setNameAware(boolean nameAware)
+ {
+ this.nameAware = nameAware;
+ }
+
public String getNameMethod()
{
return nameMethod;
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -56,6 +56,13 @@
void setName(String name);
/**
+ * Needs bean name injection.
+ *
+ * @return true for name injection
+ */
+ boolean isNameAware();
+
+ /**
* Get the method to inject name.
*
* @return the name method name
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryHandler.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryHandler.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -61,6 +61,8 @@
bean.setBeanClass(attrs.getValue(i));
else if ("mode".equals(localName))
bean.setMode(new ControllerMode(attrs.getValue(i)));
+ else if ("name-aware".equals(localName))
+ bean.setNameAware(Boolean.parseBoolean(attrs.getValue(i)));
else if ("name-method".equals(localName))
bean.setNameMethod(attrs.getValue(i));
}
@@ -85,6 +87,11 @@
if (constructor.getFactory() == null && constructor.getFactoryClass() == null)
throw new IllegalArgumentException("BeanFactory should have a class attribute or the constructor element should have a either a factoryClass attribute or a factory element.");
}
+ // check for default setName method.
+ if (bean.isNameAware() && bean.getNameMethod() == null)
+ {
+ bean.setNameMethod("setName");
+ }
return bean;
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -68,6 +68,8 @@
bean.setAutowireType(AutowireType.getInstance(attrs.getValue(i)));
else if ("autowire-candidate".equals(localName))
bean.setAutowireCandidate(Boolean.parseBoolean(attrs.getValue(i)));
+ else if ("name-aware".equals(localName))
+ bean.setNameAware(Boolean.parseBoolean(attrs.getValue(i)));
else if ("name-method".equals(localName))
bean.setNameMethod(attrs.getValue(i));
}
@@ -89,6 +91,11 @@
else if (constructor.getFactory() == null && constructor.getFactoryClass() == null)
throw new IllegalArgumentException("Bean should have a class attribute or the constructor element should have one of a factoryClass attribute or a factory element, or embedded value.");
}
+ // check for default setName method.
+ if (bean.isNameAware() && bean.getNameMethod() == null)
+ {
+ bean.setNameMethod("setName");
+ }
return bean;
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -352,10 +352,23 @@
bean.setBean(attrs.getValue(i));
else if ("mode".equals(localName))
bean.setMode(new ControllerMode(attrs.getValue(i)));
+ else if ("name-aware".equals(localName))
+ bean.setNameAware(Boolean.parseBoolean(attrs.getValue(i)));
else if ("name-method".equals(localName))
bean.setNameMethod(attrs.getValue(i));
}
}
+
+ public Object endElement(Object o, QName qName, ElementBinding element)
+ {
+ AbstractBeanMetaData bean = (AbstractBeanMetaData)o;
+ // check for default setName method.
+ if (bean.isNameAware() && bean.getNameMethod() == null)
+ {
+ bean.setNameMethod("setName");
+ }
+ return bean;
+ }
});
// beanfactory binding
@@ -379,10 +392,23 @@
bean.setBeanClass(attrs.getValue(i));
else if ("mode".equals(localName))
bean.setMode(new ControllerMode(attrs.getValue(i)));
+ else if ("name-aware".equals(localName))
+ bean.setNameAware(Boolean.parseBoolean(attrs.getValue(i)));
else if ("name-method".equals(localName))
bean.setNameMethod(attrs.getValue(i));
}
}
+
+ public Object endElement(Object o, QName qName, ElementBinding element)
+ {
+ GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)o;
+ // check for default setName method.
+ if (bean.isNameAware() && bean.getNameMethod() == null)
+ {
+ bean.setNameMethod("setName");
+ }
+ return bean;
+ }
});
// bean has a classloader
Modified: projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_1_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_1_0.xsd 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_1_0.xsd 2007-07-17 09:22:47 UTC (rev 64094)
@@ -91,6 +91,7 @@
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="class" type="xsd:token" use="required"/>
<xsd:attribute name="mode" type="controllerModeType" use="optional"/>
+ <xsd:attribute name="name-aware" type="xsd:boolean" use="optional"/>
<xsd:attribute name="name-method" type="xsd:string" use="optional"/>
</xsd:complexType>
@@ -157,6 +158,7 @@
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="class" type="xsd:token" use="required"/>
+ <xsd:attribute name="name-aware" type="xsd:boolean" use="optional"/>
<xsd:attribute name="name-method" type="xsd:string" use="optional"/>
</xsd:complexType>
Modified: projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd 2007-07-17 09:22:47 UTC (rev 64094)
@@ -110,6 +110,7 @@
<xsd:attribute name="abstract" type="xsd:boolean" use="optional"/>
<xsd:attribute name="autowire-type" type="autowireTypeType" use="optional"/>
<xsd:attribute name="autowire-candidate" type="xsd:boolean" use="optional"/>
+ <xsd:attribute name="name-aware" type="xsd:boolean" use="optional"/>
<xsd:attribute name="name-method" type="xsd:string" use="optional"/>
</xsd:complexType>
@@ -180,6 +181,7 @@
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="class" type="xsd:token" use="required"/>
+ <xsd:attribute name="name-aware" type="xsd:boolean" use="optional"/>
<xsd:attribute name="name-method" type="xsd:string" use="optional"/>
</xsd:complexType>
Modified: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml 2007-07-17 09:22:47 UTC (rev 64094)
@@ -6,4 +6,8 @@
<beanfactory name="factory" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-method="applyName" />
+ <bean name="set_name_bean" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-aware="true" />
+
+ <beanfactory name="set_name_factory" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-aware="true" />
+
</deployment>
Added: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameAware.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameAware.xml (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameAware.xml 2007-07-17 09:22:47 UTC (rev 64094)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beanfactory xmlns="urn:jboss:bean-deployer:2.0" class="Dummy" name-aware="true" />
Added: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameAware.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameAware.xml (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameAware.xml 2007-07-17 09:22:47 UTC (rev 64094)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy" name-aware="true"/>
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -35,6 +35,11 @@
return name;
}
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
public void applyName(String name)
{
this.name = name;
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -55,5 +55,15 @@
NameAwareBean b2 = (NameAwareBean)factory.createBean();
assertNotNull(b2);
assertEquals("factory", b2.getName());
+
+ NameAwareBean nsb = (NameAwareBean)getBean("set_name_bean");
+ assertNotNull(nsb);
+ assertEquals("set_name_bean", nsb.getName());
+
+ BeanFactory nsf = (BeanFactory)getBean("set_name_factory");
+ assertNotNull(nsf);
+ NameAwareBean b3 = (NameAwareBean)nsf.createBean();
+ assertNotNull(b3);
+ assertEquals("set_name_factory", b3.getName());
}
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -705,6 +705,40 @@
assertCallbacks(expected, factory.getUninstallCallbacks());
}
+ public void testBeanFactoryWithNameAware() throws Exception
+ {
+ GenericBeanFactoryMetaData factory = unmarshalBeanFactory("BeanFactoryWithNameAware.xml");
+ assertTrue(factory.isNameAware());
+ assertNull(factory.getNameMethod());
+ PropertyMetaData property = factory.getProperty("nameMethod");
+ assertNotNull(property);
+ ValueMetaData value = property.getValue();
+ assertNotNull(value);
+ assertEquals("setName", value.getUnderlyingValue());
+ assertNull(factory.getName());
+ assertEquals(GenericBeanFactory.class.getName(), factory.getBean());
+ assertEquals("Dummy", factory.getBeanClass());
+ assertNull(factory.getMode());
+ assertNull(factory.getAnnotations());
+ assertNull(factory.getClassLoader());
+ assertNotNull(factory.getConstructor());
+ assertNull(factory.getProperty("constructor"));
+ assertNotNull(factory.getProperties());
+ assertNull(factory.getProperty("properties"));
+ assertNull(factory.getCreate());
+ assertNull(factory.getProperty("create"));
+ assertNull(factory.getStart());
+ assertNull(factory.getProperty("start"));
+ assertNull(factory.getStop());
+ assertNull(factory.getDestroy());
+ assertNull(factory.getDemands());
+ assertNull(factory.getSupplies());
+ assertNull(factory.getInstalls());
+ assertNull(factory.getUninstalls());
+ assertNull(factory.getInstallCallbacks());
+ assertNull(factory.getUninstallCallbacks());
+ }
+
public void testBeanFactoryWithNameMethod() throws Exception
{
GenericBeanFactoryMetaData factory = unmarshalBeanFactory("BeanFactoryWithNameMethod.xml");
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java 2007-07-17 06:20:39 UTC (rev 64093)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java 2007-07-17 09:22:47 UTC (rev 64094)
@@ -816,6 +816,31 @@
assertNull(bean.getUninstallCallbacks());
}
+ public void testBeanWithNameAware() throws Exception
+ {
+ AbstractBeanMetaData bean = unmarshalBean("BeanWithNameAware.xml");
+ assertTrue(bean.isNameAware());
+ assertEquals("setName", bean.getNameMethod());
+ assertNull(bean.getAutowireType());
+ assertNull(bean.getName());
+ assertEquals("Dummy", bean.getBean());
+ assertNull(bean.getMode());
+ assertNull(bean.getAnnotations());
+ assertNull(bean.getClassLoader());
+ assertNull(bean.getConstructor());
+ assertNull(bean.getProperties());
+ assertNull(bean.getCreate());
+ assertNull(bean.getStart());
+ assertNull(bean.getStop());
+ assertNull(bean.getDestroy());
+ assertNull(bean.getDemands());
+ assertNull(bean.getSupplies());
+ assertNull(bean.getInstalls());
+ assertNull(bean.getUninstalls());
+ assertNull(bean.getInstallCallbacks());
+ assertNull(bean.getUninstallCallbacks());
+ }
+
public void testBeanWithNameMethod() throws Exception
{
AbstractBeanMetaData bean = unmarshalBean("BeanWithNameMethod.xml");
More information about the jboss-cvs-commits
mailing list