[jboss-cvs] JBossAS SVN: r64107 - in projects/microcontainer/trunk/kernel/src: resources/tests/org/jboss/test/kernel/deployment/test and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jul 18 02:15:51 EDT 2007


Author: alesj
Date: 2007-07-18 02:15:51 -0400 (Wed, 18 Jul 2007)
New Revision: 64107

Modified:
   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/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
Log:
Additional FromContext impls.

Modified: 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	2007-07-18 06:01:54 UTC (rev 64106)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/FromContext.java	2007-07-18 06:15:51 UTC (rev 64107)
@@ -23,6 +23,8 @@
 
 import java.io.Serializable;
 import java.lang.reflect.Method;
+import java.util.Set;
+import java.util.Collections;
 
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.metadata.spi.MetaData;
@@ -31,6 +33,7 @@
 import org.jboss.util.JBossStringBuilder;
 import org.jboss.reflect.plugins.introspection.ReflectionUtils;
 import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.beans.info.spi.BeanInfo;
 
 /**
  * Inject from controller context:
@@ -51,9 +54,15 @@
    /** name */
    public static final FromContext NAME = new NameFromContext("name");
 
+   /** alias */
+   public static final FromContext ALIAS = new AliasFromContext("alias");
+
    /** metadata */
    public static final FromContext METADATA = new MetaDataFromContext("metadata");
 
+   /** beaninfo */
+   public static final FromContext BEANINFO = new BeanInfoFromContext("beaninfo");
+
    /** scope */
    public static final FromContext SCOPE = new ScopeFromContext("scope");
 
@@ -78,21 +87,25 @@
    /**
     * Return from type.
     *
-    * @param optionString type
-    * @return InjectionOption instance
+    * @param fromString type
+    * @return FromContext instance
     */
-   public static FromContext getInstance(String optionString)
+   public static FromContext getInstance(String fromString)
    {
-      if (NAME.getFromString().equalsIgnoreCase(optionString))
+      if (NAME.getFromString().equalsIgnoreCase(fromString))
          return NAME;
-      else if (METADATA.getFromString().equalsIgnoreCase(optionString))
+      else if (ALIAS.getFromString().equalsIgnoreCase(fromString))
+         return ALIAS;
+      else if (METADATA.getFromString().equalsIgnoreCase(fromString))
          return METADATA;
-      else if (SCOPE.getFromString().equalsIgnoreCase(optionString))
+      else if (BEANINFO.getFromString().equalsIgnoreCase(fromString))
+         return BEANINFO;
+      else if (SCOPE.getFromString().equalsIgnoreCase(fromString))
          return SCOPE;
-      else if (ID.getFromString().equalsIgnoreCase(optionString))
+      else if (ID.getFromString().equalsIgnoreCase(fromString))
          return ID;
       else
-         return new DynamicFromContext(optionString);
+         return new DynamicFromContext(fromString);
    }
 
    /**
@@ -147,6 +160,21 @@
       }
    }
 
+   private static class AliasFromContext extends FromContext
+   {
+      private static final long serialVersionUID = 1L;
+
+      public AliasFromContext(String fromString)
+      {
+         super(fromString);
+      }
+
+      public Set<Object> executeLookup(ControllerContext context)
+      {
+         return Collections.unmodifiableSet(context.getAliases());
+      }
+   }
+
    private static class MetaDataFromContext extends FromContext<KernelControllerContext>
    {
       private static final long serialVersionUID = 1L;
@@ -162,6 +190,21 @@
       }
    }
 
+   private static class BeanInfoFromContext extends FromContext<KernelControllerContext>
+   {
+      private static final long serialVersionUID = 1L;
+
+      public BeanInfoFromContext(String fromString)
+      {
+         super(fromString);
+      }
+
+      public BeanInfo executeLookup(KernelControllerContext context)
+      {
+         return context.getBeanInfo();
+      }
+   }
+
    private static class ScopeFromContext extends FromContext<KernelControllerContext>
    {
       private static final long serialVersionUID = 1L;
@@ -173,7 +216,8 @@
 
       public ScopeKey executeLookup(KernelControllerContext context)
       {
-         return context.getScope();
+         ScopeKey key = context.getScope();
+         return key != null ? key.clone() : null;
       }
    }
 
@@ -234,6 +278,7 @@
          Method method = findMethod(context.getClass());
          if (method == null)
             throw new IllegalArgumentException("No such getter on context class: " + getFromString());
+         // wrap as immutable?
          return ReflectionUtils.invoke(method, context, new Object[]{});
       }
    }

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-18 06:01:54 UTC (rev 64106)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.xml	2007-07-18 06:15:51 UTC (rev 64107)
@@ -10,10 +10,21 @@
       <property name="name"><inject fromContext="name"/></property>
    </beanfactory>
 
+   <bean name="alias" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+      <alias>a1</alias>
+      <alias>a2</alias>
+      <alias>a3</alias>
+      <property name="alias"><inject fromContext="alias"/></property>
+   </bean>
+
    <bean name="metadata" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
       <property name="metadata"><inject fromContext="metadata"/></property>
    </bean>
 
+   <bean name="beaninfo" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
+      <property name="beaninfo"><inject fromContext="beaninfo"/></property>
+   </bean>
+
    <bean name="scopekey" class="org.jboss.test.kernel.deployment.support.NameAwareBean">
       <property name="scopeKey"><inject fromContext="scope"/></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-18 06:01:54 UTC (rev 64106)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/support/NameAwareBean.java	2007-07-18 06:15:51 UTC (rev 64107)
@@ -21,8 +21,11 @@
 */
 package org.jboss.test.kernel.deployment.support;
 
