[jboss-cvs] JBossAS SVN: r81535 - in projects/microcontainer/branches/Branch_2_0/kernel/src: main/java/org/jboss/kernel/plugins/config and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 25 05:13:13 EST 2008


Author: alesj
Date: 2008-11-25 05:13:13 -0500 (Tue, 25 Nov 2008)
New Revision: 81535

Modified:
   projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
   projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java
   projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java
   projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java
   projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
Log:
Port JIRA issues to branch.

Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java	2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java	2008-11-25 10:13:13 UTC (rev 81535)
@@ -636,19 +636,26 @@
 
    public void initialVisit(MetaDataVisitor visitor)
    {
-      if (getBean() == null && isAbstract() == false && getParent() == null)
+      ConstructorMetaData constructor = getConstructor();
+      if (getBean() == null)
       {
-         ConstructorMetaData constructor = getConstructor();
-         if (constructor == null)
-            throw new IllegalArgumentException("Bean should have a class attribute or a constructor element.");
-         if (constructor.getFactoryMethod() == null)
+         if (isAbstract() == false && getParent() == null)
          {
-            if (constructor.getValue() == null)
-               throw new IllegalArgumentException("Bean should have a class attribute or the constructor element should have either a factoryMethod attribute or embedded value.");
+            if (constructor == null)
+               throw new IllegalArgumentException("Bean should have a class attribute or a constructor element.");
+            if (constructor.getFactoryMethod() == null)
+            {
+               if (constructor.getValue() == null)
+                  throw new IllegalArgumentException("Bean should have a class attribute or the constructor element should have either a factoryMethod attribute or embedded value.");
+            }
+            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.");
          }
-         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.");
       }
+      else
+      {
+         checkConstructorFactoryClass(constructor);
+      }
 
       KernelControllerContext ctx = visitor.getControllerContext();
       if (ctx.getBeanMetaData() == this)
@@ -673,6 +680,30 @@
       super.initialVisit(visitor);
    }
 
