[Jboss-cvs] JBossAS SVN: r56471 - in projects/microcontainer/trunk: kernel/src/main/org/jboss/beans/metadata/plugins kernel/src/main/org/jboss/beans/metadata/spi kernel/src/main/org/jboss/kernel/plugins/dependency kernel/src/main/org/jboss/kernel/plugins/deployment/xml kernel/src/resources/org/jboss/test/kernel/deployment/test kernel/src/resources/org/jboss/test/kernel/deployment/xml/test kernel/src/resources/org/jboss/test/kernel/inject/test kernel/src/resources/schema kernel/src/tests/org/jboss/test/kernel/deployment/support kernel/src/tests/org/jboss/test/kernel/deployment/test kernel/src/tests/org/jboss/test/kernel/deployment/xml/test kernel/src/tests/org/jboss/test/kernel/inject/support kernel/src/tests/org/jboss/test/kernel/inject/test osgi-int/src/main/org/jboss/vfs/bundle

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 31 04:46:32 EDT 2006


Author: alesj
Date: 2006-08-31 04:44:05 -0400 (Thu, 31 Aug 2006)
New Revision: 56471

Added:
   projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.xml
   projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ClassLoaderWithBean.xml
   projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ConstructorWithBean.xml
   projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ParameterWithBean.xml
   projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/PropertyWithBean.xml
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NullClassLoader.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/SimpleObjectWithBean.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ConstructorValueBean.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/AbstractConstructorMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.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/AbstractKernelController.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ClassContextDependencyItem.java
   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/DependencyHandler.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/FactoryHandler.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InjectionHandler.java
   projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ConstructorContextualInjection.xml
   projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_1_0.xsd
   projects/microcontainer/trunk/kernel/src/resources/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/ClassLoaderTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ConstructorTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ParameterTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/PropertyTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ConstructorContextualInjectionTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionAdapter.java
   projects/microcontainer/trunk/osgi-int/src/main/org/jboss/vfs/bundle/BundleClassLoader.java
Log:
JBMICROCONT-28 (not yet full impl), added whenRequiredState in DependencyMetaData, fixed factory construction with contextual injection.

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	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -21,15 +21,17 @@
 */
 package org.jboss.beans.metadata.plugins;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 import org.jboss.beans.metadata.spi.*;
+import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.dependency.spi.ControllerMode;
 import org.jboss.dependency.spi.ControllerState;
+import org.jboss.dependency.spi.DependencyItem;
+import org.jboss.dependency.plugins.AbstractDependencyItem;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.reflect.spi.TypeInfo;
 import org.jboss.util.JBossObject;
 import org.jboss.util.JBossStringBuilder;
 
@@ -46,10 +48,10 @@
 
    /** The name of this instance */
    protected String name;
-   
+
    /** The mode */
    protected ControllerMode mode = null;
-   
+
    /** The properties configuration Set<PropertyMetaData> */
    private Set<PropertyMetaData> properties;
 
@@ -58,34 +60,37 @@
 
    /** The constructor */
    protected ConstructorMetaData constructor;
-   
+
    /** The create lifecycle */
    protected LifecycleMetaData create;
-   
+
    /** The start lifecycle */
    protected LifecycleMetaData start;
-   
+
    /** The stop lifecycle */
    protected LifecycleMetaData stop;
-   
+
    /** The destroy lifecycle */
    protected LifecycleMetaData destroy;
-   
+
    /** What the bean demands Set<DemandMetaData> */
    protected Set<DemandMetaData> demands;
-   
+
    /** What the bean supplies Set<SupplyMetaData> */
    protected Set<SupplyMetaData> supplies;
-   
+
    /** What the bean dependencies Set<DependencyMetaData> */
    protected Set<DependencyMetaData> depends;
-   
+
    /** The install operations List<InstallMetaData> */
    protected List<InstallMetaData> installs;
-   
+
    /** The uninstall operations List<InstallMetaData> */
    protected List<InstallMetaData> uninstalls;
-   
+
+   /** The kernel controller */
+   protected KernelController controller;
+
    /**
     * Create a new bean meta data
     */
@@ -176,7 +181,7 @@
       properties.add(property);
       flushJBossObjectCache();
    }
