[jboss-cvs] JBossAS SVN: r70508 - in projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata: spi/factory and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 6 14:28:52 EST 2008
Author: adrian at jboss.org
Date: 2008-03-06 14:28:52 -0500 (Thu, 06 Mar 2008)
New Revision: 70508
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/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/AbstractInstallMetaData.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/AbstractValueFactoryMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/factory/GenericBeanFactoryMetaData.java
Log:
[JBMICROCONT-219] - Move validation into the initial visit
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -123,6 +123,12 @@
public void initialVisit(MetaDataVisitor visitor)
{
+ String ann = getAnnotation().trim();
+ if (ann == null || ann.length() == 0)
+ throw new IllegalArgumentException("Empty annotation content");
+ if (ann.startsWith("@") == false)
+ throw new IllegalArgumentException("Annotation content must be a fully qualified annotation type name prefixed with '@'");
+
visitor.initialVisit(this);
}
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -596,6 +596,20 @@
public void initialVisit(MetaDataVisitor visitor)
{
+ if (getBean() == null && isAbstract() == false && getParent() == 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 (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.");
+ }
+
KernelControllerContext ctx = visitor.getControllerContext();
if (ctx.getBeanMetaData() == this)
context = ctx;
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractClassLoaderMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -108,6 +108,9 @@
public void initialVisit(MetaDataVisitor visitor)
{
+ if (getClassLoader() == null)
+ throw new IllegalArgumentException("ClassLoader should have a nested value.");
+
visitor.setContextState(ControllerState.PRE_INSTALL);
visitor.initialVisit(this);
}
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -214,6 +214,18 @@
@Override
public void initialVisit(MetaDataVisitor visitor)
{
+ ValueMetaData factory = getFactory();
+ if (factory != null || getFactoryClass() != null)
+ {
+ if (getFactoryMethod() == null)
+ throw new IllegalArgumentException("Constructor needs a factoryMethod attribute when there is a factoryClass attribute or factory element.");
+ }
+ if (factory != null)
+ {
+ if (factory.getUnderlyingValue() == null)
+ throw new IllegalArgumentException("Factory should have a bean attribute or nested element.");
+ }
+
if (parameters != null)
{
for (int i = 0; i < parameters.size(); ++i)
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -140,6 +140,10 @@
public void initialVisit(MetaDataVisitor visitor)
{
+ String name = (String) getDemand();
+ if (name == null || name.trim().length() == 0)
+ throw new IllegalArgumentException("Null or empty demand.");
+
KernelControllerContext context = visitor.getControllerContext();
DependencyItem item = new DemandDependencyItem(context.getName());
visitor.addDependency(item);
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractDependencyMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -91,6 +91,10 @@
public void initialVisit(MetaDataVisitor visitor)
{
+ String name = (String) getDependency();
+ if (name == null || name.trim().length() == 0)
+ throw new IllegalArgumentException("Null or empty dependency.");
+
KernelControllerContext context = visitor.getControllerContext();
DependencyItem item = new LifecycleDependencyItem(context.getName(), ControllerState.CREATE);
visitor.addDependency(item);
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInstallMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -100,6 +100,9 @@
public void initialVisit(MetaDataVisitor visitor)
{
+ if (getMethodName() == null)
+ throw new IllegalArgumentException("Install/uninstall should have method attribute.");
+
KernelControllerContext context = visitor.getControllerContext();
if (bean != null)
{
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -271,6 +271,10 @@
public void initialVisit(MetaDataVisitor visitor)
{
+ String name = getName();
+ if (name == null || name.trim().length() == 0)
+ throw new IllegalArgumentException("Null or empty property name.");
+
ValueMetaData vmd = getValue();
if (vmd != null && vmd instanceof AbstractInjectionValueMetaData)
((AbstractInjectionValueMetaData) vmd).setPropertyMetaData(this);
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 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractSupplyMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -147,6 +147,10 @@
public void initialVisit(MetaDataVisitor visitor)
{
+ Object supply = getSupply();
+ if (supply == null || supply.toString().length() == 0)
+ throw new IllegalArgumentException("Null or empty supply.");
+
visitor.initialVisit(this);
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueFactoryMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueFactoryMetaData.java 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueFactoryMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -269,6 +269,8 @@
@Override
public void initialVisit(MetaDataVisitor visitor)
{
+ if (getUnderlyingValue() == null || getMethod() == null)
+ throw new IllegalArgumentException("Bean or method cannot null: " + this);
if (getParameter() != null && getParameters() != null)
throw new IllegalArgumentException("Both parameter and parameters cannot be set: " + this);
if (getParameter() != null)
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/factory/GenericBeanFactoryMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/factory/GenericBeanFactoryMetaData.java 2008-03-06 18:58:51 UTC (rev 70507)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/factory/GenericBeanFactoryMetaData.java 2008-03-06 19:28:52 UTC (rev 70508)
@@ -491,6 +491,17 @@
public List<BeanMetaData> getBeans()
{
+ if (getBean() == null)
+ {
+ ConstructorMetaData constructor = getConstructor();
+ if (constructor == null)
+ throw new IllegalArgumentException("BeanFactory should have a class attribute or a constructor element.");
+ if (constructor.getFactoryMethod() == null)
+ throw new IllegalArgumentException("BeanFactory should have a class attribute or the constructor element should have a factoryMethod attribute.");
+ if (constructor.getFactory() == null && constructor.getFactoryClass() == null)
+ throw new IllegalArgumentException("BeanFactory should have a class attribute or the constructor element should have a either a factoryClass attribute or a factory element.");
+ }
+
BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, GenericBeanFactory.class.getName());
builder.setAliases(aliases);
builder.setMode(mode);
More information about the jboss-cvs-commits
mailing list