[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