-   
+
    /**
     * Set the propertiess.
     * 
@@ -218,7 +223,7 @@
       this.demands = demands;
       flushJBossObjectCache();
    }
-   
+
    /**
     * Set what the bean supplies.
     * 
@@ -261,28 +266,28 @@
    {
       return mode;
    }
-   
+
    public void setMode(ControllerMode mode)
    {
       this.mode = mode;
       flushJBossObjectCache();
    }
-   
+
    public Set<PropertyMetaData> getProperties()
    {
       return properties;
    }
-   
+
    public ConstructorMetaData getConstructor()
    {
       return constructor;
    }
-   
+
    public LifecycleMetaData getCreate()
    {
       return create;
    }
-   
+
    /**
     * Set the lifecycle metadata
     * 
@@ -293,12 +298,12 @@
       lifecycle.setState(ControllerState.CREATE);
       this.create = lifecycle;
    }
-   
+
    public LifecycleMetaData getStart()
    {
       return start;
    }
-   
+
    /**
     * Set the start metadata
     * 
@@ -309,12 +314,12 @@
       lifecycle.setState(ControllerState.START);
       this.start = lifecycle;
    }
-   
+
    public LifecycleMetaData getStop()
    {
       return stop;
    }
-   
+
    /**
     * Set the stop metadata
     * 
@@ -325,12 +330,12 @@
       lifecycle.setState(ControllerState.START);
       this.stop = lifecycle;
    }
-   
+
    public LifecycleMetaData getDestroy()
    {
       return destroy;
    }
-   
+
    /**
     * Set the destroy metadata
     * 
@@ -341,17 +346,17 @@
       lifecycle.setState(ControllerState.CREATE);
       this.destroy = lifecycle;
    }
-   
+
    public Set<DemandMetaData> getDemands()
    {
       return demands;
    }
-   
+
    public Set<SupplyMetaData> getSupplies()
    {
       return supplies;
    }
-   
+
    public Set<DependencyMetaData> getDepends()
    {
       return depends;
@@ -361,7 +366,7 @@
    {
       return installs;
    }
-   
+
    /**
     * Set the installs
     * 
@@ -377,7 +382,7 @@
    {
       return uninstalls;
    }
-   
+
    /**
     * Set the uninstalls
     * 
@@ -389,6 +394,26 @@
       flushJBossObjectCache();
    }
 
+   public void initialVisit(MetaDataVisitor visitor)
+   {
+      if (visitor.visitorNodeStack().isEmpty() == false)
+      {
+         KernelControllerContext controllerContext = visitor.getControllerContext();
+         controller = (KernelController) controllerContext.getController();
+         Object name = controllerContext.getName();
+         Object iDependOn = getUnderlyingValue();
+         ControllerState whenRequired = visitor.getContextState();
+         DependencyItem di = new AbstractDependencyItem(name, iDependOn, whenRequired, ControllerState.INSTALLED);
+         visitor.addDependency(di);
+      }
+      super.initialVisit(visitor);
+   }
+
+   public void setController(KernelController controller)
+   {
+      this.controller = controller;
+   }
+
    protected void addChildren(Set<MetaDataVisitorNode> children)
    {
       super.addChildren(children);
@@ -423,6 +448,26 @@
       throw new IllegalArgumentException("Cannot determine inject class type: " + this);
    }
 
+   public Object getUnderlyingValue()
+   {
+      return getName();
+   }
+
+   public Object getValue(TypeInfo info, ClassLoader cl) throws Throwable
+   {
+      ControllerContext context = controller.getInstalledContext(getName());
+      if (context == null || context.getTarget() == null)
+      {
+         throw new IllegalArgumentException("Bean not yet installed: " + getName());
+      }
+      Object target = context.getTarget();
+      if (info.getType().isAssignableFrom(target.getClass()) == false)
+      {
+         throw new ClassCastException(target + " is not a " + info);
+      }
+      return target;
+   }
+
    public void toString(JBossStringBuilder buffer)
    {
       buffer.append("name=").append(name);
@@ -467,7 +512,7 @@
          JBossObject.list(buffer, uninstalls);
       }
    }
-   
+
    public void toShortString(JBossStringBuilder buffer)
    {
       buffer.append(bean);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -202,6 +202,12 @@
          }
          else
          {
+            // currently value constructor supports only values that are instances of class itself
+            // this will add another instance with the same class to context
+            Class type = beanInfo.getClassInfo().getType();
+            log.warn("Constructing bean from injection value: results in multiple beans with same class type - " + type);
+            return type;
+/*
             // find all constructors with single value
             Set<ConstructorInfo> constructors = beanInfo.getConstructors();
             Set<ConstructorInfo> matchingConstructorInfos = new HashSet<ConstructorInfo>();
@@ -220,6 +226,7 @@
                throw new IllegalArgumentException("Should not be here - illegal size of matching constructors: " + this);
             }
             return applyCollectionOrMapCheck(matchingConstructorInfos.iterator().next().getParameterTypes()[0].getType());
+*/
          }
       }
    }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -48,6 +48,9 @@
    /** The property name */
    protected String property;
 
