[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