[jboss-cvs] JBossAS SVN: r64100 - 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
Tue Jul 17 15:23:04 EDT 2007


Author: alesj
Date: 2007-07-17 15:23:03 -0400 (Tue, 17 Jul 2007)
New Revision: 64100

Added:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java
   projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/InjectionWithFromContext.xml
Removed:
   projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameAware.xml
   projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameMethod.xml
   projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameAware.xml
   projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameMethod.xml
Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.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/main/org/jboss/kernel/plugins/deployment/xml/InjectionHandler.java
   projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_1_0.xsd
   projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd
   projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/InjectionTestCase.java
Log:
FromContext impl - JBMICROCONT-192 fix.

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -71,12 +71,6 @@
    /** The name of this instance */
    protected String name;
 
-   /** The name aware flag */
-   protected boolean nameAware;
-
-   /** The name method name */
-   protected String nameMethod;
-
    /** The aliases */
    protected Set<Object> aliases;
 
@@ -346,36 +340,6 @@
       flushJBossObjectCache();
    }
 
-   public boolean isNameAware()
-   {
-      return nameAware;
-   }
-
-   /**
-    * Set the name aware.
-    *
-    * @param nameAware the flag
-    */
-   public void setNameAware(boolean nameAware)
-   {
-      this.nameAware = nameAware;
-   }
-
-   public String getNameMethod()
-   {
-      return nameMethod;
-   }
-
-   /**
-    * 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/AbstractInjectionValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -46,6 +46,8 @@
 
    protected InjectionOption injectionOption = InjectionOption.STRICT;
 
+   protected FromContext fromContext;
+
    /**
     * Simplyifies things with AutowireType.BY_NAME
     */
@@ -99,6 +101,16 @@
       this.injectionOption = injectionOption;
    }
 
+   public FromContext getFromContext()
+   {
+      return fromContext;
+   }
+
+   public void setFromContext(FromContext fromContext)
+   {
+      this.fromContext = fromContext;
+   }
+
    public AbstractPropertyMetaData getPropertyMetaData()
    {
       return propertyMetaData;
@@ -127,8 +139,22 @@
       return lookupExists || isCallback;
    }
 