+   /** The when required state of the dependency or null to use current context state */
+   protected ControllerState whenRequiredState;
+
    /** The required state of the dependency or null to look in the registry */
    protected ControllerState dependentState = ControllerState.INSTALLED;
 
@@ -101,8 +104,24 @@
    }
    
    /**
+    * Set the when required state of the dependency
+    * 
+    * @param whenRequiredState the when required state or null if it uses current context state
+    */
+   public void setWhenRequiredState(ControllerState whenRequredState)
+   {
+      this.whenRequiredState = whenRequredState;
+      flushJBossObjectCache();
+   }
+
+   public ControllerState getWhenRequiredState()
+   {
+      return whenRequiredState;
+   }
+   
+   /**
     * Set the required state of the dependency
-    * 
+    *
     * @param dependentState the required state or null if it must be in the registry
     */
    public void setDependentState(ControllerState dependentState)
@@ -115,7 +134,7 @@
    {
       return dependentState;
    }
-   
+
    public Object getValue(TypeInfo info, ClassLoader cl) throws Throwable
    {
       ControllerState state = dependentState;
@@ -142,7 +161,11 @@
       controller = (KernelController) controllerContext.getController();
       Object name = controllerContext.getName();
       Object iDependOn = getUnderlyingValue();
-      ControllerState whenRequired = visitor.getContextState();
+      ControllerState whenRequired = whenRequiredState;
+      if (whenRequired == null)
+      {
+         whenRequired = visitor.getContextState();
+      }
 
       DependencyItem item = new AbstractDependencyItem(name, iDependOn, whenRequired, dependentState);
       visitor.addDependency(item);
@@ -155,6 +178,8 @@
       super.toString(buffer);
       if (property != null)
          buffer.append(" property=").append(property);
+      if (whenRequiredState != null)
+         buffer.append(" whenRequiredState=").append(whenRequiredState.getStateString());
       if (dependentState != null)
          buffer.append(" dependentState=").append(dependentState.getStateString());
    }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -95,6 +95,10 @@
       if (value == null)
       {
          ControllerContext context = controller.getInstalledContext(info.getType());
+         if (context == null)
+         {
+            throw new IllegalArgumentException("Possible multiple matching beans, see log for info.");
+         }
          return context.getTarget();
       }
       return super.getValue(info, cl);
@@ -119,6 +123,8 @@
             }
             setValue(propertyMetaData.getName());
          }
+         
+         visitor.initialVisit(this);
       }
       // check if was maybe set with by_name
       if (getUnderlyingValue() != null)
