[jboss-cvs] JBossAS SVN: r90109 - in projects/kernel/trunk/kernel/src/test: java/org/jboss/test/kernel/config/test and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jun 11 17:53:05 EDT 2009


Author: kabir.khan at jboss.com
Date: 2009-06-11 17:53:05 -0400 (Thu, 11 Jun 2009)
New Revision: 90109

Added:
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/support/FromBeanFactorySimpleBean.java
   projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/config/test/testSimpleInstantiateFromBeanFactory.xml
Modified:
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryAnnotationTestCase.java
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryTestCase.java
   projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryXMLTestCase.java
Log:
Test non-static factories where the factory is installed as an MC bean

Added: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/support/FromBeanFactorySimpleBean.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/support/FromBeanFactorySimpleBean.java	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/support/FromBeanFactorySimpleBean.java	2009-06-11 21:53:05 UTC (rev 90109)
@@ -0,0 +1,101 @@
+/*
+* 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.config.support;
+
+import java.util.Collection;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.beans.metadata.api.annotations.Factory;
+import org.jboss.beans.metadata.api.annotations.Inject;
+import org.jboss.beans.metadata.api.annotations.Value;
+
+/**
+ * A simple bean
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+ at Factory(
+      factory = @Value(inject=@Inject(bean="Factory")),
+      factoryMethod = "createSimpleBean"
+)
+public class FromBeanFactorySimpleBean extends SimpleBean
+{
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 1L;
+
+   public FromBeanFactorySimpleBean()
+   {
+   }
+
+   public FromBeanFactorySimpleBean(String string)
+   {
+      super(string);
+   }
+
+   public FromBeanFactorySimpleBean(String string1, String string2)
+   {
+      super(string1, string2);
+   }
+
+   public FromBeanFactorySimpleBean(Integer integer)
+   {
+      super(integer);
+   }
+
+   public FromBeanFactorySimpleBean(Comparable<?> comparable)
+   {
+      super(comparable);
+   }
+
+   public FromBeanFactorySimpleBean(Collection<?> collection)
+   {
+      super(collection);
+   }
+
+   public FromBeanFactorySimpleBean(List<?> list)
+   {
+      super(list);
+   }
+
+   public FromBeanFactorySimpleBean(Set<?> set)
+   {
+      super(set);
+   }
+
+   public FromBeanFactorySimpleBean(Object[] array)
+   {
+      super(array);
+   }
+
+   public FromBeanFactorySimpleBean(Map<?,?> map)
+   {
+      super(map);
+   }
+
+   public FromBeanFactorySimpleBean(Hashtable<?,?> hashtable)
+   {
+      super(hashtable);
+   }
+}

Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryAnnotationTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryAnnotationTestCase.java	2009-06-11 21:07:01 UTC (rev 90108)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryAnnotationTestCase.java	2009-06-11 21:53:05 UTC (rev 90109)
@@ -24,6 +24,8 @@
 import junit.framework.Test;
 import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
 import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.kernel.Kernel;
+import org.jboss.test.kernel.config.support.FromBeanFactorySimpleBean;
 import org.jboss.test.kernel.config.support.FromFactorySimpleBean;
 import org.jboss.test.kernel.config.support.FromFactoryWithParamSimpleBean;
 import org.jboss.test.kernel.config.support.SimpleBean;
@@ -31,6 +33,7 @@
 import org.jboss.test.kernel.config.support.FromFactoryWithIntParamSimpleBean;
 import org.jboss.test.kernel.config.support.FromStaticFactoryWithParamSimpleBean;
 import org.jboss.test.kernel.config.support.FromStaticFactoryWithIntParamSimpleBean;
+import org.jboss.test.kernel.config.support.SimpleBeanFactory;
 
 /**
  * Factory Test Case.
@@ -84,4 +87,14 @@
       BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder("SimpleBean", FromStaticFactoryWithIntParamSimpleBean.class.getName());
       return (SimpleBean)instantiate(builder.getBeanMetaData());
    }
+
+   protected SimpleBean simpleInstantiateFromBeanFactory() throws Throwable
+   {
+      BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder("Factory", SimpleBeanFactory.class.getName());
+      Kernel kernel = bootstrap();
+      kernel.getController().install(builder.getBeanMetaData());
+      
+      builder = BeanMetaDataBuilderFactory.createBuilder("SimpleBean", FromBeanFactorySimpleBean.class.getName());
+      return (SimpleBean)kernel.getController().install(builder.getBeanMetaData()).getTarget();
+   }
 }

Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryTestCase.java	2009-06-11 21:07:01 UTC (rev 90108)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryTestCase.java	2009-06-11 21:53:05 UTC (rev 90109)
@@ -23,8 +23,11 @@
 
 import java.util.ArrayList;
 
+import junit.framework.Test;
+
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
+import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
 import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
 import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
 import org.jboss.beans.metadata.spi.ParameterMetaData;
@@ -33,8 +36,6 @@
 import org.jboss.test.kernel.config.support.SimpleBean;
 import org.jboss.test.kernel.config.support.SimpleBeanFactory;
 
-import junit.framework.Test;
-
 /**
  * Factory Test Case.
  * 
@@ -207,4 +208,28 @@
 
       return (SimpleBean) instantiate(configurator, bmd);
    }
+   
+   public void testSimpleInstantiateFromBeanFactory() throws Throwable
+   {
+      SimpleBean bean = simpleInstantiateFromBeanFactory();
+      assertEquals("createSimpleBean()", SimpleBeanFactory.getMethodUsed());
+      assertEquals("()", bean.getConstructorUsed());
+  }
+   
+   protected SimpleBean simpleInstantiateFromBeanFactory() throws Throwable
+   {
+      Kernel kernel = bootstrap();
+      
+      AbstractBeanMetaData fbmd = new AbstractBeanMetaData("Factory", SimpleBeanFactory.class.getName());
+      kernel.getController().install(fbmd);
+      
+      AbstractBeanMetaData bmd = new AbstractBeanMetaData("SimpleBean", SimpleBean.class.getName());
+      AbstractConstructorMetaData cmd = new AbstractConstructorMetaData();
+      bmd.setConstructor(cmd);
+      AbstractDependencyValueMetaData vmd = new AbstractDependencyValueMetaData("Factory");
+      cmd.setFactory(vmd);
+      cmd.setFactoryMethod("createSimpleBean");
+      
+      return (SimpleBean)kernel.getController().install(bmd).getTarget();
+   }
 }
\ No newline at end of file

Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryXMLTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryXMLTestCase.java	2009-06-11 21:07:01 UTC (rev 90108)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/FactoryXMLTestCase.java	2009-06-11 21:53:05 UTC (rev 90109)
@@ -79,4 +79,10 @@
       XMLUtil util = bootstrapXML(true);
       return (SimpleBean) util.getBean("SimpleBean");
    }
+   
+   protected SimpleBean simpleInstantiateFromBeanFactory() throws Throwable
+   {
+      XMLUtil util = bootstrapXML(true);
+      return (SimpleBean) util.getBean("SimpleBean");
+   }
 }
\ No newline at end of file

Added: projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/config/test/testSimpleInstantiateFromBeanFactory.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/config/test/testSimpleInstantiateFromBeanFactory.xml	                        (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/xml-test/org/jboss/test/kernel/config/test/testSimpleInstantiateFromBeanFactory.xml	2009-06-11 21:53:05 UTC (rev 90109)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="Factory" class="org.jboss.test.kernel.config.support.SimpleBeanFactory"/>
+   
+   <bean name="SimpleBean" class="org.jboss.test.kernel.config.support.SimpleBean">
+      <constructor factoryMethod="createSimpleBean">
+         <factory bean="Factory"/>
+      </constructor>
+   </bean>
+</deployment>




More information about the jboss-cvs-commits mailing list