[jboss-cvs] JBossAS SVN: r64027 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/beans/metadata/plugins/factory and 9 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jul 13 05:00:10 EDT 2007


Author: alesj
Date: 2007-07-13 05:00:09 -0400 (Fri, 13 Jul 2007)
New Revision: 64027

Added:
   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/xml/test/BeanFactoryWithNameMethod.xml
   projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameMethod.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
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/factory/GenericBeanFactory.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactoryMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.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/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.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

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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -71,6 +71,9 @@
    /** The name of this instance */
    protected String name;
 
+   /** The name method name */
+   protected String nameMethod;
+
    /** The aliases */
    protected Set<Object> aliases;
 
@@ -340,6 +343,21 @@
       flushJBossObjectCache();
    }
 
+   public String getNameMethod()
+   {
+      return nameMethod;
+   }
+
+   /**
+    * Set the name method name.
+    *
+    * @param nameMethod the method name
+    */
+   public void setNameMethod(String nameMethod)
+   {
+      this.nameMethod = nameMethod;
+   }
+
    public Set<Object> getAliases()
    {
       return aliases;

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactory.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactory.java	2007-07-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactory.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -23,6 +23,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.ArrayList;
 
 import org.jboss.beans.info.spi.BeanInfo;
 import org.jboss.beans.metadata.spi.ClassLoaderMetaData;
@@ -31,6 +32,7 @@
 import org.jboss.beans.metadata.spi.ParameterMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.beans.metadata.spi.factory.BeanFactory;
+import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
 import org.jboss.joinpoint.spi.Joinpoint;
 import org.jboss.joinpoint.spi.JoinpointException;
 import org.jboss.joinpoint.spi.MethodJoinpoint;
@@ -66,7 +68,13 @@
 
    /** The start lifecycle method */
    protected LifecycleMetaData start;
-   
+
+   /** The bean name */
+   protected String name;
+
+   /** The name method */
+   protected String nameMethod;
+
    /**
     * Create a new generic bean factory
     * 
@@ -103,6 +111,8 @@
       }
       invokeLifecycle("create", create, info, cl, result);
       invokeLifecycle("start", start, info, cl, result);
+      if (nameMethod != null)
+         invokeNameMethod(info, cl, result);
       return result;
    }
    
@@ -227,6 +237,46 @@
    }
 
    /**
+    * Get the bean name.
+    *
+    * @return the bean name
+    */
+   public String getName()
+   {
+      return name;
+   }
+
+   /**
+    * Set the bean name.
+    *
+    * @param name the bean name
+    */
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+
+   /**
+    * Get the name method's name.
+    *
+    * @return name method name
+    */
+   public String getNameMethod()
+   {
+      return nameMethod;
+   }
+
+   /**
+    * Set the name method name.
+    *
+    * @param nameMethod the name method's name
+    */
+   public void setNameMethod(String nameMethod)
+   {
+      this.nameMethod = nameMethod;
+   }
+
+   /**
     * Invoke a lifecycle method
     * 
     * @param methodName the default method name
@@ -256,4 +306,22 @@
       joinpoint.setTarget(target);
       joinpoint.dispatch();
    }
+
+   /**
+    * Invoke name method to set name.
+    *
+    * @param info the bean info
+    * @param cl the classloader
+    * @param target the target
+    * @throws Throwable for any error
+    */
+   protected void invokeNameMethod(BeanInfo info, ClassLoader cl, Object target) throws Throwable
+   {
+      List<ParameterMetaData> parameters = new ArrayList<ParameterMetaData>();
+      parameters.add(new AbstractParameterMetaData(String.class.getName(), name));
+      MethodJoinpoint joinpoint = configurator.getMethodJoinPoint(info, cl, nameMethod, parameters, false, true);
+      joinpoint.setTarget(target);
+      joinpoint.dispatch();
+   }
+
 }
\ No newline at end of file

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactoryMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactoryMetaData.java	2007-07-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactoryMetaData.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -120,6 +120,19 @@
       properties.add(new AbstractPropertyMetaData("classLoader", new AbstractValueMetaData(classLoader)));
    }
 