+   @SuppressWarnings("unchecked")
    public Object getValue(TypeInfo info, ClassLoader cl) throws Throwable
    {
+      // controller context property injection
+      if (fromContext != null)
+      {
+         ControllerState state = dependentState;
+         if (state == null)
+            state = ControllerState.INSTANTIATED;
+         Controller controller = context.getController();
+         ControllerContext lookup = controller.getContext(getUnderlyingValue(), state);
+         if (lookup == null)
+            throw new Error("Should not be here - dependency failed - " + this);
+         return fromContext.executeLookup(lookup);
+      }
+
       // by class type
       if (getUnderlyingValue() == null)
       {
@@ -154,11 +180,30 @@
 
    protected boolean addDependencyItem()
    {
-      return InjectionOption.STRICT.equals(injectionOption);
+      return InjectionOption.STRICT.equals(injectionOption) || fromContext != null;
    }
 
+   public Object getUnderlyingValue()
+   {
+      Object original = super.getUnderlyingValue();
+      return (fromContext != null && original == null) ? context.getName() : original;
+   }
+
    public void initialVisit(MetaDataVisitor visitor)
    {
+      // controller context property injection
+      if (fromContext != null)
+      {
+         if (dependentState != null && ControllerState.INSTANTIATED.equals(dependentState) == false && super.getUnderlyingValue() == null)
+         {
+            if (log.isTraceEnabled())
+               log.trace("Cannot set demand state on itself, changing to Instantiated: " + this);
+            dependentState = ControllerState.INSTANTIATED;
+         }
+         super.initialVisit(visitor);
+         return;
+      }
+
       // no bean specified
       if (getUnderlyingValue() == null)
       {
@@ -260,6 +305,8 @@
          buffer.append(" injectionType=").append(injectionType);
       if (propertyMetaData != null)
          buffer.append(" propertyMetaData=").append(propertyMetaData.getName()); //else overflow - indefinite recursion
+      if (fromContext != null)
+         buffer.append(" fromContext=").append(fromContext);
    }
 
 }

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -0,0 +1,241 @@
+/*
+* 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.beans.metadata.plugins;
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.util.JBossObject;
+import org.jboss.util.JBossStringBuilder;
+import org.jboss.reflect.plugins.introspection.ReflectionUtils;
+import org.jboss.dependency.spi.ControllerContext;
+
+/**
+ * Inject from controller context:
+ *  * name - controller context name
+ *  * metadata - inject MetaData
+ *  * scope - ScopeKey
+ *  * id - identifier
+ *  * ...
+ *
+ * @param <T> exact controller context type
+ * @author <a href="mailto:ales.justin at genera-lynx.com">Ales Justin</a>
+ */
+public abstract class FromContext<T extends ControllerContext> extends JBossObject
+      implements Serializable
+{
+   private static final long serialVersionUID = 1L;
+
+   /** name */
+   public static final FromContext NAME = new NameFromContext("name");
+
+   /** metadata */
+   public static final FromContext METADATA = new MetaDataFromContext("metadata");
+
+   /** scope */
+   public static final FromContext SCOPE = new ScopeFromContext("scope");
+
+   /** id */
+   public static final FromContext ID = new IdFromContext("id");
+
+   /** The type string */
+   protected final String fromString;
+
+   /**
+    * Create a new state
+    *
+    * @param fromString the string representation
+    */
+   protected FromContext(String fromString)
+   {
+      if (fromString == null)
+         throw new IllegalArgumentException("Null from string");
+      this.fromString = fromString;
+   }
+
+   /**
+    * Return from type.
+    *
+    * @param optionString type
+    * @return InjectionOption instance
+    */
+   public static FromContext getInstance(String optionString)
+   {
+      if (NAME.getFromString().equalsIgnoreCase(optionString))
+         return NAME;
+      else if (METADATA.getFromString().equalsIgnoreCase(optionString))
+         return METADATA;
+      else if (SCOPE.getFromString().equalsIgnoreCase(optionString))
+         return SCOPE;
+      else if (ID.getFromString().equalsIgnoreCase(optionString))
+         return ID;
+      else
+         return new DynamicFromContext(optionString);
+   }
+
+   /**
+    * Execute injection on context.
+    *
+    * @param context the target context
+    * @return lookup value
+    * @throws Throwable for any error
+    */
+   public abstract Object executeLookup(T context) throws Throwable;
+
+   /**
+    * Get the from string
+    *
+    * @return the state string
+    */
+   public String getFromString()
+   {
+      return fromString;
+   }
+
+   public boolean equals(Object object)
+   {
+      if (object == null || object instanceof FromContext == false)
+         return false;
+      FromContext other = (FromContext) object;
+      return fromString.equals(other.getFromString());
+   }
+
+   public void toString(JBossStringBuilder buffer)
+   {
+      buffer.append(fromString);
+   }
+
+   protected int getHashCode()
+   {
+      return fromString.hashCode();
+   }
+
+   private static class NameFromContext extends FromContext
+   {
+      private static final long serialVersionUID = 1L;
+
+      public NameFromContext(String fromString)
+      {
+         super(fromString);
+      }
+
+      public Object executeLookup(ControllerContext context)
+      {
+         return context.getName();
+      }
+   }
+
+   private static class MetaDataFromContext extends FromContext<KernelControllerContext>
+   {
+      private static final long serialVersionUID = 1L;
+
+      public MetaDataFromContext(String fromString)
+      {
+         super(fromString);
+      }
+
+      public MetaData executeLookup(KernelControllerContext context)
+      {
+         return context.getMetaData();
+      }
+   }
+
+   private static class ScopeFromContext extends FromContext<KernelControllerContext>
+   {
+      private static final long serialVersionUID = 1L;
+
+      public ScopeFromContext(String fromString)
+      {
+         super(fromString);
+      }
+
+      public ScopeKey executeLookup(KernelControllerContext context)
+      {
+         return context.getScope();
+      }
+   }
+
+   private static class IdFromContext extends FromContext
+   {
+      private static final long serialVersionUID = 1L;
+
+      public IdFromContext(String fromString)
+      {
+         super(fromString);
+      }
+
+      public Object executeLookup(ControllerContext context)
+      {
+         // todo - change to actual id when impl
+         return context.getName();
+      }
+   }
+
+   private static class DynamicFromContext extends FromContext
+   {
+      private static final long serialVersionUID = 1L;
+
+      public DynamicFromContext(String fromString)
+      {
+         super(fromString);
+      }
+
+      protected Method findMethod(Class clazz)
+      {
+         if (clazz == null || clazz == Object.class)
+            return null;
+
+         Method[] methods = clazz.getDeclaredMethods();
+         for(Method m : methods)
+         {
+            if (m.getName().equals(getFromString()) && m.getParameterTypes().length == 0)
+            {
+               return m;
+            }
+         }
+
+         Method method = findMethod(clazz.getSuperclass());
+         if (method != null)
+            return method;
+
+         for(Class infc : clazz.getInterfaces())
+         {
+            Method m = findMethod(infc);
+            if (m != null)
+               return m;
+         }
+         return null;
+      }
+
+      public Object executeLookup(ControllerContext context) throws Throwable
+      {
+         Method method = findMethod(context.getClass());
+         if (method == null)
+            throw new IllegalArgumentException("No such getter on context class: " + getFromString());
+         return ReflectionUtils.invoke(method, context, new Object[]{});
+      }
+   }
+
+}

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-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactory.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -23,7 +23,6 @@
 
 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;
@@ -32,7 +31,6 @@
 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;
@@ -69,12 +67,6 @@
    /** 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
     * 
@@ -111,8 +103,6 @@
       }
       invokeLifecycle("create", create, info, cl, result);
       invokeLifecycle("start", start, info, cl, result);
-      if (nameMethod != null)
-         invokeNameMethod(info, cl, result);
       return result;
    }
    
@@ -237,46 +227,6 @@
    }
 
    /**
-    * 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
@@ -307,21 +257,4 @@
       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-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactoryMetaData.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -120,19 +120,6 @@
       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-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -56,20 +56,6 @@
    void setName(String name);
 
    /**
-    * Needs bean name injection.
-    *
-    * @return true for name injection
-    */
-   boolean isNameAware();
-
-   /**
-    * Get the method to inject name.
-    *
-    * @return the name method name
-    */
-   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-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/ConfigureAction.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -66,12 +66,6 @@
       {
          ((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-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryHandler.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -61,10 +61,6 @@
             bean.setBeanClass(attrs.getValue(i));
          else if ("mode".equals(localName))
             bean.setMode(new ControllerMode(attrs.getValue(i)));
-         else if ("name-aware".equals(localName))
-            bean.setNameAware(Boolean.parseBoolean(attrs.getValue(i)));
-         else if ("name-method".equals(localName))
-            bean.setNameMethod(attrs.getValue(i));
       }
    }
 
@@ -87,11 +83,6 @@
          if (constructor.getFactory() == null && constructor.getFactoryClass() == null)
             throw new IllegalArgumentException("BeanFactory should have a class attribute or the constructor element should have a either a factoryClass attribute or a factory element.");
       }
-      // check for default setName method.
-      if (bean.isNameAware() && bean.getNameMethod() == null)
-      {
-         bean.setNameMethod("setName");
-      }
       return bean;
    }
 }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -68,10 +68,6 @@
             bean.setAutowireType(AutowireType.getInstance(attrs.getValue(i)));
          else if ("autowire-candidate".equals(localName))
             bean.setAutowireCandidate(Boolean.parseBoolean(attrs.getValue(i)));
