[Jboss-cvs] JBossAS SVN: r56022 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/beans/metadata/plugins main/org/jboss/beans/metadata/plugins/factory main/org/jboss/beans/metadata/spi main/org/jboss/kernel/plugins/dependency main/org/jboss/kernel/plugins/deployment/xml resources/org/jboss/test/kernel/inject/test resources/schema tests/org/jboss/test/kernel/config/test tests/org/jboss/test/kernel/inject/support tests/org/jboss/test/kernel/inject/test
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 17 08:07:10 EDT 2006
Author: alesj
Date: 2006-08-17 08:04:48 -0400 (Thu, 17 Aug 2006)
New Revision: 56022
Added:
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ConstructorContextualInjection.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/LifecycleContextualInjection.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/PropertyContextualInjection.xml
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ConstructorInjectTestObject.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/LifecycleInjectTestObject.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/PropertyInjectTestObject.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ConstructorContextualInjectionTestCase.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionAdapter.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/LifecycleContextualInjectionTestCase.java
Removed:
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/UpdateableDependencyItem.java
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnMultipleNameStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnMultipleTypeStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnNullNameStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnNullTypeStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnSingleNameStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnSingleTypeStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/IllegalParameterContextualInjection.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/MultipleNameStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/MultipleTypeStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/NullNameStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/NullTypeStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ParameterContextualInjection.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/SingleNameStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/SingleTypeStrictTestCase.xml
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedNameStrictSimpleTestObject.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedSimpleTestObject.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedTypeStrictSimpleTestObject.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ParameterTestObject.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/SimpleTestObject.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/SingletonTester.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/TesterInterfaceGetter.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/IllegalParameterContextualInjectionTestCase.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ParameterContextualInjectionTestCase.java
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractCollectionMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractFeatureMetaData.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/AbstractInstallMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractMapMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractSupplyMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/TypeProvider.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/MetaDataVisitorNode.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/ParameterMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/CreateDestroyLifecycleAction.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/DescribeAction.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/StartStopLifecycleAction.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanCreateInterceptor.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanDestroyInterceptor.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryCreateInterceptor.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryStartInterceptor.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/BeanStartInterceptor.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanStopInterceptor.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ConstructorParametersInterceptor.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InstallParametersInterceptor.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/LifecycleParametersInterceptor.java
projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/FactoryTestCase.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionTestSuite.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/PropertyContextualInjectionTestCase.java
Log:
Contextual injection rewrite.
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -85,7 +85,12 @@
{
visitor.initialVisit(this);
}
-
+
+ public void describeVisit(MetaDataVisitor vistor)
+ {
+ vistor.describeVisit(this);
+ }
+
public Iterator<? extends MetaDataVisitorNode> getChildren()
{
return null;
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 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -27,17 +27,7 @@
import java.util.List;
import java.util.Set;
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.beans.metadata.spi.ClassLoaderMetaData;
-import org.jboss.beans.metadata.spi.ConstructorMetaData;
-import org.jboss.beans.metadata.spi.DemandMetaData;
-import org.jboss.beans.metadata.spi.DependencyMetaData;
-import org.jboss.beans.metadata.spi.InstallMetaData;
-import org.jboss.beans.metadata.spi.LifecycleMetaData;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
-import org.jboss.beans.metadata.spi.PropertyMetaData;
-import org.jboss.beans.metadata.spi.SupplyMetaData;
+import org.jboss.beans.metadata.spi.*;
import org.jboss.dependency.spi.ControllerMode;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.util.JBossObject;
@@ -403,7 +393,7 @@
{
super.addChildren(children);
if (classLoader != null)
- children.add( classLoader);
+ children.add(classLoader);
if (constructor != null)
children.add(constructor);
if (properties != null)
@@ -427,7 +417,12 @@
if (uninstalls != null)
children.addAll(uninstalls);
}
-
+
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ throw new IllegalArgumentException("Cannot determine inject class type: " + this);
+ }
+
public void toString(JBossStringBuilder buffer)
{
buffer.append("name=").append(name);
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -82,6 +82,12 @@
visitor.initialVisit(this);
}
+ public void describeVisit(MetaDataVisitor vistor)
+ {
+ // todo - any context setting?
+ vistor.describeVisit(this);
+ }
+
public Iterator<? extends MetaDataVisitorNode> getChildren()
{
if (classloader != null)
@@ -93,7 +99,7 @@
{
buffer.append("classloader=").append(classloader);
}
-
+
public void toShortString(JBossStringBuilder buffer)
{
buffer.append(classloader);
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractCollectionMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractCollectionMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractCollectionMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -26,6 +26,7 @@
import java.util.Iterator;
import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.joinpoint.spi.Joinpoint;
@@ -44,7 +45,7 @@
{
/** The collection */
protected ArrayList<MetaDataVisitorNode> collection = new ArrayList<MetaDataVisitorNode>();
-
+
/** The element type */
protected String elementType;
@@ -91,6 +92,15 @@
return result;
}
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ if (elementType != null)
+ {
+ return getClass(visitor, elementType);
+ }
+ return super.getType(visitor, this);
+ }
+
public boolean add(MetaDataVisitorNode o)
{
return collection.add(o);
@@ -150,7 +160,7 @@
{
return collection.toArray();
}
-
+
public <T> T[] toArray(T[] a)
{
return collection.toArray(a);
@@ -167,7 +177,7 @@
buffer.append(" collection=");
JBossObject.list(buffer, collection);
}
-
+
/**
* Create the default collection instance
*
@@ -178,7 +188,7 @@
{
return new ArrayList<Object>();
}
-
+
/**
* Create the collection instance
*
@@ -192,10 +202,10 @@
protected Collection<Object> getCollectionInstance(TypeInfo info, ClassLoader cl, Class<?> expected) throws Throwable
{
TypeInfo typeInfo = getClassInfo(cl);
-
+
if (typeInfo != null && typeInfo instanceof ClassInfo == false)
throw new IllegalArgumentException(typeInfo.getName() + " is not a class");
-
+
if (typeInfo != null && ((ClassInfo) typeInfo).isInterface())
throw new IllegalArgumentException(typeInfo.getName() + " is an interface");
@@ -207,7 +217,7 @@
// Not a class
if (info instanceof ClassInfo == false)
return null;
- // Not an interface
+ // Is an interface
if (((ClassInfo) info).isInterface())
return null;
// Type is too general
@@ -216,7 +226,7 @@
// Try to use the passed type
typeInfo = info;
}
-
+
BeanInfo beanInfo = configurator.getBeanInfo(typeInfo);
Joinpoint constructor = configurator.getConstructorJoinPoint(beanInfo);
Object result = constructor.dispatch();
@@ -224,7 +234,7 @@
throw new ClassCastException(result.getClass() + " is not a " + expected.getName());
return (Collection<Object>) result;
}
-
+
/**
* Get the class info for the element type
*
@@ -236,7 +246,7 @@
{
if (elementType == null)
return null;
-
+
return configurator.getClassInfo(elementType, cl);
}
}
\ No newline at end of file
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -21,37 +21,50 @@
*/
package org.jboss.beans.metadata.plugins;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
-import org.jboss.beans.metadata.spi.ConstructorMetaData;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
-import org.jboss.beans.metadata.spi.ParameterMetaData;
-import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.beans.metadata.spi.*;
+import org.jboss.kernel.plugins.config.Configurator;
+import org.jboss.kernel.spi.config.KernelConfigurator;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.reflect.spi.ClassInfo;
+import org.jboss.reflect.spi.ConstructorInfo;
+import org.jboss.reflect.spi.MethodInfo;
import org.jboss.util.JBossObject;
import org.jboss.util.JBossStringBuilder;
/**
* Metadata for construction.
- *
+ *
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision$
*/
public class AbstractConstructorMetaData extends AbstractFeatureMetaData implements ConstructorMetaData
{
- /** The paramaters List<ParameterMetaData> */
+ /**
+ * The paramaters List<ParameterMetaData>
+ */
protected List<ParameterMetaData> parameters;
- /** The value */
+ /**
+ * The value
+ */
protected ValueMetaData value;
- /** The factory */
+ /**
+ * The factory
+ */
protected ValueMetaData factory;
- /** The factory class name */
+ /**
+ * The factory class name
+ */
protected String factoryClassName;
- /** The factory method */
+ /**
+ * The factory method
+ */
protected String factoryMethod;
/**
@@ -60,10 +73,10 @@
public AbstractConstructorMetaData()
{
}
-
+
/**
* Set the parameters
- *
+ *
* @param parameters List<ParameterMetaData>
*/
public void setParameters(List<ParameterMetaData> parameters)
@@ -71,10 +84,10 @@
this.parameters = parameters;
flushJBossObjectCache();
}
-
+
/**
* Set the value
- *
+ *
* @param value the value
*/
public void setValue(ValueMetaData value)
@@ -82,10 +95,10 @@
this.value = value;
flushJBossObjectCache();
}
-
+
/**
* Set the factory
- *
+ *
* @param factory the factory
*/
public void setFactory(ValueMetaData factory)
@@ -93,10 +106,10 @@
this.factory = factory;
flushJBossObjectCache();
}
-
+
/**
* Set the factory class name
- *
+ *
* @param name the factory class name
*/
public void setFactoryClass(String name)
@@ -104,10 +117,10 @@
this.factoryClassName = name;
flushJBossObjectCache();
}
-
+
/**
* Set the factory method
- *
+ *
* @param name the factory method
*/
public void setFactoryMethod(String name)
@@ -115,7 +128,7 @@
this.factoryMethod = name;
flushJBossObjectCache();
}
-
+
public List<ParameterMetaData> getParameters()
{
return parameters;
@@ -130,17 +143,17 @@
{
return factory;
}
-
+
public String getFactoryClass()
{
return factoryClassName;
}
-
+
public String getFactoryMethod()
{
return factoryMethod;
}
-
+
protected void addChildren(Set<MetaDataVisitorNode> children)
{
super.addChildren(children);
@@ -151,7 +164,66 @@
if (factory != null)
children.add(factory);
}
-
+
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ if (factory != null || factoryClassName != null)
+ {
+ KernelControllerContext context = visitor.getControllerContext();
+ ClassLoader cl = Configurator.getClassLoader(context.getBeanMetaData());
+ KernelConfigurator configurator = context.getKernel().getConfigurator();
+ ClassInfo classInfo;
+ if (factory != null)
+ {
+ Object target = factory.getValue(null, cl);
+ classInfo = configurator.getClassInfo(target.getClass());
+ }
+ else
+ {
+ classInfo = configurator.getClassInfo(factoryClassName, cl);
+ }
+ // should be parameter
+ ParameterMetaData parameter = (ParameterMetaData) previous;
+ String[] parameterTypes = Configurator.getParameterTypes(false, parameters);
+ MethodInfo methodInfo = Configurator.findMethodInfo(classInfo, factoryMethod, parameterTypes);
+ return applyCollectionOrMapCheck(methodInfo.getParameterTypes()[parameter.getIndex()].getType());
+ }
+ else
+ {
+ KernelControllerContext context = visitor.getControllerContext();
+ BeanInfo beanInfo = context.getBeanInfo();
+ // find matching parameter
+ if (previous instanceof ParameterMetaData)
+ {
+ ParameterMetaData parameter = (ParameterMetaData) previous;
+ String[] paramTypes = Configurator.getParameterTypes(false, parameters);
+ ConstructorInfo ci = Configurator.findConstructorInfo(beanInfo.getClassInfo(), paramTypes);
+ return applyCollectionOrMapCheck(ci.getParameterTypes()[parameter.getIndex()].getType());
+ }
+ else
+ {
+ // find all constructors with single value
+ Set<ConstructorInfo> constructors = beanInfo.getConstructors();
+ Set<ConstructorInfo> matchingConstructorInfos = new HashSet<ConstructorInfo>();
+ if (constructors != null)
+ {
+ for (ConstructorInfo ci : constructors)
+ {
+ if (ci.getParameters() != null && ci.getParameters().length == 1)
+ {
+ matchingConstructorInfos.add(ci);
+ }
+ }
+ }
+ if (matchingConstructorInfos.size() != 1)
+ {
+ throw new IllegalArgumentException("Should not be here - illegal size of matching constructors: " + this);
+ }
+ return applyCollectionOrMapCheck(matchingConstructorInfos.iterator().next().getParameterTypes()[0].getType());
+ }
+ }
+ }
+
public void toString(JBossStringBuilder buffer)
{
buffer.append("parameters=");
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -108,7 +108,12 @@
visitor.addDependency(item);
visitor.initialVisit(this);
}
-
+
+ public void describeVisit(MetaDataVisitor vistor)
+ {
+ vistor.describeVisit(this);
+ }
+
public Iterator<? extends MetaDataVisitorNode> getChildren()
{
return null;
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -87,7 +87,12 @@
visitor.initialVisit(this);
}
-
+
+ public void describeVisit(MetaDataVisitor vistor)
+ {
+ vistor.describeVisit(this);
+ }
+
public Iterator<? extends MetaDataVisitorNode> getChildren()
{
return null;
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -149,7 +149,7 @@
super.initialVisit(visitor);
}
-
+
public void toString(JBossStringBuilder buffer)
{
super.toString(buffer);
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractFeatureMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractFeatureMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractFeatureMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -23,6 +23,8 @@
import java.util.Iterator;
import java.util.Set;
+import java.util.Collection;
+import java.util.Map;
import org.jboss.beans.metadata.spi.AnnotationMetaData;
import org.jboss.beans.metadata.spi.FeatureMetaData;
@@ -38,7 +40,7 @@
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision$
*/
-public class AbstractFeatureMetaData extends JBossObject implements FeatureMetaData
+public abstract class AbstractFeatureMetaData extends JBossObject implements FeatureMetaData, TypeProvider
{
/** The description */
protected String description;
@@ -89,7 +91,22 @@
{
visitor.initialVisit(this);
}
-
+
+ public void describeVisit(MetaDataVisitor vistor)
+ {
+ vistor.describeVisit(this);
+ }
+
+ protected Class applyCollectionOrMapCheck(Class clazz) throws Throwable
+ {
+ // todo - some generics check
+ if (Collection.class.isAssignableFrom(clazz) || Map.class.isAssignableFrom(clazz))
+ {
+ throw new IllegalArgumentException("Should not be here - set element/value class type in collection/map: " + this);
+ }
+ return clazz;
+ }
+
public Iterator<? extends MetaDataVisitorNode> getChildren()
{
Set<MetaDataVisitorNode> children = CollectionsFactory.createLazySet();
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 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -21,23 +21,16 @@
*/
package org.jboss.beans.metadata.plugins;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.jboss.beans.info.spi.BeanInfo;
-import org.jboss.beans.info.spi.PropertyInfo;
-import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.dependency.plugins.AbstractDependencyItem;
import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyItem;
-import org.jboss.kernel.plugins.dependency.UpdateableDependencyItem;
-import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
-import org.jboss.util.JBossStringBuilder;
+import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.reflect.spi.TypeInfo;
+import org.jboss.util.JBossStringBuilder;
/**
* Injection value.
@@ -48,6 +41,7 @@
{
protected InjectionType injectionType = InjectionType.BY_CLASS;
+ /** Simplyifies things with InjectionType.BY_NAME */
protected AbstractPropertyMetaData propertyMetaData;
/**
@@ -110,7 +104,6 @@
public void initialVisit(MetaDataVisitor visitor)
{
- // determine value
if (getUnderlyingValue() == null)
{
// check for property
@@ -128,26 +121,42 @@
}
setValue(propertyMetaData.getName());
}
- else if (InjectionType.BY_CLASS.equals(injectionType))
+ }
+ // check if was maybe set with by_name
+ if (getUnderlyingValue() != null)
+ {
+ super.initialVisit(visitor);
+ }
+ }
+
+ public void describeVisit(MetaDataVisitor visitor)
+ {
+ if (getUnderlyingValue() == null)
+ {
+ if (InjectionType.BY_CLASS.equals(injectionType))
{
- // set controller
KernelControllerContext context = visitor.getControllerContext();
- controller = (KernelController) context.getController();
- if (propertyMetaData != null)
+ controller = (KernelController) context.getController(); // set controller
+ TypeProvider typeProvider = (TypeProvider) visitor.visitorNodeStack().pop();
+ try
{
- DependencyItem item = new PropertyPlaceholderDependencyItem(context.getName(), propertyMetaData.getName());
+ DependencyItem item = new ClassContextDependencyItem(context.getName(), typeProvider.getType(visitor, this));
visitor.addDependency(item);
}
- visitor.initialVisit(this); // as in AbstractValueMetaData
- // skip AbstractDependencyVMD.initialVisit() - no value defined
- return;
+ catch (Throwable throwable)
+ {
+ throw new Error(throwable);
+ } finally
+ {
+ visitor.visitorNodeStack().push(typeProvider);
+ }
}
else
{
throw new IllegalArgumentException("Unknown injection type=" + injectionType);
}
}
- super.initialVisit(visitor);
+ super.describeVisit(visitor);
}
public void toString(JBossStringBuilder buffer)
@@ -159,53 +168,25 @@
buffer.append(" propertyMetaData=").append(propertyMetaData.getName()); //else overflow - indefinite recursion
}
- public class PropertyPlaceholderDependencyItem extends AbstractDependencyItem implements UpdateableDependencyItem
+ public class ClassContextDependencyItem extends AbstractDependencyItem
{
- private String propertyName;
- private Class demandClass;
-
- public PropertyPlaceholderDependencyItem(Object name, String propertyName)
+ public ClassContextDependencyItem(Object name, Class demandClass)
{
- super(name, null, ControllerState.CONFIGURED, dependentState);
- this.propertyName = propertyName;
+ super(name, demandClass, ControllerState.INSTANTIATED, dependentState);
}
- public void update(BeanMetaData metaData, BeanInfo info)
- {
- Set propertyInfos = info.getProperties();
- if (propertyInfos != null)
- {
- for (Iterator it = propertyInfos.iterator(); it.hasNext();)
- {
- PropertyInfo pi = (PropertyInfo) it.next();
- if (propertyName.equals(pi.getName()))
- {
- demandClass = pi.getType().getType();
- break;
- }
- }
- }
- }
-
public boolean resolve(Controller controller)
{
- if (demandClass != null)
+ ControllerContext context = controller.getInstalledContext(getIDependOn());
+ if (context != null)
{
- ControllerContext context = controller.getInstalledContext(demandClass);
- if (context != null)
- {
- setIDependOn(context.getName());
- addDependsOnMe(controller, context);
- setResolved(true);
- }
- else
- {
- setResolved(false);
- }
+ setIDependOn(context.getName());
+ addDependsOnMe(controller, context);
+ setResolved(true);
}
else
{
- setResolved(true);
+ setResolved(false);
}
return isResolved();
}
@@ -213,12 +194,12 @@
public void toString(JBossStringBuilder buffer)
{
super.toString(buffer);
- buffer.append(" demandClass=").append(demandClass);
+ buffer.append(" demandClass=").append(getIDependOn());
}
public void toShortString(JBossStringBuilder buffer)
{
- buffer.append(getName()).append(" demands ").append(demandClass);
+ buffer.append(getName()).append(" demands ").append(getIDependOn());
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInstallMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInstallMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInstallMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -26,8 +26,12 @@
import org.jboss.dependency.plugins.AbstractDependencyItem;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyItem;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.config.KernelConfigurator;
import org.jboss.util.JBossStringBuilder;
+import org.jboss.reflect.spi.ClassInfo;
/**
* Metadata for installation.
@@ -50,7 +54,7 @@
{
setState(ControllerState.INSTALLED);
}
-
+
public String getBean()
{
return bean;
@@ -65,7 +69,7 @@
{
this.bean = bean;
}
-
+
/**
* Set the required state of the dependency
*
@@ -93,6 +97,26 @@
super.initialVisit(visitor);
}
+ protected ClassInfo getClassInfo(KernelControllerContext context) throws Throwable
+ {
+ if (bean != null)
+ {
+ KernelController controller = (KernelController) context.getController();
+ ControllerContext beanContext = controller.getContext(bean, ControllerState.INSTANTIATED);
+ if (beanContext != null)
+ {
+ KernelConfigurator configurator = controller.getKernel().getConfigurator();
+ Object target = beanContext.getTarget();
+ return configurator.getClassInfo(target.getClass());
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot determine install bean class: " + this);
+ }
+ }
+ return super.getClassInfo(context);
+ }
+
public void toString(JBossStringBuilder buffer)
{
if (bean != null)
@@ -110,7 +134,7 @@
if (methodName != null)
buffer.append(".").append(methodName);
}
-
+
/**
* An InstallationDependencyItem.
*/
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -29,6 +29,10 @@
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
import org.jboss.beans.metadata.spi.ParameterMetaData;
import org.jboss.dependency.spi.ControllerState;
+import org.jboss.kernel.plugins.config.Configurator;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.reflect.spi.ClassInfo;
+import org.jboss.reflect.spi.MethodInfo;
import org.jboss.util.JBossObject;
import org.jboss.util.JBossStringBuilder;
@@ -42,13 +46,16 @@
{
/** The state */
protected ControllerState state;
-
+
/** The method name */
protected String methodName;
-
+
/** The paramaters List<ParameterMetaData> */
protected List<ParameterMetaData> parameters;
+ /** The type - create, start, stop, destroy, install */
+ protected String type;
+
/**
* Create a new lifecycle meta data
*/
@@ -65,12 +72,12 @@
{
this.state = state;
}
-
+
public String getMethodName()
{
return methodName;
}
-
+
/**
* Set the method name
*
@@ -81,12 +88,12 @@
this.methodName = name;
flushJBossObjectCache();
}
-
+
public List<ParameterMetaData> getParameters()
{
return parameters;
}
-
+
/**
* Set the parameters
*
@@ -98,19 +105,44 @@
flushJBossObjectCache();
}
+ public String getType()
+ {
+ return type;
+ }
+
+ public void setType(String type)
+ {
+ this.type = type;
+ }
+
public void initialVisit(MetaDataVisitor visitor)
{
visitor.setContextState(state);
super.initialVisit(visitor);
}
-
+
protected void addChildren(Set<MetaDataVisitorNode> children)
{
super.addChildren(children);
if (parameters != null)
children.addAll(parameters);
}
-
+
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ ParameterMetaData parameter = (ParameterMetaData) previous;
+ KernelControllerContext context = visitor.getControllerContext();
+ String method = (methodName != null ? methodName : type);
+ String[] parameterTypes = Configurator.getParameterTypes(false, parameters);
+ MethodInfo methodInfo = Configurator.findMethodInfo(getClassInfo(context), method, parameterTypes);
+ return applyCollectionOrMapCheck(methodInfo.getParameterTypes()[parameter.getIndex()].getType());
+ }
+
+ protected ClassInfo getClassInfo(KernelControllerContext context) throws Throwable
+ {
+ return context.getBeanInfo().getClassInfo();
+ }
+
public void toString(JBossStringBuilder buffer)
{
if (methodName != null)
@@ -120,7 +152,7 @@
buffer.append(" ");
super.toString(buffer);
}
-
+
public void toShortString(JBossStringBuilder buffer)
{
buffer.append(methodName);
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractMapMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractMapMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractMapMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -21,14 +21,10 @@
*/
package org.jboss.beans.metadata.plugins;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.joinpoint.spi.Joinpoint;
@@ -167,7 +163,7 @@
public void putAll(Map<? extends MetaDataVisitorNode, ? extends MetaDataVisitorNode> t)
{
putAll(t);
-
+
}
public MetaDataVisitorNode remove(Object key)
@@ -187,11 +183,30 @@
public Iterator<? extends MetaDataVisitorNode> getChildren()
{
- ArrayList<MetaDataVisitorNode> children = new ArrayList<MetaDataVisitorNode>(map.keySet());
- children.addAll(map.values());
+ ArrayList<MetaDataVisitorNode> children = new ArrayList<MetaDataVisitorNode>(keySet());
+ children.addAll(values());
return children.iterator();
}
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ for(MetaDataVisitorNode key : keySet())
+ {
+ if (previous.equals(key) && keyType != null)
+ {
+ return getClass(visitor, keyType);
+ }
+ }
+ for(MetaDataVisitorNode v : values())
+ {
+ if (previous.equals(v) && valueType != null)
+ {
+ return getClass(visitor, valueType);
+ }
+ }
+ return super.getType(visitor, this);
+ }
+
public void toString(JBossStringBuilder buffer)
{
super.toString(buffer);
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -22,27 +22,42 @@
package org.jboss.beans.metadata.plugins;
import java.util.Set;
+import java.util.Stack;
+import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
import org.jboss.beans.metadata.spi.ParameterMetaData;
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.util.JBossStringBuilder;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.config.KernelConfigurator;
+import org.jboss.kernel.plugins.config.Configurator;
/**
* Metadata for a parameter.
- *
+ *
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision$
*/
public class AbstractParameterMetaData extends AbstractFeatureMetaData implements ParameterMetaData
{
- /** The parameter type */
+ /**
+ * The parameter type
+ */
protected String type;
- /** The parameter value */
+ /**
+ * The parameter value
+ */
protected ValueMetaData value;
/**
+ * The index in parameter list
+ */
+ protected int index;
+
+ /**
* Create a new parameter meta data
*/
public AbstractParameterMetaData()
@@ -51,7 +66,7 @@
/**
* Create a new parameter meta data
- *
+ *
* @param value the value
*/
public AbstractParameterMetaData(Object value)
@@ -62,7 +77,7 @@
/**
* Create a new parameter meta data
- *
+ *
* @param value the value metadata
*/
public AbstractParameterMetaData(ValueMetaData value)
@@ -72,8 +87,8 @@
/**
* Create a new parameter meta data
- *
- * @param type the type
+ *
+ * @param type the type
* @param value the value
*/
public AbstractParameterMetaData(String type, Object value)
@@ -84,8 +99,8 @@
/**
* Create a new parameter meta data
- *
- * @param type the type
+ *
+ * @param type the type
* @param value the string value
*/
public AbstractParameterMetaData(String type, String value)
@@ -96,8 +111,8 @@
/**
* Create a new parameter meta data
- *
- * @param type the type
+ *
+ * @param type the type
* @param value the value meta data
*/
public AbstractParameterMetaData(String type, ValueMetaData value)
@@ -105,43 +120,78 @@
this.type = type;
this.value = value;
}
-
+
public String getType()
{
return type;
}
-
+
public void setType(String type)
{
this.type = type;
flushJBossObjectCache();
}
-
+
public ValueMetaData getValue()
{
return value;
}
+ public int getIndex()
+ {
+ return index;
+ }
+
+ public void setIndex(int index)
+ {
+ this.index = index;
+ }
+
public void setValue(ValueMetaData value)
{
this.value = value;
flushJBossObjectCache();
}
-
+
protected void addChildren(Set<MetaDataVisitorNode> children)
{
super.addChildren(children);
if (value != null)
children.add(value);
}
-
+
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ if (type != null)
+ {
+ KernelControllerContext context = visitor.getControllerContext();
+ ClassLoader cl = Configurator.getClassLoader(context.getBeanMetaData());
+ KernelController controller = (KernelController) context.getController();
+ KernelConfigurator configurator = controller.getKernel().getConfigurator();
+ return applyCollectionOrMapCheck(configurator.getClassInfo(type, cl).getType());
+ }
+ else
+ {
+ Stack visitorNodeStack = visitor.visitorNodeStack();
+ TypeProvider typeProvider = (TypeProvider) visitorNodeStack.pop();
+ try
+ {
+ return typeProvider.getType(visitor, this);
+ }
+ finally
+ {
+ visitorNodeStack.push(typeProvider);
+ }
+ }
+ }
+
public void toString(JBossStringBuilder buffer)
{
buffer.append("type=").append(type);
buffer.append(" value=").append(value);
super.toString(buffer);
}
-
+
public void toShortString(JBossStringBuilder buffer)
{
buffer.append(type);
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -21,13 +21,16 @@
*/
package org.jboss.beans.metadata.plugins;
+import java.util.Iterator;
import java.util.Set;
+import org.jboss.beans.info.spi.PropertyInfo;
import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
import org.jboss.beans.metadata.spi.PropertyMetaData;
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.dependency.spi.ControllerState;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.util.JBossStringBuilder;
/**
@@ -36,7 +39,7 @@
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision$
*/
-public class AbstractPropertyMetaData extends AbstractFeatureMetaData implements PropertyMetaData
+public class AbstractPropertyMetaData extends AbstractFeatureMetaData implements PropertyMetaData, TypeProvider
{
/** The property name */
protected String name;
@@ -100,7 +103,7 @@
svmd.setType(type);
this.value = svmd;
}
-
+
public String getName()
{
return name;
@@ -116,7 +119,7 @@
this.name = name;
flushJBossObjectCache();
}
-
+
public ValueMetaData getValue()
{
return value;
@@ -132,7 +135,7 @@
this.value = value;
flushJBossObjectCache();
}
-
+
public void initialVisit(MetaDataVisitor visitor)
{
visitor.setContextState(ControllerState.CONFIGURED);
@@ -144,7 +147,25 @@
if (value != null)
children.add(value);
}
-
+
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ KernelControllerContext context = visitor.getControllerContext();
+ Set propertyInfos = context.getBeanInfo().getProperties();
+ if (propertyInfos != null)
+ {
+ for(Iterator it = propertyInfos.iterator(); it.hasNext();)
+ {
+ PropertyInfo pi = (PropertyInfo) it.next();
+ if (getName().equals(pi.getName()))
+ {
+ return applyCollectionOrMapCheck(pi.getType().getType());
+ }
+ }
+ }
+ throw new IllegalArgumentException("Should not be here - no matching propertyInfo: " + this);
+ }
+
public void toString(JBossStringBuilder buffer)
{
buffer.append("name=").append(name);
@@ -152,7 +173,7 @@
buffer.append(" value=").append(value);
super.toString(buffer);
}
-
+
public void toShortString(JBossStringBuilder buffer)
{
buffer.append(name);
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractSupplyMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractSupplyMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractSupplyMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -78,6 +78,11 @@
visitor.initialVisit(this);
}
+ public void describeVisit(MetaDataVisitor vistor)
+ {
+ vistor.describeVisit(this);
+ }
+
public Iterator<? extends MetaDataVisitorNode> getChildren()
{
return null;
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -23,6 +23,8 @@
import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.kernel.spi.config.KernelConfigurator;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.plugins.config.Configurator;
import org.jboss.reflect.spi.ClassInfo;
import org.jboss.util.JBossStringBuilder;
@@ -103,9 +105,22 @@
*/
protected ClassInfo getClassInfo(ClassLoader cl) throws Throwable
{
- if (type == null)
+ return getClassInfo(type, cl);
+ }
+
+ protected ClassInfo getClassInfo(String classType, ClassLoader cl) throws Throwable
+ {
+ if (classType == null)
return null;
-
- return configurator.getClassInfo(type, cl);
+
+ return configurator.getClassInfo(classType, cl);
}
+
+ protected Class getClass(MetaDataVisitor visitor, String classType) throws Throwable
+ {
+ KernelControllerContext context = visitor.getControllerContext();
+ ClassLoader cl = Configurator.getClassLoader(context.getBeanMetaData());
+ return getClassInfo(classType, cl).getType();
+ }
+
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -23,6 +23,8 @@
import java.util.Iterator;
import java.util.Collections;
+import java.util.Stack;
+
import org.jboss.beans.metadata.spi.MetaDataVisitor;
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
@@ -36,7 +38,7 @@
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision$
*/
-public class AbstractValueMetaData extends JBossObject implements ValueMetaData
+public class AbstractValueMetaData extends JBossObject implements ValueMetaData, TypeProvider
{
/** The value */
protected Object value;
@@ -83,7 +85,26 @@
{
visitor.initialVisit(this);
}
-
+
+ public void describeVisit(MetaDataVisitor vistor)
+ {
+ vistor.describeVisit(this);
+ }
+
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ Stack visitorNodeStack = visitor.visitorNodeStack();
+ TypeProvider typeProvider = (TypeProvider) visitorNodeStack.pop();
+ try
+ {
+ return typeProvider.getType(visitor, this);
+ }
+ finally
+ {
+ visitorNodeStack.push(typeProvider);
+ }
+ }
+
public Iterator<? extends MetaDataVisitorNode> getChildren()
{
if (value instanceof MetaDataVisitorNode)
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -23,6 +23,8 @@
import org.jboss.logging.Logger;
import org.jboss.reflect.spi.TypeInfo;
+import org.jboss.beans.metadata.spi.MetaDataVisitor;
+import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
/**
* String value.
@@ -68,19 +70,29 @@
throw new ClassCastException("value is not a String: " + value);
super.setValue(value);
}
-
+
public Object getValue(TypeInfo info, ClassLoader cl) throws Throwable
{
boolean trace = log.isTraceEnabled();
if (trace)
log.trace("getValue value=" + value + " type=" + type + " info=" + info);
-
+
TypeInfo typeInfo = getClassInfo(cl);
if (typeInfo == null)
typeInfo = info;
if (typeInfo == null)
throw new IllegalArgumentException("Unable to determine type for value: " + value);
-
+
return typeInfo.convertValue(value);
}
+
+ public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ if (getType() != null)
+ {
+ return getClass(visitor, getType());
+ }
+ return super.getType(visitor, this);
+ }
+
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/TypeProvider.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/TypeProvider.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/TypeProvider.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,15 +1,35 @@
/*
- *
- */
-
+* JBoss, Home of Professional Open Source
+* Copyright 2005, 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 org.jboss.beans.metadata.spi.MetaDataVisitor;
+import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
+
/**
* @author <a href="mailto:ales.justin at genera-lynx.com">Ales Justin</a>
*/
public interface TypeProvider
{
- Class getType();
+ Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable;
}
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 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/factory/GenericBeanFactoryMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -34,12 +34,7 @@
import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
-import org.jboss.beans.metadata.spi.ClassLoaderMetaData;
-import org.jboss.beans.metadata.spi.ConstructorMetaData;
-import org.jboss.beans.metadata.spi.LifecycleMetaData;
-import org.jboss.beans.metadata.spi.ParameterMetaData;
-import org.jboss.beans.metadata.spi.PropertyMetaData;
-import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.*;
import org.jboss.kernel.plugins.bootstrap.basic.KernelConstants;
import org.jboss.kernel.spi.config.KernelConfigurator;
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/MetaDataVisitorNode.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/MetaDataVisitorNode.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/MetaDataVisitorNode.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -43,7 +43,7 @@
*
* @param vistor the visitor
*/
-// public void describeVisit(MetaDataVisitor vistor);
+ public void describeVisit(MetaDataVisitor vistor);
/**
* Return the child nodes
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/ParameterMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/ParameterMetaData.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/ParameterMetaData.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -42,4 +42,12 @@
* @return the value.
*/
ValueMetaData getValue();
+
+ /**
+ * Get the index
+ *
+ * @return index in list
+ */
+ int getIndex();
+
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelController.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -343,7 +343,7 @@
}
if (numberOfMatchingBeans != 1)
{
- log.error("Should not be here, illegas size of matching contexts (" + numberOfMatchingBeans + ") - dependency failed! " + clazz);
+ log.warn("Checking for contextual injection, current matches: " + numberOfMatchingBeans + " - " + clazz);
return null;
}
return contexts.iterator().next();
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -45,33 +45,48 @@
/**
* Controller context.
- *
+ *
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision$
*/
public class AbstractKernelControllerContext extends AbstractControllerContext implements KernelControllerContext
{
- /** The default actions */
+ /**
+ * The default actions
+ */
private static final KernelControllerContextActions actions = KernelControllerContextActions.getInstance();
- /** The no instantiate actions */
+ /**
+ * The no instantiate actions
+ */
private static final KernelControllerContextActions noInstantiate = KernelControllerContextActions.getNoInstantiate();
-
- /** The BeanInfo */
+
+ /**
+ * The BeanInfo
+ */
protected BeanInfo info;
- /** The meta data */
+ /**
+ * The meta data
+ */
protected BeanMetaData metaData;
-
- /** The access control context */
+
+ /**
+ * The access control context
+ */
protected AccessControlContext accessContext;
-
+
/**
+ * Did we do a describeVisit
+ */
+ protected boolean isDescribeProcessed;
+
+ /**
* Create an abstract controller context
- *
- * @param info the bean info
+ *
+ * @param info the bean info
* @param metaData the meta data
- * @param target any target object
+ * @param target any target object
*/
public AbstractKernelControllerContext(BeanInfo info, BeanMetaData metaData, Object target)
{
@@ -92,7 +107,7 @@
throw new IllegalStateException("Context is not installed in controller");
return controller.getKernel();
}
-
+
public BeanInfo getBeanInfo()
{
return info;
@@ -100,12 +115,13 @@
/**
* Set the bean info
- *
+ *
* @param info the bean info
*/
public void setBeanInfo(BeanInfo info)
{
this.info = info;
+ infoprocessMetaData();
flushJBossObjectCache();
}
@@ -138,6 +154,18 @@
AccessController.doPrivileged(visitor);
}
+ /**
+ * Preprocess the metadata for this context
+ */
+ protected void infoprocessMetaData()
+ {
+ if (info == null || isDescribeProcessed)
+ return;
+ DescribedMetaDataVisitor visitor = new DescribedMetaDataVisitor(metaData);
+ AccessController.doPrivileged(visitor);
+ isDescribeProcessed = true;
+ }
+
public MetaDataContext getMetaDataContext()
{
if (info != null)
@@ -153,9 +181,9 @@
/**
* Get the access control context of the code that created this context.<p>
- *
+ * <p/>
* This will be null when there is no security manager.
- *
+ *
* @return any access control context
*/
protected AccessControlContext getAccessControlContext()
@@ -165,28 +193,61 @@
protected abstract class AbstractMetaDataVistor implements MetaDataVisitor, PrivilegedAction<Object>
{
- /** The current context for when the dependencies are required */
+ /**
+ * The current context for when the dependencies are required
+ */
protected ControllerState contextState = ControllerState.INSTANTIATED;
- /** The metadata */
+ /**
+ * The metadata
+ */
protected BeanMetaData bmd;
- /** Visited branch stack */
+ /**
+ * Visited branch stack
+ */
protected Stack visitorNodeStack;
protected AbstractMetaDataVistor(BeanMetaData bmd)
{
this.bmd = bmd;
+ this.visitorNodeStack = new Stack();
}
public void initialVisit(MetaDataVisitorNode node)
{
+ visitorNodeStack.push(node);
+ try
+ {
+ internalInitialVisit(node);
+ }
+ finally
+ {
+ visitorNodeStack.pop();
+ }
}
public void describeVisit(MetaDataVisitorNode node)
{
+ visitorNodeStack.push(node);
+ try
+ {
+ internalDescribeVisit(node);
+ }
+ finally
+ {
+ visitorNodeStack.pop();
+ }
}
+ protected void internalInitialVisit(MetaDataVisitorNode node)
+ {
+ }
+
+ protected void internalDescribeVisit(MetaDataVisitorNode node)
+ {
+ }
+
public KernelControllerContext getControllerContext()
{
return AbstractKernelControllerContext.this;
@@ -226,27 +287,28 @@
{
super(bmd);
}
-
+
/**
* Visit the bean metadata node, this is the starting point
*/
public Object run()
{
bmd.initialVisit(this);
+ visitorNodeStack = null;
return null;
}
-
+
/**
* Visit a node
- *
+ *
* @param node the node
*/
- public void initialVisit(MetaDataVisitorNode node)
+ protected void internalInitialVisit(MetaDataVisitorNode node)
{
boolean trace = log.isTraceEnabled();
if (trace)
log.trace("Initial visit node " + node);
-
+
// Visit the children of this node
Iterator children = node.getChildren();
if (children != null)
@@ -280,7 +342,6 @@
public DescribedMetaDataVisitor(BeanMetaData bmd)
{
super(bmd);
- this.visitorNodeStack = new Stack();
}
/**
@@ -288,9 +349,7 @@
*/
public Object run()
{
- visitorNodeStack.push(bmd);
-// bmd.describeVisit(this);
- visitorNodeStack.pop();
+ bmd.describeVisit(this);
visitorNodeStack = null;
return null;
}
@@ -300,7 +359,7 @@
*
* @param node the node
*/
- public void describeVisit(MetaDataVisitorNode node)
+ protected void internalDescribeVisit(MetaDataVisitorNode node)
{
boolean trace = log.isTraceEnabled();
if (trace)
@@ -314,15 +373,13 @@
while (children.hasNext())
{
MetaDataVisitorNode child = (MetaDataVisitorNode) children.next();
- visitorNodeStack.push(child);
try
{
-// child.describeVisit(this);
+ child.describeVisit(this);
}
finally
{
contextState = restoreState;
- visitorNodeStack.pop();
}
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/CreateDestroyLifecycleAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/CreateDestroyLifecycleAction.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/CreateDestroyLifecycleAction.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -40,7 +40,7 @@
{
BeanMetaData metaData = context.getBeanMetaData();
LifecycleMetaData lifecycle = metaData.getCreate();
- if (lifecycle != null)
+ if (lifecycle != null && lifecycle.getMethodName() != null)
return lifecycle.getMethodName();
return "create";
}
@@ -58,7 +58,7 @@
{
BeanMetaData metaData = context.getBeanMetaData();
LifecycleMetaData lifecycle = metaData.getDestroy();
- if (lifecycle != null)
+ if (lifecycle != null && lifecycle.getMethodName() != null)
return lifecycle.getMethodName();
return "destroy";
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/DescribeAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/DescribeAction.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/DescribeAction.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -63,13 +63,6 @@
info = addAnnotations(context, metaData, info);
DependencyInfo depends = context.getDependencyInfo();
- // update 'placeholder' item with more info
- Set updateableItems = depends.getIDependOn(UpdateableDependencyItem.class);
- for(Iterator it = updateableItems.iterator(); it.hasNext();)
- {
- UpdateableDependencyItem updateableItem = (UpdateableDependencyItem) it.next();
- updateableItem.update(metaData, info);
- }
// add custom dependencies (e.g. AOP layer).
List dependencies = info.getDependencies();
if (dependencies != null)
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/StartStopLifecycleAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/StartStopLifecycleAction.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/StartStopLifecycleAction.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -40,7 +40,7 @@
{
BeanMetaData metaData = context.getBeanMetaData();
LifecycleMetaData lifecycle = metaData.getStart();
- if (lifecycle != null)
+ if (lifecycle != null && lifecycle.getMethodName() != null)
return lifecycle.getMethodName();
return "start";
}
@@ -58,7 +58,7 @@
{
BeanMetaData metaData = context.getBeanMetaData();
LifecycleMetaData lifecycle = metaData.getStop();
- if (lifecycle != null)
+ if (lifecycle != null && lifecycle.getMethodName() != null)
return lifecycle.getMethodName();
return "stop";
}
Deleted: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/UpdateableDependencyItem.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/UpdateableDependencyItem.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/UpdateableDependencyItem.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,34 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.kernel.plugins.dependency;
-
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.info.spi.BeanInfo;
-import org.jboss.dependency.spi.DependencyItem;
-
-/**
- * @author <a href="mailto:ales.justin at genera-lynx.com">Ales Justin</a>
- */
-public interface UpdateableDependencyItem extends DependencyItem
-{
- void update(BeanMetaData metaData, BeanInfo info);
-}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanCreateInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanCreateInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanCreateInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -42,6 +42,7 @@
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("create");
bean.setCreate(lifecycle);
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanDestroyInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanDestroyInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanDestroyInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -42,6 +42,7 @@
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("destroy");
bean.setDestroy(lifecycle);
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryCreateInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryCreateInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryCreateInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -42,6 +42,7 @@
{
GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("create");
bean.setBeanCreate(lifecycle);
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryStartInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryStartInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanFactoryStartInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -42,6 +42,7 @@
{
GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("start");
bean.setBeanStart(lifecycle);
}
}
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 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -459,6 +459,7 @@
parameters = new ArrayList<ParameterMetaData>();
constructor.setParameters(parameters);
}
+ parameter.setIndex(parameters.size());
parameters.add(parameter);
}
});
@@ -507,6 +508,7 @@
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("create");
bean.setCreate(lifecycle);
}
});
@@ -518,6 +520,7 @@
{
GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("create");
bean.setBeanCreate(lifecycle);
}
});
@@ -529,6 +532,7 @@
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("start");
bean.setStart(lifecycle);
}
});
@@ -540,6 +544,7 @@
{
GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("start");
bean.setBeanStart(lifecycle);
}
});
@@ -551,6 +556,7 @@
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("stop");
bean.setStop(lifecycle);
}
});
@@ -562,6 +568,7 @@
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("destroy");
bean.setDestroy(lifecycle);
}
});
@@ -600,6 +607,7 @@
parameters = new ArrayList<ParameterMetaData>();
lifecycle.setParameters(parameters);
}
+ parameter.setIndex(parameters.size());
parameters.add(parameter);
}
});
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanStartInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanStartInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanStartInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -42,6 +42,7 @@
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("start");
bean.setStart(lifecycle);
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanStopInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanStopInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanStopInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -42,6 +42,7 @@
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
+ lifecycle.setType("stop");
bean.setStop(lifecycle);
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ConstructorParametersInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ConstructorParametersInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ConstructorParametersInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -52,6 +52,7 @@
parameters = new ArrayList<ParameterMetaData>();
constructor.setParameters(parameters);
}
+ parameter.setIndex(parameters.size());
parameters.add(parameter);
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InstallParametersInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InstallParametersInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/InstallParametersInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -52,6 +52,7 @@
parameters = new ArrayList<ParameterMetaData>();
install.setParameters(parameters);
}
+ parameter.setIndex(parameters.size());
parameters.add(parameter);
}
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/LifecycleParametersInterceptor.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/LifecycleParametersInterceptor.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/LifecycleParametersInterceptor.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -52,6 +52,7 @@
parameters = new ArrayList<ParameterMetaData>();
lifecycle.setParameters(parameters);
}
+ parameter.setIndex(parameters.size());
parameters.add(parameter);
}
}
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnMultipleNameStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnMultipleNameStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnMultipleNameStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testerInterface" class="org.jboss.test.kernel.inject.support.SingletonTester"/>
-
- <bean name="duplicateInterface" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.AnnotatedNameStrictSimpleTestObject" />
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnMultipleTypeStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnMultipleTypeStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnMultipleTypeStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="duplicateInterface" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.AnnotatedTypeStrictSimpleTestObject" />
-
- <bean name="testerInterface" class="org.jboss.test.kernel.inject.support.SingletonTester"/>
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnNullNameStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnNullNameStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnNullNameStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.AnnotatedNameStrictSimpleTestObject" />
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnNullTypeStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnNullTypeStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnNullTypeStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.AnnotatedTypeStrictSimpleTestObject" />
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnSingleNameStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnSingleNameStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnSingleNameStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testerInterface" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.AnnotatedNameStrictSimpleTestObject" />
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnSingleTypeStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnSingleTypeStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/AnnSingleTypeStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="duplicateInterface" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.AnnotatedTypeStrictSimpleTestObject" />
-
-</deployment>
Added: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ConstructorContextualInjection.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ConstructorContextualInjection.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ConstructorContextualInjection.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+ xmlns="urn:jboss:bean-deployer">
+
+ <bean name="testObject1" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject" >
+ <constructor
+ factoryClass="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject"
+ factoryMethod="getInstance"
+ >
+ <parameter><inject/></parameter>
+ </constructor>
+ </bean>
+
+ <bean name="testObject2" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject">
+ <constructor>
+ <parameter>test2</parameter>
+ <parameter><list elementClass="org.jboss.test.kernel.inject.support.TesterInterface"><inject/></list></parameter>
+ </constructor>
+ </bean>
+
+ <bean name="testObject3" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject">
+ <constructor>
+ <parameter>1</parameter>
+ <parameter>test2</parameter>
+ <parameter><inject/></parameter>
+ </constructor>
+ </bean>
+
+ <bean name="testObject4" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject">
+ <constructor><parameter><inject/></parameter></constructor>
+ </bean>
+
+<!--
+ <bean name="testObject5" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject" >
+ <constructor factoryMethod="withParameter">
+ <factory bean="testObject6"/>
+ <parameter><inject/></parameter>
+ </constructor>
+ </bean>
+-->
+
+ <bean name="duplicateTester" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
+
+ <bean name="testObject6" class="org.jboss.test.kernel.inject.support.ConstructorInjectTestObject" />
+
+</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/IllegalParameterContextualInjection.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/IllegalParameterContextualInjection.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/IllegalParameterContextualInjection.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="parameterObject1" class="org.jboss.test.kernel.inject.support.ParameterTestObject">
- <constructor>
- <parameter><inject/></parameter>
- </constructor>
- </bean>
-
- <bean name="duplicateTester" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
-</deployment>
Copied: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/LifecycleContextualInjection.xml (from rev 56014, projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ParameterContextualInjection.xml)
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ParameterContextualInjection.xml 2006-08-17 02:59:34 UTC (rev 56014)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/LifecycleContextualInjection.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+ xmlns="urn:jboss:bean-deployer">
+
+ <bean name="testObject1" class="org.jboss.test.kernel.inject.support.LifecycleInjectTestObject">
+ <create>
+ <parameter><inject/></parameter>
+ </create>
+ <start method="startMeUp">
+ <parameter><inject/></parameter>
+ </start>
+ <stop>
+ <parameter><inject/></parameter>
+ </stop>
+ <destroy method="destruction">
+ <parameter><inject/></parameter>
+ </destroy>
+ </bean>
+
+<!--
+ <bean name="testObject3" class="org.jboss.test.kernel.inject.support.LifecycleInjectTestObject">
+ <install method="installIt">
+ <parameter><inject/></parameter>
+ </install>
+ <install bean="testObject1" method="fromOutside">
+ <parameter><inject/></parameter>
+ </install>
+ </bean>
+-->
+
+ <bean name="duplicateTester" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
+
+</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/MultipleNameStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/MultipleNameStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/MultipleNameStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testerInterface" class="org.jboss.test.kernel.inject.support.SingletonTester"/>
-
- <bean name="duplicateInterface" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.SimpleTestObject">
- <property name="testerInterface"><inject mode="ByName"/></property>
- </bean>
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/MultipleTypeStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/MultipleTypeStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/MultipleTypeStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.SimpleTestObject">
- <property name="testerInterface"><inject/></property>
- </bean>
-
- <bean name="testerInterface" class="org.jboss.test.kernel.inject.support.SingletonTester"/>
-
- <bean name="duplicateInterface" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/NullNameStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/NullNameStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/NullNameStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.SimpleTestObject">
- <property name="testerInterface"><inject mode="ByName"/></property>
- </bean>
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/NullTypeStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/NullTypeStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/NullTypeStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.SimpleTestObject">
- <property name="testerInterface"><inject/></property>
- </bean>
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ParameterContextualInjection.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ParameterContextualInjection.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/ParameterContextualInjection.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="duplicateTester" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
- <bean name="parameterObject1" class="org.jboss.test.kernel.inject.support.ParameterTestObject">
- <constructor>
- <parameter><inject/></parameter>
- </constructor>
- </bean>
-
-</deployment>
Added: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/PropertyContextualInjection.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/PropertyContextualInjection.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/PropertyContextualInjection.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+ xmlns="urn:jboss:bean-deployer">
+
+ <bean name="testObject1" class="org.jboss.test.kernel.inject.support.PropertyInjectTestObject">
+ <property name="testerInterface"><inject/></property>
+ </bean>
+
+ <bean name="testObject2" class="org.jboss.test.kernel.inject.support.PropertyInjectTestObject">
+ <property name="duplicateTester"><inject type="ByName"/></property>
+ </bean>
+
+ <bean name="testObject3" class="org.jboss.test.kernel.inject.support.PropertyInjectTestObject">
+ <property name="collection">
+ <list elementClass="org.jboss.test.kernel.inject.support.TesterInterface">
+ <inject/>
+ </list>
+ </property>
+ </bean>
+
+<!--
+ <bean name="testObject4" class="org.jboss.test.kernel.inject.support.PropertyInjectTestObject">
+ <property name="map">
+ <map key="org.jboss.test.kernel.inject.support.TesterInterface" valueClass="org.jboss.test.kernel.inject.support.TesterInterface">
+ <entry>
+ <key><inject/></key>
+ <value><inject/></value>
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+ <bean name="testObject5" class="org.jboss.test.kernel.inject.support.PropertyInjectTestObject">
+ <property name="map">
+ <map>
+ <entry >
+ <key>test</key>
+ <value class="org.jboss.test.kernel.inject.support.TesterInterface"><inject/></value>
+ </entry>
+ </map>
+ </property>
+ </bean>
+-->
+
+ <bean name="duplicateTester" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
+
+</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/SingleNameStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/SingleNameStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/SingleNameStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testerInterface" class="org.jboss.test.kernel.inject.support.SingletonTester"/>
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.SimpleTestObject">
- <property name="testerInterface"><inject mode="ByName"/></property>
- </bean>
-
-</deployment>
Deleted: projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/SingleTypeStrictTestCase.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/SingleTypeStrictTestCase.xml 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/org/jboss/test/kernel/inject/test/SingleTypeStrictTestCase.xml 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="testObject" class="org.jboss.test.kernel.inject.support.SimpleTestObject">
- <property name="testerInterface"><inject/></property>
- </bean>
-
- <bean name="duplicateInterface" class="org.jboss.test.kernel.inject.support.DuplicateTester"/>
-
-</deployment>
Modified: projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd 2006-08-17 12:04:48 UTC (rev 56022)
@@ -366,7 +366,7 @@
e.g.
<bean name="ConstructMe" ...>
<constructor factoryMethod="someMethod">
- <factory/>
+ <factory>
<javabean xmlns="someOtherNamespace" class="com.acme.FactoryClass"/>
</factory>
</constructor>
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/FactoryTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/FactoryTestCase.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/FactoryTestCase.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -23,8 +23,6 @@
import java.util.ArrayList;
-import junit.framework.Test;
-
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
@@ -35,6 +33,8 @@
import org.jboss.test.kernel.config.support.SimpleBean;
import org.jboss.test.kernel.config.support.SimpleBeanFactory;
+import junit.framework.Test;
+
/**
* Factory Test Case.
*
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedNameStrictSimpleTestObject.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedNameStrictSimpleTestObject.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedNameStrictSimpleTestObject.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,39 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.test.kernel.inject.support;
-
-import org.jboss.beans.metadata.spi.annotations.Inject;
-import org.jboss.beans.metadata.spi.annotations.InjectType;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public class AnnotatedNameStrictSimpleTestObject extends AnnotatedSimpleTestObject
-{
-
- @Inject(type = InjectType.BY_NAME)
- public void setTesterInterface(TesterInterface testerInterface)
- {
- this.testerInterface = testerInterface;
- }
-
-}
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedSimpleTestObject.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedSimpleTestObject.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedSimpleTestObject.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,37 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.test.kernel.inject.support;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public abstract class AnnotatedSimpleTestObject implements TesterInterfaceGetter
-{
-
- protected TesterInterface testerInterface;
-
- public TesterInterface getTesterInterface()
- {
- return testerInterface;
- }
-
-}
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedTypeStrictSimpleTestObject.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedTypeStrictSimpleTestObject.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/AnnotatedTypeStrictSimpleTestObject.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,38 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.test.kernel.inject.support;
-
-import org.jboss.beans.metadata.spi.annotations.Inject;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public class AnnotatedTypeStrictSimpleTestObject extends AnnotatedSimpleTestObject
-{
-
- @Inject
- public void setTesterInterface(TesterInterface testerInterface)
- {
- this.testerInterface = testerInterface;
- }
-
-}
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ConstructorInjectTestObject.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ConstructorInjectTestObject.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ConstructorInjectTestObject.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,53 @@
+/*
+ *
+ */
+
+package org.jboss.test.kernel.inject.support;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
+ */
+public class ConstructorInjectTestObject
+{
+
+ private TesterInterface testerInterface;
+ private List<TesterInterface> testerInterfaces;
+
+ public ConstructorInjectTestObject()
+ {
+ }
+
+ public ConstructorInjectTestObject(TesterInterface testerInterface)
+ {
+ this.testerInterface = testerInterface;
+ }
+
+ public ConstructorInjectTestObject(String someString, List<TesterInterface> testerInterfaces)
+ {
+ this.testerInterfaces = testerInterfaces;
+ }
+
+ public ConstructorInjectTestObject(int x, String someString, TesterInterface testerInterface)
+ {
+ this.testerInterface = testerInterface;
+ }
+
+ public static ConstructorInjectTestObject getInstance(TesterInterface ti)
+ {
+ return new ConstructorInjectTestObject(ti);
+ }
+
+ public ConstructorInjectTestObject withParameter(TesterInterface ti)
+ {
+ this.testerInterface = ti;
+ return this;
+ }
+
+ public TesterInterface getTesterInterface()
+ {
+ return testerInterface;
+ }
+
+}
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/LifecycleInjectTestObject.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/LifecycleInjectTestObject.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/LifecycleInjectTestObject.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,45 @@
+/*
+ *
+ */
+
+package org.jboss.test.kernel.inject.support;
+
+/**
+ * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
+ */
+public class LifecycleInjectTestObject
+{
+
+ private TesterInterface testerInterface;
+
+ public void create(TesterInterface ti)
+ {
+ testerInterface = ti;
+ }
+
+ public void startMeUp(TesterInterface ti)
+ {
+ testerInterface = ti;
+ }
+
+ public void stop(TesterInterface ti)
+ {
+ testerInterface = ti;
+ }
+
+ public void destruction(TesterInterface ti)
+ {
+ testerInterface = ti;
+ }
+
+ public void installIt(TesterInterface ti)
+ {
+ testerInterface = ti;
+ }
+
+ public void fromOutside(TesterInterface ti)
+ {
+ testerInterface = ti;
+ }
+
+}
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ParameterTestObject.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ParameterTestObject.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/ParameterTestObject.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,42 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.test.kernel.inject.support;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public class ParameterTestObject
-{
-
- private DuplicateTester duplicateTester;
-
- public ParameterTestObject(DuplicateTester duplicateTester)
- {
- this.duplicateTester = duplicateTester;
- }
-
- public DuplicateTester getDuplicateTester()
- {
- return duplicateTester;
- }
-
-}
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/PropertyInjectTestObject.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/PropertyInjectTestObject.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/PropertyInjectTestObject.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,61 @@
+/*
+ *
+ */
+
+package org.jboss.test.kernel.inject.support;
+
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
+ */
+public class PropertyInjectTestObject
+{
+
+ private TesterInterface testerInterface;
+ private DuplicateTester duplicateTester;
+ private Collection collection;
+ private Map map;
+
+ public TesterInterface getTesterInterface()
+ {
+ return testerInterface;
+ }
+
+ public void setTesterInterface(TesterInterface testerInterface)
+ {
+ this.testerInterface = testerInterface;
+ }
+
+ public DuplicateTester getDuplicateTester()
+ {
+ return duplicateTester;
+ }
+
+ public void setDuplicateTester(DuplicateTester duplicateTester)
+ {
+ this.duplicateTester = duplicateTester;
+ }
+
+ public Collection getCollection()
+ {
+ return collection;
+ }
+
+ public void setCollection(Collection collection)
+ {
+ this.collection = collection;
+ }
+
+ public Map getMap()
+ {
+ return map;
+ }
+
+ public void setMap(Map map)
+ {
+ this.map = map;
+ }
+
+}
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/SimpleTestObject.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/SimpleTestObject.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/SimpleTestObject.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,44 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.test.kernel.inject.support;
-
-import org.jboss.beans.metadata.spi.annotations.Inject;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public class SimpleTestObject implements TesterInterfaceGetter
-{
-
- private TesterInterface testerInterface;
-
- public TesterInterface getTesterInterface()
- {
- return testerInterface;
- }
-
- public void setTesterInterface(TesterInterface testerInterface)
- {
- this.testerInterface = testerInterface;
- }
-
-}
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/SingletonTester.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/SingletonTester.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/SingletonTester.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,34 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.test.kernel.inject.support;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public class SingletonTester implements TesterInterface
-{
-
- public void someMethod()
- {
- }
-
-}
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/TesterInterfaceGetter.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/TesterInterfaceGetter.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/support/TesterInterfaceGetter.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,30 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.test.kernel.inject.support;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public interface TesterInterfaceGetter
-{
- TesterInterface getTesterInterface();
-}
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ConstructorContextualInjectionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ConstructorContextualInjectionTestCase.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ConstructorContextualInjectionTestCase.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,28 @@
+/*
+ *
+ */
+
+package org.jboss.test.kernel.inject.test;
+
+import junit.framework.Test;
+
+/**
+ * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
+ */
+public class ConstructorContextualInjectionTestCase extends ContextualInjectionAdapter
+{
+ public ConstructorContextualInjectionTestCase(String name)
+ {
+ super(name);
+ }
+
+ public static Test suite()
+ {
+ return suite(ConstructorContextualInjectionTestCase.class);
+ }
+
+ protected String getResource()
+ {
+ return "ConstructorContextualInjection.xml";
+ }
+}
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionAdapter.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionAdapter.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionAdapter.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+
+package org.jboss.test.kernel.inject.test;
+
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.test.kernel.junit.MicrocontainerTest;
+
+/**
+ * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
+ */
+public abstract class ContextualInjectionAdapter extends MicrocontainerTest
+{
+
+ public ContextualInjectionAdapter(String name)
+ {
+ super(name);
+ }
+
+ protected abstract String getResource();
+
+ public void testInjection() throws Throwable
+ {
+ KernelDeployment deployment = deploy(getResource());
+ try
+ {
+ validate();
+ }
+ finally
+ {
+ undeploy(deployment);
+ }
+ }
+}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionTestSuite.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionTestSuite.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ContextualInjectionTestSuite.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -41,8 +41,8 @@
{
TestSuite suite = new TestSuite("Contextal injection Tests");
- suite.addTest(ParameterContextualInjectionTestCase.suite());
- suite.addTest(IllegalParameterContextualInjectionTestCase.suite());
+ suite.addTest(ConstructorContextualInjectionTestCase.suite());
+ suite.addTest(LifecycleContextualInjectionTestCase.suite());
suite.addTest(PropertyContextualInjectionTestCase.suite());
return suite;
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/IllegalParameterContextualInjectionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/IllegalParameterContextualInjectionTestCase.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/IllegalParameterContextualInjectionTestCase.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,53 +0,0 @@
-/*
- *
- */
-
-package org.jboss.test.kernel.inject.test;
-
-import org.jboss.test.kernel.junit.MicrocontainerTest;
-import org.jboss.test.kernel.inject.support.ParameterTestObject;
-import org.jboss.kernel.spi.deployment.KernelDeployment;
-
-import junit.framework.Test;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public class IllegalParameterContextualInjectionTestCase extends MicrocontainerTest
-{
- public IllegalParameterContextualInjectionTestCase(String name)
- {
- super(name);
- }
-
- public static Test suite()
- {
- return suite(IllegalParameterContextualInjectionTestCase.class);
- }
-
- public void testContextualInjection() throws Throwable
- {
- KernelDeployment deployment = null;
- try
- {
- deployment = deploy("IllegalParameterContextualInjection.xml");
- validate();
-
- ParameterTestObject pto = (ParameterTestObject) getBean("parameterObject1");
- assertNotNull(pto.getDuplicateTester());
-
- }
- catch(Throwable t)
- {
- getLog().info("Expected throwable: " + t);
- }
- finally
- {
- if (deployment != null)
- {
- undeploy(deployment);
- }
- }
- }
-
-}
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/LifecycleContextualInjectionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/LifecycleContextualInjectionTestCase.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/LifecycleContextualInjectionTestCase.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -0,0 +1,28 @@
+/*
+ *
+ */
+
+package org.jboss.test.kernel.inject.test;
+
+import junit.framework.Test;
+
+/**
+ * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
+ */
+public class LifecycleContextualInjectionTestCase extends ContextualInjectionAdapter
+{
+ public LifecycleContextualInjectionTestCase(String name)
+ {
+ super(name);
+ }
+
+ public static Test suite()
+ {
+ return suite(LifecycleContextualInjectionTestCase.class);
+ }
+
+ protected String getResource()
+ {
+ return "LifecycleContextualInjection.xml";
+ }
+}
Deleted: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ParameterContextualInjectionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ParameterContextualInjectionTestCase.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/ParameterContextualInjectionTestCase.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -1,62 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, 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.test.kernel.inject.test;
-
-import org.jboss.test.kernel.junit.MicrocontainerTest;
-import org.jboss.test.kernel.inject.support.TesterInterfaceGetter;
-import org.jboss.test.kernel.inject.support.ParameterTestObject;
-import org.jboss.kernel.spi.deployment.KernelDeployment;
-import junit.framework.Test;
-
-/**
- * @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
- */
-public class ParameterContextualInjectionTestCase extends MicrocontainerTest
-{
- public ParameterContextualInjectionTestCase(String name)
- {
- super(name);
- }
-
- public static Test suite()
- {
- return suite(ParameterContextualInjectionTestCase.class);
- }
-
- public void testContextualInjection() throws Throwable
- {
- KernelDeployment deployment = deploy("ParameterContextualInjection.xml");
- try
- {
- validate();
-
- ParameterTestObject pto = (ParameterTestObject) getBean("parameterObject1");
- assertNotNull(pto.getDuplicateTester());
-
- }
- finally
- {
- undeploy(deployment);
- }
- }
-
-}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/PropertyContextualInjectionTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/PropertyContextualInjectionTestCase.java 2006-08-17 12:06:44 UTC (rev 56021)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/inject/test/PropertyContextualInjectionTestCase.java 2006-08-17 12:04:48 UTC (rev 56022)
@@ -21,22 +21,13 @@
*/
package org.jboss.test.kernel.inject.test;
-import org.jboss.test.kernel.junit.MicrocontainerTest;
-import org.jboss.test.kernel.inject.support.TesterInterfaceGetter;
-import org.jboss.kernel.spi.deployment.KernelDeployment;
import junit.framework.Test;
/**
* @author <a href="mailto:ales.justin at gmail.com">Ales Justin</a>
*/
-public class PropertyContextualInjectionTestCase extends MicrocontainerTest
+public class PropertyContextualInjectionTestCase extends ContextualInjectionAdapter
{
- private static final String[] PREFIX = new String[]{"", "Ann"};
- private static final String[] NUMBER = new String[]{"Single", "Multiple", "Null"};
- private static final String[] MODE = new String[]{"Type", "Name"};
- private static final String[] TYPE = new String[]{"Strict"};
- private static final String TEST_CASE_SUFFIX = "TestCase.xml";
-
public PropertyContextualInjectionTestCase(String name)
{
super(name);
@@ -47,69 +38,9 @@
return suite(PropertyContextualInjectionTestCase.class);
}
- public void testContextualInjection() throws Throwable
+ protected String getResource()
{
- enableTrace("org.jboss.kernel.plugins.dependency");
-// enableTrace("org.jboss.dependency");
- for(int i = 0; i < PropertyContextualInjectionTestCase.PREFIX.length; i++)
- {
- for(int j = 0; j < PropertyContextualInjectionTestCase.NUMBER.length; j++)
- {
- for(int k = 0; k < PropertyContextualInjectionTestCase.MODE.length; k++)
- {
- for(int l = 0; l < PropertyContextualInjectionTestCase.TYPE.length; l++)
- {
- executeTestCase(PropertyContextualInjectionTestCase.PREFIX[i] + PropertyContextualInjectionTestCase.NUMBER[j] + PropertyContextualInjectionTestCase.MODE[k] + PropertyContextualInjectionTestCase.TYPE[l] + PropertyContextualInjectionTestCase.TEST_CASE_SUFFIX);
- }
- }
- }
- }
+ return "PropertyContextualInjection.xml";
}
- private void executeTestCase(String testCaseName) throws Throwable
- {
- getLog().info("Testing contextual injection: "+ testCaseName);
- KernelDeployment deployment = null;
- try
- {
- deployment = deploy(testCaseName);
-
- validate();
-
- TesterInterfaceGetter interfaceGetter = (TesterInterfaceGetter) getBean("testObject");
- boolean isSingle = testCaseName.indexOf("Single") >= 0;
- assertFalse(interfaceGetter == null && isStrict(testCaseName) && isSingle);
- }
- catch(Throwable t)
- {
- // check if we expect Throwable - e.g. NullTypeStrictTestCase, ...
- if (isThrowableExpected(testCaseName) == false)
- {
- fail("Unexpected injection failure: " + t.toString());
- }
- // get some info about 'failure'
- getLog().info(t);
- }
- finally {
- if (deployment != null)
- {
- undeploy(deployment);
- }
- }
- }
-
- // MultipleNameStrictTC is excluded - unique name requirement
- private boolean isThrowableExpected(String testCaseName)
- {
- boolean isMultiple = testCaseName.indexOf("Multiple") >= 0;
- boolean isNull = testCaseName.indexOf("Null") >= 0;
- boolean isName = testCaseName.indexOf("Name") >= 0;
- return isMultiple || (isNull && isStrict(testCaseName) || (isNull && isName));
- }
-
- private boolean isStrict(String testCaseName)
- {
- return testCaseName.indexOf("Strict") >= 0;
- }
-
}
More information about the jboss-cvs-commits
mailing list