+   public void setName(String name)
+   {
+      super.setName(name);
+      Set<PropertyMetaData> properties = getProperties();
+      properties.add(new AbstractPropertyMetaData("name", new AbstractValueMetaData(name)));
+   }
+
+   public void setNameMethod(String nameMethod)
+   {
+      Set<PropertyMetaData> properties = getProperties();
+      properties.add(new AbstractPropertyMetaData("nameMethod", new AbstractValueMetaData(nameMethod)));
+   }
+
    /**
     * Set the bean constructor
     * 

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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -56,6 +56,13 @@
    void setName(String name);
 
    /**
+    * Get the method to inject name.
+    *
+    * @return the name method name
+    */
+   String getNameMethod();
+
+   /**
     * The aliases
     *
     * @return the aliases or null if there are no aliases

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.java	2007-07-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -67,6 +67,11 @@
          ((KernelControllerContextAware) object).setKernelControllerContext(context);            
       }
 
+      String nameMethod = metaData.getNameMethod();
+      if (nameMethod != null)
+      {
+         context.invoke(nameMethod, new Object[]{metaData.getName()}, new String[]{String.class.getName()});
+      }
    }
 
    protected Class<? extends KernelControllerContextAware> getActionAwareInterface()

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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryHandler.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -61,6 +61,8 @@
             bean.setBeanClass(attrs.getValue(i));
          else if ("mode".equals(localName))
             bean.setMode(new ControllerMode(attrs.getValue(i)));
+         else if ("name-method".equals(localName))
+            bean.setNameMethod(attrs.getValue(i));
       }
    }
 

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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -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-method".equals(localName))
+            bean.setNameMethod(attrs.getValue(i));
       }
    }
 

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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -352,6 +352,8 @@
                   bean.setBean(attrs.getValue(i));
                else if ("mode".equals(localName))
                   bean.setMode(new ControllerMode(attrs.getValue(i)));
+               else if ("name-method".equals(localName))
+                  bean.setNameMethod(attrs.getValue(i));
             }
          }
       });
@@ -377,6 +379,8 @@
                   bean.setBeanClass(attrs.getValue(i));
                else if ("mode".equals(localName))
                   bean.setMode(new ControllerMode(attrs.getValue(i)));
+               else if ("name-method".equals(localName))
+                  bean.setNameMethod(attrs.getValue(i));
             }
          }
       });

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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_1_0.xsd	2007-07-13 09:00:09 UTC (rev 64027)
@@ -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-method" type="xsd:string" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="classloaderType" mixed="true">
@@ -156,6 +157,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-method" type="xsd:string" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="constructorType">

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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd	2007-07-13 09:00:09 UTC (rev 64027)
@@ -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-method" type="xsd:string" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="classloaderType" mixed="true">
@@ -179,6 +180,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-method" type="xsd:string" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="constructorType">

Added: 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	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml	2007-07-13 09:00:09 UTC (rev 64027)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="bean" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-method="applyName" />
+
+   <beanfactory name="factory" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-method="applyName" />
+
+</deployment>

Added: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameMethod.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameMethod.xml	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameMethod.xml	2007-07-13 09:00:09 UTC (rev 64027)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beanfactory xmlns="urn:jboss:bean-deployer:2.0" class="Dummy" name-method="applyName" />

Added: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameMethod.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameMethod.xml	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameMethod.xml	2007-07-13 09:00:09 UTC (rev 64027)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy" name-method="applyName"/>

Added: 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	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -0,0 +1,42 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.deployment.support;
+
+/**
+ * A simple bean with name
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class NameAwareBean
+{
+   private String name;
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public void applyName(String name)
+   {
+      this.name = name;
+   }
+}

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java	2007-07-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -60,6 +60,7 @@
       suite.addTest(ContextualScopingTestCase.suite());
       suite.addTest(InnerBeanScopingTestCase.suite());
       suite.addTest(ScopingShutdownTestCase.suite());
+      suite.addTest(NamingBeanTestCase.suite());
 
       return suite;
    }

Added: 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	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -0,0 +1,59 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.deployment.test;
+
+import junit.framework.Test;
+import org.jboss.test.kernel.deployment.support.NameAwareBean;
+import org.jboss.beans.metadata.spi.factory.BeanFactory;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class NamingBeanTestCase extends AbstractDeploymentTest
+{
+   public NamingBeanTestCase(String name)
+         throws Throwable
+   {
+      super(name);
+   }
+
+   public static Test suite()
+   {
+      return suite(NamingBeanTestCase.class);
+   }
+
+   public void testNameInjection() throws Throwable
+   {
+      NameAwareBean bean = (NameAwareBean)getBean("bean");
+      assertNotNull(bean);
+      assertEquals("bean", bean.getName());
+
+      BeanFactory factory = (BeanFactory)getBean("factory");
+      assertNotNull(factory);
+      NameAwareBean b1 = (NameAwareBean)factory.createBean();
+      assertNotNull(b1);
+      assertEquals("factory", b1.getName());
+      NameAwareBean b2 = (NameAwareBean)factory.createBean();
+      assertNotNull(b2);
+      assertEquals("factory", b2.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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -27,6 +27,8 @@
 import junit.framework.Test;
 import org.jboss.beans.metadata.plugins.factory.GenericBeanFactory;
 import org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData;
+import org.jboss.beans.metadata.spi.PropertyMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.dependency.spi.ControllerMode;
 
 /**
@@ -703,6 +705,39 @@
       assertCallbacks(expected, factory.getUninstallCallbacks());
    }
 
+   public void testBeanFactoryWithNameMethod() throws Exception
+   {
+      GenericBeanFactoryMetaData factory = unmarshalBeanFactory("BeanFactoryWithNameMethod.xml");
+      assertNull(factory.getNameMethod());
+      PropertyMetaData property = factory.getProperty("nameMethod");
+      assertNotNull(property);
+      ValueMetaData value = property.getValue();
+      assertNotNull(value);
+      assertEquals("applyName", 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 testBeanFactoryBadNoClassOrConstructor() throws Exception
    {
       try

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-13 06:14:15 UTC (rev 64026)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java	2007-07-13 09:00:09 UTC (rev 64027)
@@ -816,6 +816,30 @@
       assertNull(bean.getUninstallCallbacks());
    }
 
+   public void testBeanWithNameMethod() throws Exception
+   {
+      AbstractBeanMetaData bean = unmarshalBean("BeanWithNameMethod.xml");
+      assertEquals("applyName", 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 static Test suite()
    {
       return suite(BeanTestCase.class);




More information about the jboss-cvs-commits mailing list