-         else if ("name-aware".equals(localName))
-            bean.setNameAware(Boolean.parseBoolean(attrs.getValue(i)));
-         else if ("name-method".equals(localName))
-            bean.setNameMethod(attrs.getValue(i));
       }
    }
 
@@ -91,11 +87,6 @@
          else if (constructor.getFactory() == null && constructor.getFactoryClass() == null)
             throw new IllegalArgumentException("Bean should have a class attribute or the constructor element should have one of a factoryClass attribute or a factory element, or embedded value.");
       }
-      // check for default setName method.
-      if (bean.isNameAware() && bean.getNameMethod() == null)
-      {
-         bean.setNameMethod("setName");
-      }
       return bean;
    }
 }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -47,6 +47,7 @@
 import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
 import org.jboss.beans.metadata.plugins.InjectionOption;
 import org.jboss.beans.metadata.plugins.StringValueMetaData;
+import org.jboss.beans.metadata.plugins.FromContext;
 import org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData;
 import org.jboss.beans.metadata.spi.AutowireType;
 import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
@@ -352,23 +353,8 @@
                   bean.setBean(attrs.getValue(i));
                else if ("mode".equals(localName))
                   bean.setMode(new ControllerMode(attrs.getValue(i)));
-               else if ("name-aware".equals(localName))
-                  bean.setNameAware(Boolean.parseBoolean(attrs.getValue(i)));
-               else if ("name-method".equals(localName))
-                  bean.setNameMethod(attrs.getValue(i));
             }
          }
