[jboss-cvs] JBossAS SVN: r86042 - in projects/microcontainer/trunk/kernel/src: main/java/org/jboss/beans/metadata/spi/builder and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 18 08:21:46 EDT 2009


Author: alesj
Date: 2009-03-18 08:21:46 -0400 (Wed, 18 Mar 2009)
New Revision: 86042

Modified:
   projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
   projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
   projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
Log:
[JBMICROCONT-420]; expose FromContext injection creation.

Modified: projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java	2009-03-18 10:22:30 UTC (rev 86041)
+++ projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java	2009-03-18 12:21:46 UTC (rev 86042)
@@ -33,6 +33,7 @@
 import org.jboss.beans.info.spi.BeanAccessMode;
 import org.jboss.beans.metadata.api.model.AutowireType;
 import org.jboss.beans.metadata.api.model.InjectOption;
+import org.jboss.beans.metadata.api.model.FromContext;
 import org.jboss.beans.metadata.plugins.AbstractAnnotationMetaData;
 import org.jboss.beans.metadata.plugins.AbstractArrayMetaData;
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
@@ -1063,6 +1064,17 @@
       return new AbstractInjectionValueMetaData();
    }
 
+   /**
+    * Create abstract dependency metadata.
+    *
+    * @param name the name
+    * @return abstract dependency value metadata
+    */
+   protected AbstractInjectionValueMetaData createAbstractInjectionValueMetaData(Object name)
+   {
+      return new AbstractInjectionValueMetaData(name);
+   }
+
    public ValueMetaData createContextualInject(ControllerState whenRequired, ControllerState dependentState, AutowireType autowire, InjectOption option, SearchInfo search)
    {
       AbstractInjectionValueMetaData result = createAbstractInjectionValueMetaData();
@@ -1079,6 +1091,17 @@
       return result;
    }
 
+   public ValueMetaData createFromContextInject(FromContext fromContext, Object contextName, ControllerState dependentState, SearchInfo search)
+   {
+      AbstractInjectionValueMetaData result = createAbstractInjectionValueMetaData(contextName);
+      result.setFromContext(fromContext);
+      if (dependentState != null)
+         result.setDependentState(dependentState);
+      if (search != null)
+         result.setSearch(search);
+      return result;
+   }
+
    @SuppressWarnings("unchecked")
    public Collection<ValueMetaData> createCollection(String collectionType, String elementType)
    {

Modified: projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java	2009-03-18 10:22:30 UTC (rev 86041)
+++ projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java	2009-03-18 12:21:46 UTC (rev 86042)
@@ -30,6 +30,7 @@
 
 import org.jboss.beans.info.spi.BeanAccessMode;
 import org.jboss.beans.metadata.api.model.AutowireType;
+import org.jboss.beans.metadata.api.model.FromContext;
 import org.jboss.beans.metadata.api.model.InjectOption;
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
@@ -1722,6 +1723,53 @@
    public abstract ValueMetaData createContextualInject(ControllerState whenRequired, ControllerState dependentState, AutowireType autowire, InjectOption option, SearchInfo search);
 
    /**
+    * Create from context injection.
+    *
+    * @param fromContext from context enum
+    * @return the from context injection
+    */
+   public ValueMetaData createFromContextInject(FromContext fromContext)
+   {
+      return createFromContextInject(fromContext, null);
+   }
+
+   /**
+    * Create from context injection.
+    *
+    * @param fromContext from context enum
+    * @param contextName the context name
+    * @return the from context injection
+    */
+   public ValueMetaData createFromContextInject(FromContext fromContext, Object contextName)
+   {
+      return createFromContextInject(fromContext, contextName, null);
+   }
+
+   /**
+    * Create from context injection.
+    *
+    * @param fromContext from context enum
+    * @param contextName the context name
+    * @param dependentState the state of the injected context
+    * @return the from context injection
+    */
+   public ValueMetaData createFromContextInject(FromContext fromContext, Object contextName, ControllerState dependentState)
+   {
+      return createFromContextInject(fromContext, contextName, dependentState, null);
+   }
+
+   /**
+    * Create from context injection.
+    *
+    * @param fromContext from context enum
+    * @param contextName the context name
+    * @param dependentState the state of the injected context
+    * @param search the search info
+    * @return the from context injection
+    */
+   public abstract ValueMetaData createFromContextInject(FromContext fromContext, Object contextName, ControllerState dependentState, SearchInfo search);
+
+   /**
     * Create a new collection
     * 
     * @return the collection

Modified: projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java	2009-03-18 10:22:30 UTC (rev 86041)
+++ projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java	2009-03-18 12:21:46 UTC (rev 86042)
@@ -32,11 +32,13 @@
 
 import junit.framework.Test;
 import org.jboss.beans.metadata.api.model.AutowireType;
+import org.jboss.beans.metadata.api.model.FromContext;
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.plugins.AbstractRelatedClassMetaData;
 import org.jboss.beans.metadata.plugins.InstallCallbackMetaData;
 import org.jboss.beans.metadata.plugins.UninstallCallbackMetaData;
 import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
 import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
 import org.jboss.beans.metadata.spi.AnnotationMetaData;
 import org.jboss.beans.metadata.spi.BeanMetaData;
@@ -992,4 +994,24 @@
       assertNotNull(annotations);
       assertEquals(1, annotations.size());
    }
+
+   public void testFromContextInject() throws Throwable
+   {
+      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("test");
+      ValueMetaData value = builder.createFromContextInject(FromContext.CONTEXT, "foobar", ControllerState.CREATE, Search.CHILD_ONLY_DEPTH);
+      builder.addPropertyMetaData("someproprerty", value);
+      BeanMetaData bmd = builder.getBeanMetaData();
+
+      Set<PropertyMetaData> properties = bmd.getProperties();
+      assertNotNull(properties);
+      assertEquals(1, properties.size());
+      PropertyMetaData pmd = properties.iterator().next();
+      ValueMetaData vmd = pmd.getValue();
+
+      AbstractInjectionValueMetaData inject = assertInstanceOf(vmd, AbstractInjectionValueMetaData.class);
+      assertEquals(FromContext.CONTEXT, inject.getFromContext());
+      assertEquals("foobar", inject.getUnderlyingValue());
+      assertEquals(ControllerState.CREATE, inject.getDependentState());
+      assertEquals(Search.CHILD_ONLY_DEPTH, inject.getSearch());
+   }
 }




More information about the jboss-cvs-commits mailing list