[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