@@ -141,6 +147,7 @@
                DependencyItem item = new ClassContextDependencyItem(
                      context.getName(),
                      typeProvider.getType(visitor, this),
+                     visitor.getContextState(), 
                      dependentState);
                visitor.addDependency(item);
             }

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	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -32,7 +32,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
-public interface BeanMetaData extends FeatureMetaData
+public interface BeanMetaData extends FeatureMetaData, ValueMetaData
 {
    /**
     * Get the bean.

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -222,6 +222,10 @@
          ClassContext classContext = contextsByClass.get(clazz);
          if (classContext != null)
          {
+            if (log.isTraceEnabled())
+            {
+               log.trace("Marking class " + clazz + " as used.");
+            }
             classContext.used = true;
             return classContext.contexts;
          }
@@ -349,6 +353,10 @@
 
       if (numberOfMatchingBeans != 1)
       {
+         if (numberOfMatchingBeans > 1)
+         {
+            log.warn("Multiple beans match class type: " + clazz);
+         }
          return null;
       }
       return contexts.iterator().next();

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ClassContextDependencyItem.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ClassContextDependencyItem.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ClassContextDependencyItem.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -34,9 +34,9 @@
  */
 public class ClassContextDependencyItem extends AbstractDependencyItem
 {
-   public ClassContextDependencyItem(Object name, Class demandClass, ControllerState dependentState)
+   public ClassContextDependencyItem(Object name, Class demandClass, ControllerState whenRequired, ControllerState dependentState)
    {
-      super(name, demandClass, ControllerState.INSTANTIATED, dependentState);
+      super(name, demandClass, whenRequired, dependentState);
    }
 
    public boolean resolve(Controller controller)

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	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -941,6 +941,8 @@
                   dependency.setProperty(attrs.getValue(i));
                else if ("state".equals(localName))
                   dependency.setDependentState(new ControllerState(attrs.getValue(i)));
+               else if ("whenRequired".equals(localName))
+                  dependency.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
             }
          }
          
@@ -981,6 +983,8 @@
                   injection.setProperty(attrs.getValue(i));
                else if ("state".equals(localName))
                   injection.setDependentState(new ControllerState(attrs.getValue(i)));
+               else if ("whenRequired".equals(localName))
+                  injection.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
                else if ("type".equals(localName))
                   injection.setInjectionType(new InjectionType(attrs.getValue(i)));
             }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DependencyHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DependencyHandler.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/DependencyHandler.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -58,6 +58,8 @@
             dependency.setProperty(attrs.getValue(i));
          else if ("state".equals(localName))
             dependency.setDependentState(new ControllerState(attrs.getValue(i)));
+         else if ("whenRequired".equals(localName))
+            dependency.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
       }
    }
    

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/FactoryHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/FactoryHandler.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/FactoryHandler.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -60,6 +60,8 @@
             dependency.setProperty(attrs.getValue(i));
          else if ("state".equals(localName))
             dependency.setDependentState(new ControllerState(attrs.getValue(i)));
+         else if ("whenRequired".equals(localName))
+            dependency.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
       }
    }
 

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InjectionHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InjectionHandler.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InjectionHandler.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -49,6 +49,8 @@
             injection.setProperty(attrs.getValue(i));
          else if ("state".equals(localName))
             injection.setDependentState(new ControllerState(attrs.getValue(i)));
+         else if ("whenRequired".equals(localName))
+            injection.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
          else if ("type".equals(localName))
             injection.setInjectionType(new InjectionType(attrs.getValue(i)));
       }

Added: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.xml	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.xml	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+<!--
+   <bean name="SimpleObject1" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
+      <classloader>
+         <bean name="simple1" class="org.jboss.test.kernel.deployment.support.NullClassLoader" />
+      </classloader>
+   </bean>
+
+   <bean name="SimpleObject2" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
+      <constructor>
+         <bean name="simple2" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl" />
+      </constructor>
+   </bean>
+
+   <bean name="SimpleObject3" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
+      <constructor>
+         <parameter>
+            <bean name="simple3" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl" />
+         </parameter>
+      </constructor>
+   </bean>
+
+   <bean name="SimpleObject4" class="org.jboss.test.kernel.deployment.support.SimpleObjectWithBean">
+      <property name="simpleBean">
+         <bean name="simple4" class="org.jboss.test.kernel.deployment.support.SimpleBeanImpl"/>
+      </property>
+   </bean>
+-->
+
+</deployment>

Added: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ClassLoaderWithBean.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ClassLoaderWithBean.xml	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ClassLoaderWithBean.xml	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <classloader><bean name="CL" class="org.jboss.test.Dummy"/></classloader>
+</deployment>

Added: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ConstructorWithBean.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ConstructorWithBean.xml	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ConstructorWithBean.xml	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0">
+   <constructor>
+      <bean name="Dummy" class="org.jboss.test.Dummy"/>
+   </constructor>
+</bean>

Added: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ParameterWithBean.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ParameterWithBean.xml	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/ParameterWithBean.xml	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy">
+   <constructor>
+      <parameter><bean name="Dummy2" class="org.jboss.test.Dummy"/></parameter>
+   </constructor>
+</bean>