-
-         public Object endElement(Object o, QName qName, ElementBinding element)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData)o;
-            // check for default setName method.
-            if (bean.isNameAware() && bean.getNameMethod() == null)
-            {
-               bean.setNameMethod("setName");
-            }
-            return bean;
-         }
       });
 
       // beanfactory binding
@@ -392,23 +378,8 @@
                   bean.setBeanClass(attrs.getValue(i));
                else if ("mode".equals(localName))
                   bean.setMode(new ControllerMode(attrs.getValue(i)));
-               else if ("name-aware".equals(localName))
-                  bean.setNameAware(Boolean.parseBoolean(attrs.getValue(i)));
-               else if ("name-method".equals(localName))
-                  bean.setNameMethod(attrs.getValue(i));
             }
          }
-
-         public Object endElement(Object o, QName qName, ElementBinding element)
-         {
-            GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)o;
-            // check for default setName method.
-            if (bean.isNameAware() && bean.getNameMethod() == null)
-            {
-               bean.setNameMethod("setName");
-            }
-            return bean;
-         }
       });
 
       // bean has a classloader
@@ -1079,9 +1050,10 @@
                   injection.setInjectionType(AutowireType.getInstance(attrs.getValue(i)));
                else if ("option".equals(localName))
                   injection.setInjectionOption(InjectionOption.getInstance(attrs.getValue(i)));
+               else if ("fromContext".equals(localName))
+                  injection.setFromContext(FromContext.getInstance(attrs.getValue(i)));
             }
          }
-
       });
 
       // value binding

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	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InjectionHandler.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -10,6 +10,7 @@
 import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
 import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
 import org.jboss.beans.metadata.plugins.InjectionOption;
+import org.jboss.beans.metadata.plugins.FromContext;
 import org.jboss.beans.metadata.spi.AutowireType;
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementHandler;
@@ -56,7 +57,8 @@
             injection.setInjectionType(AutowireType.getInstance(attrs.getValue(i)));
          else if ("option".equals(localName))
             injection.setInjectionOption(InjectionOption.getInstance(attrs.getValue(i)));
