[jboss-cvs] JBossAS SVN: r81535 - in projects/microcontainer/branches/Branch_2_0/kernel/src: main/java/org/jboss/kernel/plugins/config and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Nov 25 05:13:13 EST 2008
Author: alesj
Date: 2008-11-25 05:13:13 -0500 (Tue, 25 Nov 2008)
New Revision: 81535
Modified:
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java
projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java
projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
Log:
Port JIRA issues to branch.
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2008-11-25 10:13:13 UTC (rev 81535)
@@ -636,19 +636,26 @@
public void initialVisit(MetaDataVisitor visitor)
{
- if (getBean() == null && isAbstract() == false && getParent() == null)
+ ConstructorMetaData constructor = getConstructor();
+ if (getBean() == null)
{
- ConstructorMetaData constructor = getConstructor();
- if (constructor == null)
- throw new IllegalArgumentException("Bean should have a class attribute or a constructor element.");
- if (constructor.getFactoryMethod() == null)
+ if (isAbstract() == false && getParent() == null)
{
- if (constructor.getValue() == null)
- throw new IllegalArgumentException("Bean should have a class attribute or the constructor element should have either a factoryMethod attribute or embedded value.");
+ if (constructor == null)
+ throw new IllegalArgumentException("Bean should have a class attribute or a constructor element.");
+ if (constructor.getFactoryMethod() == null)
+ {
+ if (constructor.getValue() == null)
+ throw new IllegalArgumentException("Bean should have a class attribute or the constructor element should have either a factoryMethod attribute or embedded value.");
+ }
+ else if (constructor.getFactory() == null && constructor.getFactoryClass() == null)
+ throw new IllegalArgumentException("Bean should have a class attribute or the constructor element should have one of a factoryClass attribute or a factory element, or embedded value.");
}
- else if (constructor.getFactory() == null && constructor.getFactoryClass() == null)
- throw new IllegalArgumentException("Bean should have a class attribute or the constructor element should have one of a factoryClass attribute or a factory element, or embedded value.");
}
+ else
+ {
+ checkConstructorFactoryClass(constructor);
+ }
KernelControllerContext ctx = visitor.getControllerContext();
if (ctx.getBeanMetaData() == this)
@@ -673,6 +680,30 @@
super.initialVisit(visitor);
}
+ /**
+ * Check constructor factory class.
+ *
+ * @param constructor the constructor meta data
+ */
+ protected void checkConstructorFactoryClass(ConstructorMetaData constructor)
+ {
+ if (constructor == null)
+ return;
+ if (constructor.getFactoryMethod() == null)
+ return;
+ if (constructor.getFactoryClass() != null)
+ return;
+ if (constructor.getValue() != null)
+ return;
+ if (constructor.getFactory() != null)
+ return;
+ if (constructor instanceof AbstractConstructorMetaData == false)
+ return;
+
+ AbstractConstructorMetaData acmd = AbstractConstructorMetaData.class.cast(constructor);
+ acmd.setFactoryClass(getBean());
+ }
+
protected void addChildren(Set<MetaDataVisitorNode> children)
{
super.addChildren(children);
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java 2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java 2008-11-25 10:13:13 UTC (rev 81535)
@@ -51,6 +51,7 @@
* Configuration utilities.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
* @version $Revision$
*/
public class Configurator extends Config
@@ -655,22 +656,30 @@
*/
public static ClassLoader getClassLoader(ClassLoaderMetaData metaData) throws Throwable
{
- ClassLoader tcl = Thread.currentThread().getContextClassLoader();
+ ClassLoader tcl = null;
ClassLoader cl = null;
+
if (metaData != null)
{
ValueMetaData clVMD = metaData.getClassLoader();
if (clVMD != null)
{
+ tcl = Thread.currentThread().getContextClassLoader();
Object object = clVMD.getValue(null, tcl);
if (object != null && object instanceof ClassLoader == false)
throw new IllegalArgumentException("Configured object is not a classloader " + metaData);
cl = (ClassLoader) object;
}
}
+
if (cl == null)
- cl = tcl;
- return cl;
+ {
+ return (tcl != null) ? tcl : Thread.currentThread().getContextClassLoader();
+ }
+ else
+ {
+ return cl;
+ }
}
/**
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java 2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java 2008-11-25 10:13:13 UTC (rev 81535)
@@ -30,6 +30,7 @@
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.logging.Logger;
+import org.jboss.reflect.spi.TypeInfo;
/**
* PropertyDispatchWrapper.
@@ -68,23 +69,27 @@
public Object execute() throws Throwable
{
String name = property.getName();
+ PropertyInfo propertyInfo = BeanInfoUtil.getPropertyInfo(beanInfo, target, name);
+ TypeInfo typeInfo = propertyInfo.getType();
if (nullify)
{
- try
+ if (typeInfo.isPrimitive() == false)
{
- beanInfo.setProperty(target, name, null);
+ try
+ {
+ beanInfo.setProperty(target, name, null);
+ }
+ catch (Throwable t)
+ {
+ if (log.isTraceEnabled())
+ log.trace("Ignored for " + target + "." + name, t);
+ }
}
- catch (Throwable t)
- {
- if (log.isTraceEnabled())
- log.trace("Ignored for " + target + "." + name, t);
- }
}
else
{
- PropertyInfo propertyInfo = BeanInfoUtil.getPropertyInfo(beanInfo, target, name);
ValueMetaData valueMetaData = property.getValue();
- Object value = valueMetaData.getValue(propertyInfo.getType(), cl);
+ Object value = valueMetaData.getValue(typeInfo, cl);
validatePropertyValue(context, target, propertyInfo, value);
beanInfo.setProperty(target, name, value);
}
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java 2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/main/java/org/jboss/kernel/plugins/deployment/AbstractKernelDeployment.java 2008-11-25 10:13:13 UTC (rev 81535)
@@ -135,6 +135,7 @@
* @param beans a List<BeanMetaData>.
*/
@SuppressWarnings("unchecked")
+ @Deprecated
public void setBeans(List beans)
{
this.beanFactories = beans;
Modified: projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
===================================================================
--- projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2008-11-25 08:40:28 UTC (rev 81534)
+++ projects/microcontainer/branches/Branch_2_0/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2008-11-25 10:13:13 UTC (rev 81535)
@@ -25,24 +25,24 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.HashSet;
import junit.framework.Test;
import org.jboss.beans.metadata.api.model.AutowireType;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractRelatedClassMetaData;
import org.jboss.beans.metadata.plugins.InstallCallbackMetaData;
import org.jboss.beans.metadata.plugins.UninstallCallbackMetaData;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractRelatedClassMetaData;
import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
import org.jboss.beans.metadata.spi.CallbackMetaData;
+import org.jboss.beans.metadata.spi.RelatedClassMetaData;
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.beans.metadata.spi.LifecycleMetaData;
-import org.jboss.beans.metadata.spi.RelatedClassMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.dependency.spi.Cardinality;
import org.jboss.dependency.spi.ControllerContext;
@@ -161,14 +161,14 @@
{
BeanMetaDataBuilder demand = BeanMetaDataBuilderFactory.createBuilder("DemandBean", SimpleBean.class.getName());
demand.addDemand("Barrier");
- BeanMetaData demandBean = demand.getBeanMetaData();
+ BeanMetaDataFactory demandBean = demand.getBeanMetaDataFactory();
BeanMetaDataBuilder supply = BeanMetaDataBuilderFactory.createBuilder("SupplyBean", SimpleLifecycleBean.class.getName());
supply.addSupply("Barrier");
- BeanMetaData supplyBean = supply.getBeanMetaData();
+ BeanMetaDataFactory supplyBean = supply.getBeanMetaDataFactory();
AbstractKernelDeployment deployment = new AbstractKernelDeployment();
- deployment.setBeans(Arrays.asList(demandBean, supplyBean));
+ deployment.setBeanFactories(Arrays.asList(demandBean, supplyBean));
Kernel kernel = bootstrap();
KernelController controller = kernel.getController();
@@ -193,13 +193,13 @@
{
BeanMetaDataBuilder dependOn = BeanMetaDataBuilderFactory.createBuilder("DependOnBean", SimpleBean.class.getName());
dependOn.addDependency("DependencyResolver");
- BeanMetaData dependOnBean = dependOn.getBeanMetaData();
+ BeanMetaDataFactory dependOnBean = dependOn.getBeanMetaDataFactory();
BeanMetaDataBuilder resolver = BeanMetaDataBuilderFactory.createBuilder("DependencyResolver", SimpleLifecycleBean.class.getName());
- BeanMetaData resolverBean = resolver.getBeanMetaData();
+ BeanMetaDataFactory resolverBean = resolver.getBeanMetaDataFactory();
AbstractKernelDeployment deployment = new AbstractKernelDeployment();
- deployment.setBeans(Arrays.asList(dependOnBean, resolverBean));
+ deployment.setBeanFactories(Arrays.asList(dependOnBean, resolverBean));
Kernel kernel = bootstrap();
KernelController controller = kernel.getController();
@@ -250,7 +250,7 @@
builder.addPropertyMetaData("map", map);
AbstractKernelDeployment deployment = new AbstractKernelDeployment();
- deployment.setBeans(Arrays.asList(builder.getBeanMetaData()));
+ deployment.setBeanFactories(Arrays.asList(builder.getBeanMetaDataFactory()));
Kernel kernel = bootstrap();
KernelController controller = kernel.getController();
@@ -328,7 +328,7 @@
builder.addPropertyMetaData("map", map);
AbstractKernelDeployment deployment = new AbstractKernelDeployment();
- deployment.setBeans(Arrays.asList(builder.getBeanMetaData()));
+ deployment.setBeanFactories(Arrays.asList(builder.getBeanMetaDataFactory()));
Kernel kernel = bootstrap();
KernelController controller = kernel.getController();
@@ -903,7 +903,7 @@
assertIgnoredLifecycle(bmd.getCreate());
assertIgnoredLifecycle(bmd.getStart());
assertIgnoredLifecycle(bmd.getStop());
- assertIgnoredLifecycle(bmd.getDestroy());
+ assertIgnoredLifecycle(bmd.getDestroy());
}
protected void assertIgnoredLifecycle(LifecycleMetaData lmd)
More information about the jboss-cvs-commits
mailing list