Added: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/PropertyWithBean.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/PropertyWithBean.xml	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/deployment/xml/test/PropertyWithBean.xml	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy">
+   <property name="PropertyName">
+      <bean name="Dummy2" class="org.jboss.test.Dummy"/>
+   </property>
+</bean>

Modified: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ConstructorContextualInjection.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ConstructorContextualInjection.xml	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ConstructorContextualInjection.xml	2006-08-31 08:44:05 UTC (rev 56471)
@@ -1,8 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
-            xmlns="urn:jboss:bean-deployer">
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
 
    <bean name="testObject1" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject" >
       <constructor
@@ -32,17 +30,21 @@
       <constructor><parameter><inject/></parameter></constructor>
    </bean>
 
-<!--
    <bean name="testObject5" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject" >
       <constructor factoryMethod="withParameter">
-         <factory bean="testObject6"/>
+         <factory bean="testObject6" whenRequired="Described"/>
          <parameter><inject/></parameter>
       </constructor>
    </bean>
--->
 
    <bean name="duplicateTester" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
 
    <bean name="testObject6" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject" />
 
+   <bean name="constBean" class="org.jboss.test.kernel.inject.support.ConstructorValueBean" />
+
+   <bean name="constBeanRef" class="org.jboss.test.kernel.inject.support.ConstructorValueBean">
+      <constructor><inject/></constructor>
+   </bean>
+
 </deployment>

Modified: projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_1_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_1_0.xsd	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_1_0.xsd	2006-08-31 08:44:05 UTC (rev 56471)
@@ -244,6 +244,7 @@
       <xsd:attribute name="bean" type="xsd:string" use="required"/>
       <xsd:attribute name="property" type="xsd:string" use="optional"/>
       <xsd:attribute name="state" type="controllerStateType" use="optional"/>
+      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
    </xsd:complexType>
 
    <!-- todo use extension with dependencyType -->
@@ -281,6 +282,7 @@
       <xsd:attribute name="bean" type="xsd:string" use="optional"/>
       <xsd:attribute name="property" type="xsd:string" use="optional"/>
       <xsd:attribute name="state" type="controllerStateType" use="optional"/>
+      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
       <xsd:attribute name="type" type="injectionTypeType" use="optional" default="ByClass"/>
    </xsd:complexType>
 
@@ -412,6 +414,7 @@
          </xsd:documentation>
       </xsd:annotation>
       <xsd:choice>
+         <xsd:element name="bean" type="beanType"/>
          <xsd:element name="value" type="plainValueType"/>
          <xsd:element name="collection" type="collectionType"/>
          <xsd:element name="list" type="listType"/>
@@ -478,6 +481,7 @@
          </xsd:documentation>
       </xsd:annotation>
       <xsd:choice>
+         <xsd:element name="bean" type="beanType"/>
          <xsd:element name="inject" type="dependencyType"/>
          <xsd:element name="null">
             <xsd:complexType/>

Modified: projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd	2006-08-31 08:44:05 UTC (rev 56471)
@@ -200,12 +200,14 @@
                <xsd:element name="factory" type="factoryType" minOccurs="0"/>
                <xsd:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"/>
             </xsd:sequence>
+            <xsd:element name="bean" type="beanType"/>
             <xsd:element name="value" type="plainValueType"/>
             <xsd:element name="collection" type="collectionType"/>
             <xsd:element name="list" type="listType"/>
             <xsd:element name="set" type="setType"/>
             <xsd:element name="array" type="arrayType"/>
             <xsd:element name="map" type="mapType"/>
+            <xsd:element name="inject" type="injectionType"/>
             <xsd:any namespace="##other" processContents="strict">
                <xsd:annotation>
                   <xsd:documentation>An extension value</xsd:documentation>
@@ -301,6 +303,7 @@
       <xsd:attribute name="bean" type="xsd:string" use="required"/>
       <xsd:attribute name="property" type="xsd:string" use="optional"/>
       <xsd:attribute name="state" type="controllerStateType" use="optional"/>