+   /**
+    * Check constructor factory class.
+    *
+    * @param constructor the constructor meta data
+    */
+   protected void checkConstructorFactoryClass(ConstructorMetaData constructor)
+   {
+      if (constructor == null)
+         return;
+      if (constructor.getFactoryMethod() == null)
+         return;
+      if (constructor.getFactoryClass() != null)
+         return;
+      if (constructor.getValue() != null)
+         return;
+      if (constructor.getFactory() != null)
+         return;
+      if (constructor instanceof AbstractConstructorMetaData == false)
+         return;
+
+      AbstractConstructorMetaData acmd = AbstractConstructorMetaData.class.cast(constructor);
+      acmd.setFactoryClass(getBean());
+   }
+
    protected void addChildren(Set<MetaDataVisitorNode> children)
    {
       super.addChildren(children);

Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java	2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java	2008-11-25 10:13:13 UTC (rev 81535)
@@ -51,6 +51,7 @@
  * Configuration utilities.
  *
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
  * @version $Revision$
  */
 public class Configurator extends Config
@@ -655,22 +656,30 @@
     */
    public static ClassLoader getClassLoader(ClassLoaderMetaData metaData) throws Throwable
    {
-      ClassLoader tcl = Thread.currentThread().getContextClassLoader();
+      ClassLoader tcl = null;
       ClassLoader cl = null;
+
       if (metaData != null)
       {
             ValueMetaData clVMD = metaData.getClassLoader();
             if (clVMD != null)
             {
+               tcl = Thread.currentThread().getContextClassLoader();
                Object object = clVMD.getValue(null, tcl);
                if (object != null && object instanceof ClassLoader == false)
                   throw new IllegalArgumentException("Configured object is not a classloader " + metaData);
                cl = (ClassLoader) object;
             }
       }
+
       if (cl == null)
-         cl = tcl;
-      return cl;
+      {
+         return (tcl != null) ? tcl : Thread.currentThread().getContextClassLoader();   
+      }
+      else
+      {
+         return cl;
+      }
    }
 
    /**

Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java	2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java	2008-11-25 10:13:13 UTC (rev 81535)
@@ -30,6 +30,7 @@
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.logging.Logger;
+import org.jboss.reflect.spi.TypeInfo;
 
 /**
  * PropertyDispatchWrapper.
@@ -68,23 +69,27 @@
    public Object execute() throws Throwable
    {
       String name = property.getName();
+      PropertyInfo propertyInfo = BeanInfoUtil.getPropertyInfo(beanInfo, target, name);
+      TypeInfo typeInfo = propertyInfo.getType();
       if (nullify)
       {
-         try
+         if (typeInfo.isPrimitive() == false)
          {
-            beanInfo.setProperty(target, name, null);
+            try
+            {
+               beanInfo.setProperty(target, name, null);
+            }
+            catch (Throwable t)
+            {
+               if (log.isTraceEnabled())
+                  log.trace("Ignored for " + target + "." + name, t);
+            }
          }
-         catch (Throwable t)
-         {
-            if (log.isTraceEnabled())
-               log.trace("Ignored for " + target + "." + name, t);
-         }
       }
       else
       {
-         PropertyInfo propertyInfo = BeanInfoUtil.getPropertyInfo(beanInfo, target, name);
          ValueMetaData valueMetaData = property.getValue();
-         Object value = valueMetaData.getValue(propertyInfo.getType(), cl);
+         Object value = valueMetaData.getValue(typeInfo, cl);
          validatePropertyValue(context, target, propertyInfo, value);
          beanInfo.setProperty(target, name, value);
       }

Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java	2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java	2008-11-25 10:13:13 UTC (rev 81535)
@@ -135,6 +135,7 @@
     * @param beans a List<BeanMetaData>.
     */
    @SuppressWarnings("unchecked")
+   @Deprecated
    public void setBeans(List beans)
    {
       this.beanFactories = beans;

Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java	2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java	2008-11-25 10:13:13 UTC (rev 81535)
@@ -25,24 +25,24 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.HashSet;
 
 import junit.framework.Test;
 import org.jboss.beans.metadata.api.model.AutowireType;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractRelatedClassMetaData;
 import org.jboss.beans.metadata.plugins.InstallCallbackMetaData;
 import org.jboss.beans.metadata.plugins.UninstallCallbackMetaData;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractRelatedClassMetaData;
 import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
 import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
 import org.jboss.beans.metadata.spi.CallbackMetaData;
+import org.jboss.beans.metadata.spi.RelatedClassMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.beans.metadata.spi.LifecycleMetaData;
-import org.jboss.beans.metadata.spi.RelatedClassMetaData;
 import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
 import org.jboss.dependency.spi.Cardinality;
 import org.jboss.dependency.spi.ControllerContext;
@@ -161,14 +161,14 @@
    {
       BeanMetaDataBuilder demand = BeanMetaDataBuilderFactory.createBuilder("DemandBean", SimpleBean.class.getName());
       demand.addDemand("Barrier");
-      BeanMetaData demandBean = demand.getBeanMetaData();
+      BeanMetaDataFactory demandBean = demand.getBeanMetaDataFactory();
 
       BeanMetaDataBuilder supply = BeanMetaDataBuilderFactory.createBuilder("SupplyBean", SimpleLifecycleBean.class.getName());
       supply.addSupply("Barrier");
-      BeanMetaData supplyBean = supply.getBeanMetaData();
+      BeanMetaDataFactory supplyBean = supply.getBeanMetaDataFactory();
 
       AbstractKernelDeployment deployment = new AbstractKernelDeployment();
-      deployment.setBeans(Arrays.asList(demandBean, supplyBean));
+      deployment.setBeanFactories(Arrays.asList(demandBean, supplyBean));
 
       Kernel kernel = bootstrap();
       KernelController controller = kernel.getController();
@@ -193,13 +193,13 @@
    {
       BeanMetaDataBuilder dependOn = BeanMetaDataBuilderFactory.createBuilder("DependOnBean", SimpleBean.class.getName());
       dependOn.addDependency("DependencyResolver");
-      BeanMetaData dependOnBean = dependOn.getBeanMetaData();
+      BeanMetaDataFactory dependOnBean = dependOn.getBeanMetaDataFactory();
 
       BeanMetaDataBuilder resolver = BeanMetaDataBuilderFactory.createBuilder("DependencyResolver", SimpleLifecycleBean.class.getName());
-      BeanMetaData resolverBean = resolver.getBeanMetaData();
+      BeanMetaDataFactory resolverBean = resolver.getBeanMetaDataFactory();
 
       AbstractKernelDeployment deployment = new AbstractKernelDeployment();
-      deployment.setBeans(Arrays.asList(dependOnBean, resolverBean));
+      deployment.setBeanFactories(Arrays.asList(dependOnBean, resolverBean));
 
       Kernel kernel = bootstrap();
       KernelController controller = kernel.getController();
@@ -250,7 +250,7 @@
       builder.addPropertyMetaData("map", map);
 
       AbstractKernelDeployment deployment = new AbstractKernelDeployment();
-      deployment.setBeans(Arrays.asList(builder.getBeanMetaData()));
+      deployment.setBeanFactories(Arrays.asList(builder.getBeanMetaDataFactory()));
 
       Kernel kernel = bootstrap();
       KernelController controller = kernel.getController();
@@ -328,7 +328,7 @@
       builder.addPropertyMetaData("map", map);
 
       AbstractKernelDeployment deployment = new AbstractKernelDeployment();
-      deployment.setBeans(Arrays.asList(builder.getBeanMetaData()));
+      deployment.setBeanFactories(Arrays.asList(builder.getBeanMetaDataFactory()));
 
       Kernel kernel = bootstrap();
       KernelController controller = kernel.getController();
@@ -903,7 +903,7 @@
       assertIgnoredLifecycle(bmd.getCreate());
       assertIgnoredLifecycle(bmd.getStart());
       assertIgnoredLifecycle(bmd.getStop());
-      assertIgnoredLifecycle(bmd.getDestroy());
+      assertIgnoredLifecycle(bmd.getDestroy());       
    }
 
    protected void assertIgnoredLifecycle(LifecycleMetaData lmd)




More information about the jboss-cvs-commits mailing list