+         else if ("fromContext".equals(localName))
+            injection.setFromContext(FromContext.getInstance(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-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_1_0.xsd	2007-07-17 19:23:03 UTC (rev 64100)
@@ -91,8 +91,6 @@
       <xsd:attribute name="name" type="xsd:string" use="optional"/>
       <xsd:attribute name="class" type="xsd:token" use="required"/>
       <xsd:attribute name="mode" type="controllerModeType" use="optional"/>
-      <xsd:attribute name="name-aware" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="name-method" type="xsd:string" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="classloaderType" mixed="true">
@@ -158,8 +156,6 @@
       </xsd:sequence>
       <xsd:attribute name="name" type="xsd:string" use="optional"/>
       <xsd:attribute name="class" type="xsd:token" use="required"/>
-      <xsd:attribute name="name-aware" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="name-method" type="xsd:string" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="constructorType">
@@ -296,6 +292,7 @@
       <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
       <xsd:attribute name="type" type="injectionTypeType" use="optional" default="ByClass"/>
       <xsd:attribute name="option" type="optionType" use="optional" default="Strict"/>
+      <xsd:attribute name="fromContext" type="contextType" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="parameterType" mixed="true">
@@ -809,6 +806,23 @@
       </xsd:restriction>
    </xsd:simpleType>
 
+   <xsd:simpleType name="contextType">
+      <xsd:annotation>
+         <xsd:documentation>
+            <![CDATA[
+            You can set the type of context lookup
+            Valid values include:
+            name
+            metadata
+            scope
+            ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+      <xsd:restriction base="xsd:string">
+         <xsd:whiteSpace value="collapse"/>
+      </xsd:restriction>
+   </xsd:simpleType>
+
    <!--
      WARN:
      Do not use this in the bean deployer, it won't work!

Modified: projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd	2007-07-17 19:23:03 UTC (rev 64100)
@@ -110,8 +110,6 @@
       <xsd:attribute name="abstract" type="xsd:boolean" use="optional"/>
       <xsd:attribute name="autowire-type" type="autowireTypeType" use="optional"/>
       <xsd:attribute name="autowire-candidate" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="name-aware" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="name-method" type="xsd:string" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="classloaderType" mixed="true">
@@ -181,8 +179,6 @@
       </xsd:sequence>
       <xsd:attribute name="name" type="xsd:string" use="optional"/>
       <xsd:attribute name="class" type="xsd:token" use="required"/>
-      <xsd:attribute name="name-aware" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="name-method" type="xsd:string" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="constructorType">
@@ -398,6 +394,7 @@
       <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
       <xsd:attribute name="type" type="autowireTypeType" use="optional" default="ByClass"/>
       <xsd:attribute name="option" type="optionType" use="optional" default="Strict"/>
+      <xsd:attribute name="fromContext" type="contextType" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="factoryType">
@@ -988,6 +985,23 @@
       </xsd:restriction>
    </xsd:simpleType>
 
+   <xsd:simpleType name="contextType">
+      <xsd:annotation>
+         <xsd:documentation>
+            <![CDATA[
+            You can set the type of context property lookup
+            Valid values include:
+            name
+            metadata
+            scope
+            ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+      <xsd:restriction base="xsd:string">
+         <xsd:whiteSpace value="collapse"/>
+      </xsd:restriction>
+   </xsd:simpleType>
+
    <!--
      WARN:
      Do not use this in the bean deployer, it won't work!

Modified: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml	2007-07-17 19:23:03 UTC (rev 64100)
@@ -2,12 +2,28 @@
 
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
 
-   <bean name="bean" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-method="applyName" />
+   <bean name="set_name_bean" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+      <property name="name"><inject fromContext="name"/></property>
+   </bean>
 
-   <beanfactory name="factory" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-method="applyName" />
+   <beanfactory name="set_name_factory" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+      <property name="name"><inject fromContext="name"/></property>
+   </beanfactory>
 
-   <bean name="set_name_bean" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-aware="true" />
+   <bean name="metadata" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+      <property name="metadata"><inject fromContext="metadata"/></property>
+   </bean>
 
-   <beanfactory name="set_name_factory" class="org.jboss.test.kernel.deployment.support.NameAwareBean" name-aware="true" />
+   <bean name="scopekey" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+      <property name="scopeKey"><inject fromContext="scope"/></property>
+   </bean>
 
+   <bean name="dynamic" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+      <property name="dynamic"><inject fromContext="getBeanMetaData"/></property>
+   </bean>
+
+   <bean name="other" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+      <property name="name"><inject bean="set_name_bean" fromContext="name"/></property>
+   </bean>
+
 </deployment>

Deleted: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameAware.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameAware.xml	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameAware.xml	2007-07-17 19:23:03 UTC (rev 64100)
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<beanfactory xmlns="urn:jboss:bean-deployer:2.0" class="Dummy" name-aware="true" />

Deleted: 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	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryWithNameMethod.xml	2007-07-17 19:23:03 UTC (rev 64100)
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<beanfactory xmlns="urn:jboss:bean-deployer:2.0" class="Dummy" name-method="applyName" />

Deleted: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameAware.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameAware.xml	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameAware.xml	2007-07-17 19:23:03 UTC (rev 64100)
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy" name-aware="true"/>

Deleted: 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	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithNameMethod.xml	2007-07-17 19:23:03 UTC (rev 64100)
@@ -1,3 +0,0 @@
-<?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/resources/tests/org/jboss/test/kernel/deployment/xml/test/InjectionWithFromContext.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/InjectionWithFromContext.xml	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/InjectionWithFromContext.xml	2007-07-17 19:23:03 UTC (rev 64100)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy">
+   <property name="Dummy">
+      <inject bean="Dummy" fromContext="name"/>
+   </property>
+</bean>

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -21,6 +21,9 @@
 */
 package org.jboss.test.kernel.deployment.support;
 
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.scope.ScopeKey;
+
 /**
  * A simple bean with name
  *
@@ -29,6 +32,9 @@
 public class NameAwareBean
 {
    private String name;
+   private MetaData metadata;
+   private ScopeKey scopeKey;
+   private Object dynamic;
 
    public String getName()
    {
@@ -44,4 +50,34 @@
    {
       this.name = name;
    }
+
+   public MetaData getMetadata()
+   {
+      return metadata;
+   }
+
+   public void setMetadata(MetaData metadata)
+   {
+      this.metadata = metadata;
+   }
+
+   public ScopeKey getScopeKey()
+   {
+      return scopeKey;
+   }
+
+   public void setScopeKey(ScopeKey scopeKey)
+   {
+      this.scopeKey = scopeKey;
+   }
+
+   public Object getDynamic()
+   {
+      return dynamic;
+   }
+
+   public void setDynamic(Object dynamic)
+   {
+      this.dynamic = dynamic;
+   }
 }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -24,6 +24,9 @@
 import junit.framework.Test;
 import org.jboss.test.kernel.deployment.support.NameAwareBean;
 import org.jboss.beans.metadata.spi.factory.BeanFactory;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.scope.ScopeKey;
 
 /**
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
@@ -43,19 +46,6 @@
 
    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());
-
       NameAwareBean nsb = (NameAwareBean)getBean("set_name_bean");
       assertNotNull(nsb);
       assertEquals("set_name_bean", nsb.getName());
@@ -65,5 +55,27 @@
       NameAwareBean b3 = (NameAwareBean)nsf.createBean();
       assertNotNull(b3);
       assertEquals("set_name_factory", b3.getName());
+      NameAwareBean b4 = (NameAwareBean)nsf.createBean();
+      assertNotNull(b4);
+      assertEquals("set_name_factory", b4.getName());
+
+      NameAwareBean metadata = (NameAwareBean)getBean("metadata");
+      assertNotNull(metadata);
+      assertNotNull(metadata.getMetadata());
+      assertInstanceOf(metadata.getMetadata(), MetaData.class);
+
+      NameAwareBean scopekey = (NameAwareBean)getBean("scopekey");
+      assertNotNull(scopekey);
+      assertNotNull(scopekey.getScopeKey());
+      assertInstanceOf(scopekey.getScopeKey(), ScopeKey.class);
+
+      NameAwareBean dynamic = (NameAwareBean)getBean("dynamic");
+      assertNotNull(dynamic);
+      assertNotNull(dynamic.getDynamic());
+      assertInstanceOf(dynamic.getDynamic(), BeanMetaData.class);
+
+      NameAwareBean other = (NameAwareBean)getBean("other");
+      assertNotNull(other);
+      assertEquals("set_name_bean", other.getName());
    }
 }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanFactoryTestCase.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -27,8 +27,6 @@
 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;
 
 /**
@@ -705,73 +703,6 @@
       assertCallbacks(expected, factory.getUninstallCallbacks());
    }
 
-   public void testBeanFactoryWithNameAware() throws Exception
-   {
-      GenericBeanFactoryMetaData factory = unmarshalBeanFactory("BeanFactoryWithNameAware.xml");
-      assertTrue(factory.isNameAware());
-      assertNull(factory.getNameMethod());
-      PropertyMetaData property = factory.getProperty("nameMethod");
-      assertNotNull(property);
-      ValueMetaData value = property.getValue();
-      assertNotNull(value);
-      assertEquals("setName", value.getUnderlyingValue());
-      assertNull(factory.getName());
-      assertEquals(GenericBeanFactory.class.getName(), factory.getBean());
-      assertEquals("Dummy", factory.getBeanClass());
-      assertNull(factory.getMode());
-      assertNull(factory.getAnnotations());
-      assertNull(factory.getClassLoader());
-      assertNotNull(factory.getConstructor());
-      assertNull(factory.getProperty("constructor"));
-      assertNotNull(factory.getProperties());
-      assertNull(factory.getProperty("properties"));
-      assertNull(factory.getCreate());
-      assertNull(factory.getProperty("create"));
-      assertNull(factory.getStart());
-      assertNull(factory.getProperty("start"));
-      assertNull(factory.getStop());
-      assertNull(factory.getDestroy());
-      assertNull(factory.getDemands());
-      assertNull(factory.getSupplies());
-      assertNull(factory.getInstalls());
-      assertNull(factory.getUninstalls());
-      assertNull(factory.getInstallCallbacks());
-      assertNull(factory.getUninstallCallbacks());
-   }
-
-   public void testBeanFactoryWithNameMethod() throws Exception
-   {
-      GenericBeanFactoryMetaData factory = unmarshalBeanFactory("BeanFactoryWithNameMethod.xml");
-      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-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -816,55 +816,6 @@
       assertNull(bean.getUninstallCallbacks());
    }
 
-   public void testBeanWithNameAware() throws Exception
-   {
-      AbstractBeanMetaData bean = unmarshalBean("BeanWithNameAware.xml");
-      assertTrue(bean.isNameAware());
-      assertEquals("setName", bean.getNameMethod());
-      assertNull(bean.getAutowireType());
-      assertNull(bean.getName());
-      assertEquals("Dummy", bean.getBean());
-      assertNull(bean.getMode());
-      assertNull(bean.getAnnotations());
-      assertNull(bean.getClassLoader());
-      assertNull(bean.getConstructor());
-      assertNull(bean.getProperties());
-      assertNull(bean.getCreate());
-      assertNull(bean.getStart());
-      assertNull(bean.getStop());
-      assertNull(bean.getDestroy());
-      assertNull(bean.getDemands());
-      assertNull(bean.getSupplies());
-      assertNull(bean.getInstalls());
-      assertNull(bean.getUninstalls());
-      assertNull(bean.getInstallCallbacks());
-      assertNull(bean.getUninstallCallbacks());
-   }
-
-   public void testBeanWithNameMethod() throws Exception
-   {
-      AbstractBeanMetaData bean = unmarshalBean("BeanWithNameMethod.xml");
-      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);

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/InjectionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/InjectionTestCase.java	2007-07-17 18:05:23 UTC (rev 64099)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/InjectionTestCase.java	2007-07-17 19:23:03 UTC (rev 64100)
@@ -27,6 +27,8 @@
 
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
+import org.jboss.beans.metadata.plugins.FromContext;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
 import org.jboss.beans.metadata.spi.PropertyMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.dependency.spi.ControllerState;
@@ -39,7 +41,7 @@
  */
 public class InjectionTestCase extends AbstractXMLTest
 {
-   protected AbstractDependencyValueMetaData getInjection(String name) throws Exception
+   protected AbstractInjectionValueMetaData getInjection(String name) throws Exception
    {
       AbstractBeanMetaData bean = unmarshalBean(name);
       Set properties = bean.getProperties();
@@ -49,8 +51,8 @@
       assertNotNull(property);
       ValueMetaData value = property.getValue();
       assertNotNull(property);
-      assertTrue(value instanceof AbstractDependencyValueMetaData);
-      return (AbstractDependencyValueMetaData) value;
+      assertTrue(value instanceof AbstractInjectionValueMetaData);
+      return (AbstractInjectionValueMetaData) value;
    }
 
    public void testInjectionWithBean() throws Exception
@@ -90,6 +92,14 @@
       }
    }
 
+   public void testInjectionWithFromContext() throws Exception
+   {
+      AbstractInjectionValueMetaData dependency = getInjection("InjectionWithFromContext.xml");
+      assertEquals("Dummy", dependency.getValue());
+      assertNull(dependency.getProperty());
+      assertEquals(FromContext.getInstance("name"), dependency.getFromContext());
+   }
+
    public static Test suite()
    {
       return suite(InjectionTestCase.class);




More information about the jboss-cvs-commits mailing list