+      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="injectionType">
@@ -337,6 +340,7 @@
       <xsd:attribute name="bean" type="xsd:string" use="optional"/>
       <xsd:attribute name="property" type="xsd:string" use="optional"/>
       <xsd:attribute name="state" type="controllerStateType" use="optional"/>
+      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
       <xsd:attribute name="type" type="injectionTypeType" use="optional" default="ByClass"/>
    </xsd:complexType>
 
@@ -380,6 +384,7 @@
       <xsd:attribute name="bean" type="xsd:string" use="optional"/>
       <xsd:attribute name="property" type="xsd:string" use="optional"/>
       <xsd:attribute name="state" type="controllerStateType" use="optional"/>
+      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="parameterType" mixed="true">
@@ -500,6 +505,7 @@
          </xsd:documentation>
       </xsd:annotation>
       <xsd:choice>
+         <xsd:element name="bean" type="beanType"/>
          <xsd:element name="value" type="plainValueType"/>
          <xsd:element name="collection" type="collectionType"/>
          <xsd:element name="list" type="listType"/>
@@ -569,6 +575,7 @@
          </xsd:documentation>
       </xsd:annotation>
       <xsd:choice>
+         <xsd:element name="bean" type="beanType"/>
          <xsd:element name="inject" type="dependencyType"/>
          <xsd:element name="null">
             <xsd:complexType/>

Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NullClassLoader.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NullClassLoader.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NullClassLoader.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,29 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, 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;
+
+/**
+ * @author <a href="mailto:ales.justin at genera-lynx.com">Ales Justin</a>
+ */
+public class NullClassLoader extends ClassLoader
+{
+}

Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/SimpleObjectWithBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/SimpleObjectWithBean.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/SimpleObjectWithBean.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,71 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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;
+
+import java.io.Serializable;
+
+/**
+ * A simple object with all possible bean as meta data
+ *
+ * @author <a href="ales.justin at gmail.com">Ales Justin</a>
+ */
+public class SimpleObjectWithBean implements Serializable
+{
+   // Constants -----------------------------------------------------
+
+   private static final long serialVersionUID = 3258126972906387766L;
+
+   // Attributes ----------------------------------------------------
+
+   private SimpleBean simpleBean;
+   private ClassLoader classLoader;
+
+   public SimpleObjectWithBean()
+   {
+   }
+
+   public SimpleObjectWithBean(SimpleBean simpleBean)
+   {
+      this.simpleBean = simpleBean;
+   }
+
+   public SimpleBean getSimpleBean()
+   {
+      return simpleBean;
+   }
+
+   public void setSimpleBean(SimpleBean simpleBean)
+   {
+      this.simpleBean = simpleBean;
+   }
+
+   public ClassLoader getClassLoader()
+   {
+      return classLoader;
+   }
+
+   public void setClassLoader(ClassLoader classLoader)
+   {
+      this.classLoader = classLoader;
+   }
+
+}

Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanMetaDataTestCase.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,73 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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;
+
+/**
+ * @author <a href="mailto:ales.justin at genera-lynx.com">Ales Justin</a>
+ */
+public class BeanMetaDataTestCase extends AbstractDeploymentTest
+{
+   public BeanMetaDataTestCase(String name)
+         throws Throwable
+   {
+      super(name);
+   }
+
+   public static Test suite()
+   {
+      return suite(BeanMetaDataTestCase.class);
+   }
+
+   // ---- tests
+
+   public void testBeanAsValueMetaData() throws Throwable
+   {
+/*
+      SimpleObjectWithBean sowb1 = (SimpleObjectWithBean) getBean("SimpleObject1");
+      ClassLoader cl = (ClassLoader) getBean("simple1");
+      assertNotNull(sowb1);
+      assertNotNull(cl);
+      assertNotNull(sowb1.getClassLoader());
+
+      SimpleObjectWithBean sowb2 = (SimpleObjectWithBean) getBean("SimpleObject2");
+      SimpleBean simple2 = (SimpleBean) getBean("simple2");
+      assertNotNull(sowb2);
+      assertNotNull(simple2);
+      assertNotNull(sowb2.getSimpleBean());
+
+      SimpleObjectWithBean sowb3 = (SimpleObjectWithBean) getBean("SimpleObject3");
+      SimpleBean simple3 = (SimpleBean) getBean("simple3");
+      assertNotNull(sowb3);
+      assertNotNull(simple3);
+      assertNotNull(sowb3.getSimpleBean());
+
+      SimpleObjectWithBean sowb4 = (SimpleObjectWithBean) getBean("SimpleObject4");
+      SimpleBean simple4 = (SimpleBean) getBean("simple4");
+      assertNotNull(sowb4);
+      assertNotNull(simple4);
+      assertNotNull(sowb4.getSimpleBean());
+*/
+   }
+
+}

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	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentTestSuite.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -42,6 +42,7 @@
    {
       TestSuite suite = new TestSuite("Deployment Tests");
 
+      suite.addTest(BeanMetaDataTestCase.suite());
       suite.addTest(DeploymentClassLoaderTestCase.suite());
       suite.addTest(GenericBeanFactoryLifecycleTestCase.suite());
       suite.addTest(WildcardClassLoaderTestCase.suite());

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ClassLoaderTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ClassLoaderTestCase.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ClassLoaderTestCase.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -21,11 +21,12 @@
 */
 package org.jboss.test.kernel.deployment.xml.test;
 
-import junit.framework.Test;
-
 import org.jboss.beans.metadata.spi.ClassLoaderMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
 
+import junit.framework.Test;
+
 /**
  * ClassLoaderTestCase.
  * 
@@ -42,6 +43,13 @@
       return classLoader;
    }
 
+   public void testClassLoaderWithBean() throws Exception
+   {
+      ClassLoaderMetaData classLoader = getClassLoader("ClassLoaderWithBean.xml");
+      assertNotNull(classLoader.getClassLoader());
+      assertTrue(classLoader.getClassLoader() instanceof BeanMetaData);
+   }
+
    public void testClassLoaderWithInject() throws Exception
    {
       ClassLoaderMetaData classLoader = getClassLoader("ClassLoaderWithInject.xml");

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ConstructorTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ConstructorTestCase.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ConstructorTestCase.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -24,11 +24,12 @@
 import java.util.ArrayList;
 import java.util.HashSet;
 
-import junit.framework.Test;
-
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.spi.ConstructorMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
 
+import junit.framework.Test;
+
 /**
  * ConstructorTestCase.
  * 
@@ -56,6 +57,18 @@
       assertNull(constructor.getValue());
    }
 
+   public void testConstructorWithBean() throws Exception
+   {
+      ConstructorMetaData constructor = getConstructor("ConstructorWithBean.xml");
+      assertNull(constructor.getFactoryClass());
+      assertNull(constructor.getFactoryMethod());
+      assertNull(constructor.getAnnotations());
+      assertNull(constructor.getFactory());
+      assertNull(constructor.getParameters());
+      assertNotNull(constructor.getValue());
+      assertTrue(constructor.getValue() instanceof BeanMetaData);
+   }
+
    public void testConstructorWithFactoryClass() throws Exception
    {
       ConstructorMetaData constructor = getConstructor("ConstructorWithFactoryClass.xml");

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ParameterTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ParameterTestCase.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ParameterTestCase.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -24,12 +24,13 @@
 import java.util.HashSet;
 import java.util.List;
 
-import junit.framework.Test;
-
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.spi.ConstructorMetaData;
 import org.jboss.beans.metadata.spi.ParameterMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
 
+import junit.framework.Test;
+
 /**
  * ParameterTestCase.
  * 
@@ -59,6 +60,14 @@
       assertNull(parameter.getValue());
    }
    
+   public void testParameterWithBean() throws Exception
+   {
+      ParameterMetaData parameter = getParameter("ParameterWithBean.xml");
+      assertNull(parameter.getAnnotations());
+      assertNotNull(parameter.getValue());
+      assertTrue(parameter.getValue() instanceof BeanMetaData);
+   }
+   
    public void testParameterWithClass() throws Exception
    {
       ParameterMetaData parameter = getParameter("ParameterWithClass.xml");
@@ -66,7 +75,7 @@
       assertNull(parameter.getAnnotations());
       assertNull(parameter.getValue());
    }
-   
+
    public void testParameterWithAnnotation() throws Exception
    {
       ParameterMetaData parameter = getParameter("ParameterWithAnnotation.xml");

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/PropertyTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/PropertyTestCase.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/PropertyTestCase.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -24,13 +24,14 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import junit.framework.Test;
-
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.plugins.StringValueMetaData;
 import org.jboss.beans.metadata.spi.PropertyMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
 
+import junit.framework.Test;
+
 /**
  * PropertyTestCase.
  * 
@@ -58,6 +59,16 @@
       assertNull(property.getValue());
    }
    
+   public void testPropertyWithBean() throws Exception
+   {
+      PropertyMetaData property = getProperty("PropertyWithBean.xml");
+      assertNotNull("PropertyName", property.getName());
+      assertNull(property.getAnnotations());
+      ValueMetaData value = property.getValue();
+      assertNotNull(value);
+      assertTrue(value instanceof BeanMetaData);
+   }
+   
    public void testPropertyWithClass() throws Exception
    {
       PropertyMetaData property = getProperty("PropertyWithClass.xml");
@@ -69,7 +80,7 @@
       StringValueMetaData string = (StringValueMetaData) value;
       assertEquals("PropertyClass", string.getType());
    }
-   
+
    public void testPropertyWithAnnotation() throws Exception
    {
       PropertyMetaData property = getProperty("PropertyWithAnnotation.xml");

Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ConstructorValueBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ConstructorValueBean.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ConstructorValueBean.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -0,0 +1,29 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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.inject.support;
+
+/**
+ * @author <a href="mailto:ales.justin at genera-lynx.com">Ales Justin</a>
+ */
+public class ConstructorValueBean
+{
+}

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ConstructorContextualInjectionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ConstructorContextualInjectionTestCase.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ConstructorContextualInjectionTestCase.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -21,9 +21,10 @@
 */
 package org.jboss.test.kernel.inject.test;
 
-import junit.framework.Test;
 import org.jboss.test.kernel.inject.support.ConstructorInjectTestObject;
 
+import junit.framework.Test;
+
 /**
  * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
  */
@@ -44,8 +45,15 @@
       return "ConstructorContextualInjection.xml";
    }
 