+import java.util.Set;
+
 import org.jboss.metadata.spi.MetaData;
 import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.beans.info.spi.BeanInfo;
 
 /**
  * A simple bean with name
@@ -32,7 +35,9 @@
 public class NameAwareBean
 {
    private String name;
+   private Set<Object> alias;
    private MetaData metadata;
+   private BeanInfo beaninfo;
    private ScopeKey scopeKey;
    private Object dynamic;
 
@@ -80,4 +85,24 @@
    {
       this.dynamic = dynamic;
    }
+
+   public Set<Object> getAlias()
+   {
+      return alias;
+   }
+
+   public void setAlias(Set<Object> alias)
+   {
+      this.alias = alias;
+   }
+
+   public BeanInfo getBeaninfo()
+   {
+      return beaninfo;
+   }
+
+   public void setBeaninfo(BeanInfo beaninfo)
+   {
+      this.beaninfo = beaninfo;
+   }
 }

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-18 06:01:54 UTC (rev 64106)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/NamingBeanTestCase.java	2007-07-18 06:15:51 UTC (rev 64107)
@@ -21,10 +21,13 @@
 */
 package org.jboss.test.kernel.deployment.test;
 
+import java.util.Set;
+
 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.beans.info.spi.BeanInfo;
 import org.jboss.metadata.spi.MetaData;
 import org.jboss.metadata.spi.scope.ScopeKey;
 
@@ -59,11 +62,25 @@
       assertNotNull(b4);
       assertEquals("set_name_factory", b4.getName());
 
+      NameAwareBean alias = (NameAwareBean)getBean("alias");
+      assertNotNull(alias);
+      Set<Object> aliases = alias.getAlias();
+      assertNotNull(aliases);
+      assertFalse(aliases.isEmpty());
+      assertTrue(aliases.contains("a1"));
+      assertTrue(aliases.contains("a2"));
+      assertTrue(aliases.contains("a3"));      
+
       NameAwareBean metadata = (NameAwareBean)getBean("metadata");
       assertNotNull(metadata);
       assertNotNull(metadata.getMetadata());
       assertInstanceOf(metadata.getMetadata(), MetaData.class);
 
+      NameAwareBean beaninfo = (NameAwareBean)getBean("beaninfo");
+      assertNotNull(beaninfo);
+      assertNotNull(beaninfo.getBeaninfo());
+      assertInstanceOf(beaninfo.getBeaninfo(), BeanInfo.class);
+
       NameAwareBean scopekey = (NameAwareBean)getBean("scopekey");
       assertNotNull(scopekey);
       assertNotNull(scopekey.getScopeKey());




More information about the jboss-cvs-commits mailing list