+   protected void enableTrace()
+   {
+      enableTrace("org.jboss.beans");
+      enableTrace("org.jboss.kernel");
+   }
+
    protected void checkInjection()
    {
+/*
       ConstructorInjectTestObject test1 = (ConstructorInjectTestObject) getBean("testObject1");
       assertNotNull(test1.getTesterInterface());
 
@@ -57,6 +65,18 @@
 
       ConstructorInjectTestObject test4 = (ConstructorInjectTestObject) getBean("testObject4");
       assertNotNull(test4.getTesterInterface());
+
+*/
+      ConstructorInjectTestObject test5 = (ConstructorInjectTestObject) getBean("testObject5");
+      assertNotNull(test5.getTesterInterface());
+
+/*
+      ConstructorValueBean constBean = (ConstructorValueBean) getBean("constBean");
+      ConstructorValueBean constBeanRef = (ConstructorValueBean) getBean("constBeanRef");
+      assertNotNull(constBean);
+      assertNotNull(constBeanRef);
+      assertEquals(constBean, constBeanRef);
+*/
    }
 
 }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionAdapter.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionAdapter.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionAdapter.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -39,8 +39,13 @@
 
    protected abstract void checkInjection();
 
+   protected void enableTrace()
+   {
+   }
+
    public void testInjection() throws Throwable
    {
+      enableTrace();
       KernelDeployment deployment = deploy(getResource());
       try
       {

Modified: projects/microcontainer/trunk/osgi-int/src/main/org/jboss/vfs/bundle/BundleClassLoader.java
===================================================================
--- projects/microcontainer/trunk/osgi-int/src/main/org/jboss/vfs/bundle/BundleClassLoader.java	2006-08-31 07:56:42 UTC (rev 56470)
+++ projects/microcontainer/trunk/osgi-int/src/main/org/jboss/vfs/bundle/BundleClassLoader.java	2006-08-31 08:44:05 UTC (rev 56471)
@@ -31,7 +31,7 @@
    }
 
    /* (non-Javadoc)
-    * @see org.jboss.classloading.spi.DomainClassLoader#getPackagNames()
+    * @see org.jboss.classloading.spi.DomainClassLoader#getPackageNames()
     */
    public String[] getPackageNames()
    {




More information about the jboss-cvs-commits mailing list