[jboss-cvs] JBossAS SVN: r71354 - in projects/microcontainer/trunk: dependency/src/main/org/jboss/dependency/plugins and 9 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 27 12:08:53 EDT 2008


Author: alesj
Date: 2008-03-27 12:08:53 -0400 (Thu, 27 Mar 2008)
New Revision: 71354

Added:
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ErrorHandlingMode.java
   projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithErrorHandlingMode.xml
Removed:
   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/BeanSchemaInitializer.java
Modified:
   projects/microcontainer/trunk/dependency/pom.xml
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerMode.java
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/helpers/UnmodifiableControllerContext.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanJaxbTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java
Log:
Adding asynchronous controller mode.
Introducing ErrorHandlingMode.
Removing old beans:1.0 schema initializer.
Adding jbossxb dependency to dependency module - to be able to annotate ControllerMode and ErrorHandlingMode with @JBossXmlEnum once JBossXB is updated.

Modified: projects/microcontainer/trunk/dependency/pom.xml
===================================================================
--- projects/microcontainer/trunk/dependency/pom.xml	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/dependency/pom.xml	2008-03-27 16:08:53 UTC (rev 71354)
@@ -45,6 +45,24 @@
     <!-- Global dependencies -->
     <dependency>
       <groupId>org.jboss</groupId>
+      <artifactId>jbossxb</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-reflect</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jboss</groupId>
+          <artifactId>jboss-common-core</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>jboss</groupId>
+          <artifactId>jboss-common-logging-spi</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss</groupId>
       <artifactId>jboss-reflect</artifactId>
       <exclusions>
         <exclusion>

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -33,6 +33,7 @@
 import org.jboss.dependency.spi.ControllerMode;
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.DependencyInfo;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 import org.jboss.dependency.spi.ScopeInfo;
 import org.jboss.util.JBossObject;
 import org.jboss.util.JBossStringBuilder;
@@ -63,9 +64,12 @@
    /** The required state */
    private ControllerState requiredState = ControllerState.NOT_INSTALLED;
 
-   /** The mdoe */
+   /** The mode */
    private ControllerMode mode = ControllerMode.AUTOMATIC;
    
+   /** The error handling mode */
+   private ErrorHandlingMode errorHandlingMode = ErrorHandlingMode.DISCARD;
+
    /** The actions */
    private ControllerContextActions actions;
    
@@ -244,15 +248,32 @@
    
    public void setMode(ControllerMode mode)
    {
+      if (ControllerMode.ASYNCHRONOUS.equals(mode))
+         throw new IllegalArgumentException("Not yet implemented, asynchronouse mode.");
+
       this.mode = mode;
       flushJBossObjectCache();
    }
 
+   public ErrorHandlingMode getErrorHandlingMode()
+   {
+      return errorHandlingMode;
+   }
+
    /**
-    * Get the controller
-    * 
-    * @return the controller
+    * Set the error handling mode.
+    *
+    * @param errorHandlingMode the error handling mode
     */
+   public void setErrorHandlingMode(ErrorHandlingMode errorHandlingMode)
+   {
+      if (errorHandlingMode != null && ErrorHandlingMode.DISCARD.equals(errorHandlingMode) == false)
+         throw new IllegalArgumentException("Not yet implemented, manual or checked error handling mode.");
+
+      this.errorHandlingMode = errorHandlingMode;
+      flushJBossObjectCache();
+   }
+
    public Controller getController()
    {
       return controller;
@@ -346,6 +367,8 @@
          buffer.append(" mode=").append(mode.getModeString());
          buffer.append(" requiredState=").append(requiredState.getStateString());
       }
+      if (ErrorHandlingMode.DISCARD.equals(errorHandlingMode) == false)
+         buffer.append(" error-handling=").append(errorHandlingMode);
       if (dependencies != null)
          buffer.append(" depends=").append(dependencies);
       if (error != null)
@@ -370,6 +393,8 @@
          buffer.append(" mode=").append(mode.getModeString());
          buffer.append(" requiredState=").append(requiredState.getStateString());
       }
+      if (ErrorHandlingMode.DISCARD.equals(errorHandlingMode) == false)
+         buffer.append(" error-handling=").append(errorHandlingMode);
       if (error != null)
          buffer.append(" error=").append(error.getClass().getName()).append(": ").append(error.getMessage());
    }

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -140,8 +140,15 @@
     * @param mode the mode
     */
    void setMode(ControllerMode mode);
-   
+
    /**
+    * Get the error handling mode.
+    *
+    * @return the error handling mode
+    */
+   ErrorHandlingMode getErrorHandlingMode();
+
+   /**
     * Get the error
     * 
     * @return the error

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerMode.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerMode.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerMode.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -29,12 +29,14 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
+//@JBossXmlEnum(ignoreCase=true)
 public enum ControllerMode
 {
    AUTOMATIC("Automatic"),
    ON_DEMAND("On Demand"),
    MANUAL("Manual"),
-   DISABLED("Disabled");
+   DISABLED("Disabled"),
+   ASYNCHRONOUS("Asynchronous");
 
    /** The mode string */
    private final String modeString;

Copied: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ErrorHandlingMode.java (from rev 71341, projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerMode.java)
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ErrorHandlingMode.java	                        (rev 0)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ErrorHandlingMode.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -0,0 +1,46 @@
+/*
+* 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.dependency.spi;
+
+/**
+ * Error handling mode.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+//@JBossXmlEnum(ignoreCase=true)
+public enum ErrorHandlingMode
+{
+   DISCARD, // The default as before
+   MANUAL, // Handle contexts in error yourself
+   CHECKED; // As MANUAL but RuntimeExceptions, Errors lead to a DISCARD
+
+   // TODO - remove after 219
+   public static ErrorHandlingMode getInstance(String type)
+   {
+      for(ErrorHandlingMode mode : values())
+      {
+         if (mode.toString().equalsIgnoreCase(type))
+            return mode;
+      }
+      throw new IllegalArgumentException("No such error handling mode: " + type);
+   }
+}

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/helpers/UnmodifiableControllerContext.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/helpers/UnmodifiableControllerContext.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/helpers/UnmodifiableControllerContext.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -30,6 +30,7 @@
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.DependencyInfo;
 import org.jboss.dependency.spi.ScopeInfo;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 import org.jboss.util.JBossObject;
 
 /**
@@ -127,6 +128,11 @@
       throw new UnsupportedOperationException("Cannot invoke set on unmodifiable wrapper.");
    }
 
+   public ErrorHandlingMode getErrorHandlingMode()
+   {
+      return delegate.getErrorHandlingMode();
+   }
+
    public Throwable getError()
    {
       return delegate.getError();

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-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractBeanMetaData.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -34,6 +34,7 @@
 import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.beans.info.spi.BeanAccessMode;
 import org.jboss.beans.metadata.api.model.AutowireType;
 import org.jboss.beans.metadata.spi.AliasMetaData;
 import org.jboss.beans.metadata.spi.BeanMetaData;
@@ -49,13 +50,13 @@
 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.info.spi.BeanAccessMode;
 import org.jboss.dependency.plugins.AbstractDependencyItem;
 import org.jboss.dependency.spi.Controller;
 import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.dependency.spi.ControllerMode;
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.DependencyItem;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.managed.api.annotation.ManagementObject;
 import org.jboss.managed.api.annotation.ManagementProperties;
@@ -103,6 +104,9 @@
    /** The mode */
    protected ControllerMode mode;
 
+   /** The error handling mode */
+   protected ErrorHandlingMode errorHandlingMode;
+
    /** The access mode */
    protected BeanAccessMode accessMode;
 
@@ -451,6 +455,17 @@
       flushJBossObjectCache();
    }
 
+   public ErrorHandlingMode getErrorHandlingMode()
+   {
+      return errorHandlingMode;
+   }
+
+   @XmlAttribute(name="error-handling")
+   public void setErrorHandlingMode(ErrorHandlingMode errorHandlingMode)
+   {
+      this.errorHandlingMode = errorHandlingMode;
+   }
+
    public BeanAccessMode getAccessMode()
    {
       return accessMode;

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/BeanMetaData.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -25,6 +25,7 @@
 import java.util.Set;
 
 import org.jboss.dependency.spi.ControllerMode;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 import org.jboss.beans.metadata.api.model.AutowireType;
 import org.jboss.beans.info.spi.BeanAccessMode;
 
@@ -93,20 +94,27 @@
    ControllerMode getMode();
    
    /**
-    * Get the access mode
+    * Set the name
     *
-    * @return the mode
+    * @param mode the mode
     */
-   BeanAccessMode getAccessMode();
+   void setMode(ControllerMode mode);
 
    /**
-    * Set the name
-    * 
-    * @param mode the mode
+    * Get error handling mode
+    *
+    * @return the error handling mode
     */
-   void setMode(ControllerMode mode);
+   ErrorHandlingMode getErrorHandlingMode();
 
    /**
+    * Get the access mode
+    *
+    * @return the access mode
+    */
+   BeanAccessMode getAccessMode();
+
+   /**
     * Is this bean is a candidate for
     * getting injected via contextual matching
     * or callback resolution.

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	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -36,6 +36,7 @@
 import org.jboss.dependency.spi.ControllerMode;
 import org.jboss.dependency.spi.DependencyInfo;
 import org.jboss.dependency.spi.DependencyItem;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 import org.jboss.kernel.Kernel;
 import org.jboss.kernel.plugins.config.Configurator;
 import org.jboss.kernel.spi.dependency.KernelController;
@@ -60,23 +61,24 @@
    private static final RuntimePermission GET_CLASSLOADER_PERMISSION = new RuntimePermission("getClassLoader");
    
    /** The BeanInfo */
-   protected BeanInfo info;
+   private BeanInfo info;
 
    /** The meta data */
-   protected BeanMetaData metaData;
+   private BeanMetaData metaData;
 
    /** The access control context */
-   protected AccessControlContext accessContext;
+   private AccessControlContext accessContext;
 
    /** Did we do a initialVisit */
-   protected boolean isInitialProcessed;
+   private boolean isInitialProcessed;
 
    /** Did we do a describeVisit */
-   protected boolean isDescribeProcessed;
+   private boolean isDescribeProcessed;
 
    /**
     * Determine the aliases
-    * 
+    *
+    * @param metaData the bean meta data
     * @return the aliases
     */
    private static Set<Object> determineAliases(BeanMetaData metaData)
@@ -119,6 +121,9 @@
       ControllerMode mode = metaData.getMode();
       if (mode != null)
          setMode(mode);
+      ErrorHandlingMode errorHandlingMode = metaData.getErrorHandlingMode();
+      if (errorHandlingMode != null)
+         setErrorHandlingMode(errorHandlingMode);
       boolean autowireCandidate = metaData.isAutowireCandidate();
       getDependencyInfo().setAutowireCandidate(autowireCandidate);
       if (System.getSecurityManager() != null)

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanHandler.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -29,6 +29,7 @@
 import org.jboss.beans.metadata.spi.ConstructorMetaData;
 import org.jboss.beans.info.spi.BeanAccessMode;
 import org.jboss.dependency.spi.ControllerMode;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
 import org.xml.sax.Attributes;
@@ -70,6 +71,8 @@
                mode = BeanAccessMode.ALL;
             bean.setAccessMode(mode);
          }
+         else if ("error-handling".equals(localName))
+            bean.setErrorHandlingMode(ErrorHandlingMode.getInstance(localName));
          else if ("parent".equals(localName))
             bean.setParent(attrs.getValue(i));
          else if ("abstract".equals(localName))

Deleted: 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	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -1,1383 +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.deployment.xml;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.namespace.QName;
-
-import org.jboss.beans.metadata.plugins.AbstractArrayMetaData;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractClassLoaderMetaData;
-import org.jboss.beans.metadata.plugins.AbstractCollectionMetaData;
-import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
-import org.jboss.beans.metadata.plugins.AbstractDemandMetaData;
-import org.jboss.beans.metadata.plugins.AbstractDependencyMetaData;
-import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractLifecycleMetaData;
-import org.jboss.beans.metadata.plugins.AbstractListMetaData;
-import org.jboss.beans.metadata.plugins.AbstractMapMetaData;
-import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
-import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
-import org.jboss.beans.metadata.plugins.AbstractSetMetaData;
-import org.jboss.beans.metadata.plugins.AbstractSupplyMetaData;
-import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
-import org.jboss.beans.metadata.api.model.InjectOption;
-import org.jboss.beans.metadata.api.model.FromContext;
-import org.jboss.beans.metadata.api.model.AutowireType;
-import org.jboss.beans.metadata.plugins.StringValueMetaData;
-import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.beans.metadata.spi.DemandMetaData;
-import org.jboss.beans.metadata.spi.DependencyMetaData;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
-import org.jboss.beans.metadata.spi.ParameterMetaData;
-import org.jboss.beans.metadata.spi.PropertyMetaData;
-import org.jboss.beans.metadata.spi.SupplyMetaData;
-import org.jboss.beans.metadata.spi.ValueMetaData;
-import org.jboss.dependency.spi.ControllerMode;
-import org.jboss.dependency.spi.ControllerState;
-import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
-import org.jboss.logging.Logger;
-import org.jboss.xb.binding.sunday.unmarshalling.CharactersHandler;
-import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementHandler;
-import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementInterceptor;
-import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
-import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
-import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
-import org.xml.sax.Attributes;
-
-/**
- * The POJO schema binding.
- * 
- * @author <a href="mailto:alex at jboss.org">Alexey Loubyansky</a>
- * @author <a href="mailto:adrian at jboss.com">Adrian Brock</a>
- * @version $Revision$
- */
- at SuppressWarnings("deprecation")
-public class BeanSchemaBinding
-{
-   /** The log */
-   private static final Logger log = Logger.getLogger(BeanSchemaBinding.class);
-
-   /** The namespace */
-   private static final String BEAN_DEPLOYER_NS = "urn:jboss:bean-deployer";
-
-   /** The deployment binding */
-   private static final QName deploymentTypeQName = new QName(BEAN_DEPLOYER_NS, "deploymentType");
-
-   /** The bean binding */
-   private static final QName beanTypeQName = new QName(BEAN_DEPLOYER_NS, "beanType");
-
-   /** The bean element name */
-   private static final QName beanQName = new QName(BEAN_DEPLOYER_NS, "bean");
-
-   /** The beanfactory binding */
-   private static final QName beanFactoryTypeQName = new QName(BEAN_DEPLOYER_NS, "beanfactoryType");
-
-   /** The beanfactory element name */
-   private static final QName beanFactoryQName = new QName(BEAN_DEPLOYER_NS, "beanfactory");
-
-   /** The classloader binding */
-   private static final QName classloaderTypeQName = new QName(BEAN_DEPLOYER_NS, "classloaderType");
-
-   /** The classloader element name */
-   private static final QName classloaderQName = new QName(BEAN_DEPLOYER_NS, "classloader");
-
-   /** The constructor binding */
-   private static final QName constructorTypeQName = new QName(BEAN_DEPLOYER_NS, "constructorType");
-
-   /** The constructor element name */
-   private static final QName constructorQName = new QName(BEAN_DEPLOYER_NS, "constructor");
-
-   /** The factory element name */
-   private static final QName factoryQName = new QName(BEAN_DEPLOYER_NS, "factory");
-
-   /** The parameter binding */
-   private static final QName parameterTypeQName = new QName(BEAN_DEPLOYER_NS, "parameterType");
-
-   /** The parameter element name */
-   private static final QName parameterQName = new QName(BEAN_DEPLOYER_NS, "parameter");
-
-   /** The lifecycle binding */
-   private static final QName lifecycleTypeQName = new QName(BEAN_DEPLOYER_NS, "lifecycleType");
-
-   /** The create element name */
-   private static final QName createQName = new QName(BEAN_DEPLOYER_NS, "create");
-
-   /** The start element name */
-   private static final QName startQName = new QName(BEAN_DEPLOYER_NS, "start");
-
-   /** The stop element name */
-   private static final QName stopQName = new QName(BEAN_DEPLOYER_NS, "stop");
-
-   /** The destroy element name */
-   private static final QName destroyQName = new QName(BEAN_DEPLOYER_NS, "destroy");
-
-   /** The property binding */
-   private static final QName propertyTypeQName = new QName(BEAN_DEPLOYER_NS, "propertyType");
-
-   /** The property element name */
-   private static final QName propertyQName = new QName(BEAN_DEPLOYER_NS, "property");
-
-   /** The depends binding */
-   private static final QName dependsTypeQName = new QName(BEAN_DEPLOYER_NS, "dependsType");
-
-   /** The depends element name */
-   private static final QName dependsQName = new QName(BEAN_DEPLOYER_NS, "depends");
-
-   /** The demand binding */
-   private static final QName demandTypeQName = new QName(BEAN_DEPLOYER_NS, "demandType");
-
-   /** The demand element name */
-   private static final QName demandQName = new QName(BEAN_DEPLOYER_NS, "demand");
-
-   /** The supply binding */
-   private static final QName supplyTypeQName = new QName(BEAN_DEPLOYER_NS, "supplyType");
-
-   /** The supply element name */
-   private static final QName supplyQName = new QName(BEAN_DEPLOYER_NS, "supply");
-
-   /** The dependency binding */
-   private static final QName dependencyTypeQName = new QName(BEAN_DEPLOYER_NS, "dependencyType");
-
-   /** The injection binding */
-   private static final QName injectionTypeQName = new QName(BEAN_DEPLOYER_NS, "injectionType");
-
-   /** The inject element name */
-   private static final QName injectQName = new QName(BEAN_DEPLOYER_NS, "inject");
-
-   /** The plain value binding */
-   private static final QName plainValueTypeQName = new QName(BEAN_DEPLOYER_NS, "plainValueType");
-
-   /** The value binding */
-   private static final QName valueTypeQName = new QName(BEAN_DEPLOYER_NS, "valueType");
-
-   /** The value element name */
-   private static final QName valueQName = new QName(BEAN_DEPLOYER_NS, "value");
-
-   /** The null element name */
-   private static final QName nullQName = new QName(BEAN_DEPLOYER_NS, "null");
-
-   /** The collection binding */
-   private static final QName collectionTypeQName = new QName(BEAN_DEPLOYER_NS, "collectionType");
-
-   /** The collection element name */
-   private static final QName collectionQName = new QName(BEAN_DEPLOYER_NS, "collection");
-
-   /** The list binding */
-   private static final QName listTypeQName = new QName(BEAN_DEPLOYER_NS, "listType");
-
-   /** The list element name */
-   private static final QName listQName = new QName(BEAN_DEPLOYER_NS, "list");
-
-   /** The set binding */
-   private static final QName setTypeQName = new QName(BEAN_DEPLOYER_NS, "setType");
-
-   /** The set element name */
-   private static final QName setQName = new QName(BEAN_DEPLOYER_NS, "set");
-
-   /** The array binding */
-   private static final QName arrayTypeQName = new QName(BEAN_DEPLOYER_NS, "arrayType");
-
-   /** The array element name */
-   private static final QName arrayQName = new QName(BEAN_DEPLOYER_NS, "array");
-
-   /** The map binding */
-   private static final QName mapTypeQName = new QName(BEAN_DEPLOYER_NS, "mapType");
-
-   /** The map element name */
-   private static final QName mapQName = new QName(BEAN_DEPLOYER_NS, "map");
-
-   /** The entry binding */
-   private static final QName entryTypeQName = new QName(BEAN_DEPLOYER_NS, "entryType");
-
-   /** The entry element name */
-   private static final QName entryQName = new QName(BEAN_DEPLOYER_NS, "entry");
-
-   /** The key element name */
-   private static final QName keyQName = new QName(BEAN_DEPLOYER_NS, "key");
-
-   /** The schema binding */
-   private static SchemaBinding schemaBinding;
-   
-   /** The value handler */
-   public static ValueMetaDataElementInterceptor VALUES = new ValueMetaDataElementInterceptor();
-   
-   /** The null handler */
-   public static NullValueElementInterceptor NULLVALUES = new NullValueElementInterceptor();
-
-   /**
-    * Initialize the schema binding
-    * 
-    * @param schemaBinding the schema binding
-    */
-   protected synchronized static void init(SchemaBinding schemaBinding)
-   {
-      // Encourage users to upgrade to the more complete 2.0 version of the schema
-      log.warn("You should use the 2.0 version of the Microcontainer xml. xmlns='urn:jboss:bean-deployer:2.0'");
-      
-      BeanSchemaBinding.schemaBinding = schemaBinding;
-
-      // ignore XB property replacement
-      schemaBinding.setReplacePropertyRefs(false);
-
-      // deployment binding
-      TypeBinding deploymentType = schemaBinding.getType(deploymentTypeQName);
-      deploymentType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractKernelDeployment();
-         }
-      });
-
-      // deployment has a classloader
-      deploymentType.pushInterceptor(classloaderQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractKernelDeployment deployment = (AbstractKernelDeployment) parent;
-            AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData) child;
-            deployment.setClassLoader(classloader);
-            // add classloaders as value beans
-            List<BeanMetaDataFactory> beans = deployment.getBeanFactories();
-            if (beans == null)
-            {
-               beans = new ArrayList<BeanMetaDataFactory>();
-               deployment.setBeanFactories(beans);
-            }
-         }
-      });
-
-      // deployment has a list beans
-      deploymentType.pushInterceptor(beanQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractKernelDeployment deployment = (AbstractKernelDeployment) parent;
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) child;
-            List<BeanMetaDataFactory> beans = deployment.getBeanFactories();
-            if (beans == null)
-            {
-               beans = new ArrayList<BeanMetaDataFactory>();
-               deployment.setBeanFactories(beans);
-            }
-            beans.add(bean);
-         }
-      });
-
-      // deployment has a list beanfactorys
-      deploymentType.pushInterceptor(beanFactoryQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractKernelDeployment deployment = (AbstractKernelDeployment) parent;
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) child;
-            List<BeanMetaDataFactory> beans = deployment.getBeanFactories();
-            if (beans == null)
-            {
-               beans = new ArrayList<BeanMetaDataFactory>();
-               deployment.setBeanFactories(beans);
-            }
-            beans.add(bean);
-         }
-      });
-
-      // bean binding
-      TypeBinding beanType = schemaBinding.getType(beanTypeQName);
-
-      /*
-      ClassMetaData classMetaData = new ClassMetaData();
-      classMetaData.setImpl(AbstractBeanMetaData.class.getName());
-      beanType.setClassMetaData(classMetaData);
-      
-      QName CLASS = new QName("class");
-      AttributeBinding attribute = beanType.getAttribute(CLASS);
-      PropertyMetaData propertyMetaData = new PropertyMetaData();
-      propertyMetaData.setName("bean");
-      attribute.setPropertyMetaData(propertyMetaData);
-
-      QName MODE = new QName("mode");
-      attribute = beanType.getAttribute(MODE);
-      ValueAdapter modeAdapter = new ValueAdapter()
-      {
-         public Object cast(Object o, Class c)
-         {
-            String string = (String) o;
-            return new ControllerMode(string);
-         }
-      };
-      attribute.setValueAdapter(modeAdapter);
-      */
-      beanType.setHandler(new DefaultElementHandler()
-      {
-         
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractBeanMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("name".equals(localName))
-                  bean.setName(attrs.getValue(i));
-               else if ("class".equals(localName))
-                  bean.setBean(attrs.getValue(i));
-               else if ("mode".equals(localName))
-                  bean.setMode(ControllerMode.getInstance(attrs.getValue(i)));
-            }
-         }
-      });
-
-      // beanfactory binding
-      TypeBinding beanFactoryType = schemaBinding.getType(beanFactoryTypeQName);
-      beanFactoryType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("name".equals(localName))
-                  bean.setName(attrs.getValue(i));
-               else if ("class".equals(localName))
-                  bean.setBeanClass(attrs.getValue(i));
-               else if ("factoryClass".equals(localName))
-                  bean.setFactoryClass(attrs.getValue(i));
-               else if ("mode".equals(localName))
-                  bean.setMode(ControllerMode.getInstance(attrs.getValue(i)));
-            }
-         }
-      });
-
-      // bean has a classloader
-      beanType.pushInterceptor(classloaderQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData) child;
-            bean.setClassLoader(classloader);
-         }
-      });
-
-      // beanfactory has a classloader
-      beanFactoryType.pushInterceptor(classloaderQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
-            AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData) child;
-            bean.setClassLoader(classloader);
-         }
-      });
-
-      // bean has a constructor
-      beanType.pushInterceptor(constructorQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) child;
-            bean.setConstructor(constructor);
-         }
-      });
-
-      // beanfactory has a constructor
-      beanFactoryType.pushInterceptor(constructorQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
-            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) child;
-            bean.setBeanConstructor(constructor);
-         }
-      });
-
-      // classloader binding
-      TypeBinding classloaderType = schemaBinding.getType(classloaderTypeQName);
-      configureValueBindings(classloaderType);
-      classloaderType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractClassLoaderMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-         }
-      });
-
-      // constructor binding
-      TypeBinding constructorType = schemaBinding.getType(constructorTypeQName);
-      constructorType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractConstructorMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("factoryClass".equals(localName))
-                  constructor.setFactoryClass(attrs.getValue(i));
-               else if ("factoryMethod".equals(localName))
-                  constructor.setFactoryMethod(attrs.getValue(i));
-            }
-         }
-      });
-
-      // constructor has a factory
-      constructorType.pushInterceptor(factoryQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) parent;
-            AbstractDependencyValueMetaData factory = (AbstractDependencyValueMetaData) child;
-            constructor.setFactory(factory);
-         }
-      });
-
-      // constructor has a list parameters
-      constructorType.pushInterceptor(parameterQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) parent;
-            AbstractParameterMetaData parameter = (AbstractParameterMetaData) child;
-            List<ParameterMetaData> parameters = constructor.getParameters();
-            if (parameters == null)
-            {
-               parameters = new ArrayList<ParameterMetaData>();
-               constructor.setParameters(parameters);
-            }
-            parameter.setIndex(parameters.size());
-            parameters.add(parameter);
-         }
-      });
-
-      // parameter binding
-      TypeBinding parameterType = schemaBinding.getType(parameterTypeQName);
-      configureValueBindings(parameterType);
-      parameterType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractParameterMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractParameterMetaData parameter = (AbstractParameterMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("class".equals(localName))
-                  parameter.setType(attrs.getValue(i));
-               else if ("replace".equals(localName) || "trim".equals(localName))
-               {
-                  ValueMetaData vmd = parameter.getValue();
-                  StringValueMetaData stringValueMetaData;
-                  if (vmd != null && vmd instanceof StringValueMetaData)
-                     stringValueMetaData = (StringValueMetaData)vmd;
-                  else
-                  {
-                     stringValueMetaData = new StringValueMetaData();
-                     parameter.setValue(stringValueMetaData);
-                  }
-                  if ("replace".equals(localName))
-                     stringValueMetaData.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
-                  else if ("trim".equals(localName))
-                     stringValueMetaData.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
-               }
-            }
-         }
-      });
-      
-      // parameter can take a value
-      parameterType.setSimpleType(new CharactersHandler()
-      {
-         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
-         {
-            return new StringValueMetaData(value);
-         }
-
-         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
-         {
-            AbstractParameterMetaData parameter = (AbstractParameterMetaData) owner;
-            StringValueMetaData svmd = (StringValueMetaData) value;
-            ValueMetaData vmd = parameter.getValue();
-            if (vmd != null && vmd instanceof StringValueMetaData)
-            {
-               StringValueMetaData previous = (StringValueMetaData) vmd;
-               svmd.setReplace(previous.isReplace());
-               svmd.setTrim(previous.isTrim());
-               String type = previous.getType();
-               if (type != null)
-                  svmd.setType(type);
-            }
-            parameter.setValue(svmd);         }
-      });
-
-      // bean has a create
-      beanType.pushInterceptor(createQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
-            lifecycle.setType("create");
-            bean.setCreate(lifecycle);
-         }
-      });
-
-      // beanfactory has a create
-      beanFactoryType.pushInterceptor(createQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
-            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
-            lifecycle.setType("create");
-            bean.setBeanCreate(lifecycle);
-         }
-      });
-
-      // bean has a start
-      beanType.pushInterceptor(startQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
-            lifecycle.setType("start");
-            bean.setStart(lifecycle);
-         }
-      });
-
-      // beanfactory has a start
-      beanFactoryType.pushInterceptor(startQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
-            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
-            lifecycle.setType("start");
-            bean.setBeanStart(lifecycle);
-         }
-      });
-
-      // bean has a stop
-      beanType.pushInterceptor(stopQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
-            lifecycle.setType("stop");
-            bean.setStop(lifecycle);
-         }
-      });
-
-      // bean has a destroy
-      beanType.pushInterceptor(destroyQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
-            lifecycle.setType("destroy");
-            bean.setDestroy(lifecycle);
-         }
-      });
-
-      // lifecycle binding
-      TypeBinding lifecycleType = schemaBinding.getType(lifecycleTypeQName);
-      lifecycleType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractLifecycleMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("method".equals(localName))
-                  lifecycle.setMethodName(attrs.getValue(i));
-               else if ("ignored".equals(localName))
-                  lifecycle.setIgnored(Boolean.parseBoolean(attrs.getValue(i)));
-            }
-         }
-      });
-
-      // lifecycle has a list parameters
-      lifecycleType.pushInterceptor(parameterQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) parent;
-            AbstractParameterMetaData parameter = (AbstractParameterMetaData) child;
-            List<ParameterMetaData> parameters = lifecycle.getParameters();
-            if (parameters == null)
-            {
-               parameters = new ArrayList<ParameterMetaData>();
-               lifecycle.setParameters(parameters);
-            }
-            parameter.setIndex(parameters.size());
-            parameters.add(parameter);
-         }
-      });
-
-      // bean has a set of properties
-      beanType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractPropertyMetaData property = (AbstractPropertyMetaData) child;
-            Set<PropertyMetaData> properties = bean.getProperties();
-            if (properties == null)
-            {
-               properties = new HashSet<PropertyMetaData>();
-               bean.setProperties(properties);
-            }
-            properties.add(property);
-         }
-      });
-
-      // beanfactory has a set of properties
-      beanFactoryType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
-            AbstractPropertyMetaData property = (AbstractPropertyMetaData) child;
-            bean.addBeanProperty(property);
-         }
-      });
-
-      // bean has a set of depends
-      beanType.pushInterceptor(dependsQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractDependencyMetaData dependency = (AbstractDependencyMetaData) child;
-            Set<DependencyMetaData> depends = bean.getDepends();
-            if (depends == null)
-            {
-               depends = new HashSet<DependencyMetaData>();
-               bean.setDepends(depends);
-            }
-            depends.add(dependency);
-         }
-      });
-
-      // beanfactory has a set of depends
-      beanFactoryType.pushInterceptor(dependsQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
-            AbstractDependencyMetaData dependency = (AbstractDependencyMetaData) child;
-            Set<DependencyMetaData> depends = bean.getDepends();
-            if (depends == null)
-            {
-               depends = new HashSet<DependencyMetaData>();
-               bean.setDepends(depends);
-            }
-            depends.add(dependency);
-         }
-      });
-
-      // bean has a set of demands
-      beanType.pushInterceptor(demandQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractDemandMetaData demand = (AbstractDemandMetaData) child;
-            Set<DemandMetaData> demands = bean.getDemands();
-            if (demands == null)
-            {
-               demands = new HashSet<DemandMetaData>();
-               bean.setDemands(demands);
-            }
-            demands.add(demand);
-         }
-      });
-
-      // beanfactory has a set of demands
-      beanFactoryType.pushInterceptor(demandQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractDemandMetaData demand = (AbstractDemandMetaData) child;
-            Set<DemandMetaData> demands = bean.getDemands();
-            if (demands == null)
-            {
-               demands = new HashSet<DemandMetaData>();
-               bean.setDemands(demands);
-            }
-            demands.add(demand);
-         }
-      });
-
-      // bean has a set of supplies
-      beanType.pushInterceptor(supplyQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) child;
-            Set<SupplyMetaData> supplies = bean.getSupplies();
-            if (supplies == null)
-            {
-               supplies = new HashSet<SupplyMetaData>();
-               bean.setSupplies(supplies);
-            }
-            supplies.add(supply);
-         }
-      });
-
-      // beanfactory has a set of supplies
-      beanFactoryType.pushInterceptor(supplyQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
-            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) child;
-            Set<SupplyMetaData> supplies = bean.getSupplies();
-            if (supplies == null)
-            {
-               supplies = new HashSet<SupplyMetaData>();
-               bean.setSupplies(supplies);
-            }
-            supplies.add(supply);
-         }
-      });
-
-      // property binding
-      TypeBinding propertyType = schemaBinding.getType(propertyTypeQName);
-      configureValueBindings(propertyType);
-      propertyType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractPropertyMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractPropertyMetaData property = (AbstractPropertyMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("name".equals(localName))
-                  property.setName(attrs.getValue(i));
-               else if ("preinstantiate".equals(localName))
-                  property.setPreInstantiate(Boolean.parseBoolean(attrs.getValue(i)));
-               else if ("class".equals(localName) || "replace".equals(localName) || "trim".equals(localName))
-               {
-                  StringValueMetaData svmd;
-                  ValueMetaData vmd = property.getValue();
-                  if (vmd == null || vmd instanceof StringValueMetaData == false)
-                  {
-                     svmd = new StringValueMetaData();
-                     property.setValue(svmd);
-                  }
-                  else
-                  {
-                     svmd = (StringValueMetaData)vmd;
-                  }
-                  if ("class".equals(localName))
-                     svmd.setType(attrs.getValue(i));
-                  else if ("replace".equals(localName))
-                     svmd.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
-                  else if ("trim".equals(localName))
-                     svmd.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
-               }
-            }
-         }
-         
-         public Object endElement(Object o, QName qName, ElementBinding element)
-         {
-            AbstractPropertyMetaData x = (AbstractPropertyMetaData) o;
-            String name = x.getName();
-            if (name == null || name.trim().length() == 0)
-               throw new IllegalArgumentException("Null or empty property name.");
-            return o;
-         }
-      });
-
-      // property can take a value
-      propertyType.setSimpleType(new CharactersHandler()
-      {
-         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
-         {
-            return new StringValueMetaData(value);
-         }
-
-         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
-         {
-            AbstractPropertyMetaData property = (AbstractPropertyMetaData) owner;
-            StringValueMetaData svmd = (StringValueMetaData) value;
-            ValueMetaData vmd = property.getValue();
-            if (vmd != null && vmd instanceof StringValueMetaData)
-            {
-               StringValueMetaData previous = (StringValueMetaData) vmd;
-               svmd.setReplace(previous.isReplace());
-               svmd.setTrim(previous.isTrim());
-               String type = previous.getType();
-               if (type != null)
-                  svmd.setType(type);
-            }
-            property.setValue(svmd);
-         }
-      });
-
-      // dependency binding
-      TypeBinding dependsType = schemaBinding.getType(dependsTypeQName);
-      dependsType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractDependencyMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-         }
-         
-         public Object endElement(Object o, QName qName, ElementBinding element)
-         {
-            AbstractDependencyMetaData x = (AbstractDependencyMetaData) o;
-            String name = (String) x.getDependency();
-            if (name == null || name.trim().length() == 0)
-               throw new IllegalArgumentException("Null or empty dependency.");
-            return o;
-         }
-      });
-
-      // depends can take a value
-      dependsType.setSimpleType(new CharactersHandler()
-      {
-         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
-         {
-            return value;
-         }
-
-         public void setValue(QName qname, ElementBinding element, Object owner, Object value)
-         {
-            AbstractDependencyMetaData depends = (AbstractDependencyMetaData) owner;
-            depends.setDependency(value);
-         }
-      });
-
-      // demand binding
-      TypeBinding demandType = schemaBinding.getType(demandTypeQName);
-      demandType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractDemandMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractDemandMetaData demand = (AbstractDemandMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("state".equals(localName))
-                  demand.setWhenRequired(new ControllerState(attrs.getValue(i)));
-            }
-         }
-         
-         public Object endElement(Object o, QName qName, ElementBinding element)
-         {
-            AbstractDemandMetaData x = (AbstractDemandMetaData) o;
-            String name = (String) x.getDemand();
-            if (name == null || name.trim().length() == 0)
-               throw new IllegalArgumentException("Null or empty demand.");
-            return o;
-         }
-      });
-
-      // demand can take a value
-      demandType.setSimpleType(new CharactersHandler()
-      {
-         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
-         {
-            return value;
-         }
-
-         public void setValue(QName qname, ElementBinding element, Object owner, Object value)
-         {
-            AbstractDemandMetaData demand = (AbstractDemandMetaData) owner;
-            demand.setDemand(value);
-         }
-      });
-
-      // supply binding
-      TypeBinding supplyType = schemaBinding.getType(supplyTypeQName);
-      supplyType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractSupplyMetaData();
-         }
-         
-         public Object endElement(Object o, QName qName, ElementBinding element)
-         {
-            AbstractSupplyMetaData x = (AbstractSupplyMetaData) o;
-            String name = (String) x.getSupply();
-            if (name == null || name.trim().length() == 0)
-               throw new IllegalArgumentException("Null or empty supply.");
-            return o;
-         }
-      });
-
-      // supply can take a value
-      supplyType.setSimpleType(new CharactersHandler()
-      {
-         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
-         {
-            return value;
-         }
-
-         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
-         {
-            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) owner;
-            supply.setSupply(value);
-         }
-      });
-
-      // dependency binding
-      TypeBinding dependencyType = schemaBinding.getType(dependencyTypeQName);
-      dependencyType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractDependencyValueMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractDependencyValueMetaData dependency = (AbstractDependencyValueMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("bean".equals(localName))
-                  dependency.setValue(attrs.getValue(i));
-               else if ("property".equals(localName))
-                  dependency.setProperty(attrs.getValue(i));
-               else if ("state".equals(localName))
-                  dependency.setDependentState(new ControllerState(attrs.getValue(i)));
-               else if ("whenRequired".equals(localName))
-                  dependency.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
-            }
-         }
-         
-         public Object endElement(Object o, QName qName, ElementBinding element)
-         {
-            AbstractDependencyValueMetaData x = (AbstractDependencyValueMetaData) o;
-            String name = (String) x.getUnderlyingValue();
-            if (name == null || name.trim().length() == 0)
-               throw new IllegalArgumentException("Null or empty bean in injection/factory.");
-            return o;
-         }
-      });
-
-      // injection binding
-      TypeBinding injectionType = schemaBinding.getType(injectionTypeQName);
-      injectionType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            AbstractInjectionValueMetaData vmd = new AbstractInjectionValueMetaData();
-            if (parent instanceof AbstractPropertyMetaData)
-            {
-               AbstractPropertyMetaData x = (AbstractPropertyMetaData) parent;
-               vmd.setPropertyMetaData(x);
-            }
-            return vmd;
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractInjectionValueMetaData injection = (AbstractInjectionValueMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("bean".equals(localName))
-                  injection.setValue(attrs.getValue(i));
-               else if ("property".equals(localName))
-                  injection.setProperty(attrs.getValue(i));
-               else if ("state".equals(localName))
-                  injection.setDependentState(new ControllerState(attrs.getValue(i)));
-               else if ("whenRequired".equals(localName))
-                  injection.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
-               else if ("type".equals(localName))
-                  injection.setInjectionType(AutowireType.getInstance(attrs.getValue(i)));
-               else if ("option".equals(localName))
-                  injection.setInjectionOption(InjectOption.getInstance(attrs.getValue(i)));
-               else if ("fromContext".equals(localName))
-                  injection.setFromContext(FromContext.getInstance(attrs.getValue(i)));
-            }
-         }
-      });
-
-      // value binding
-      TypeBinding plainValueType = schemaBinding.getType(plainValueTypeQName);
-      plainValueType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new StringValueMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            StringValueMetaData value = (StringValueMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("class".equals(localName))
-                  value.setType(attrs.getValue(i));
-               else if ("replace".equals(localName))
-                  value.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
-               else if ("trim".equals(localName))
-                  value.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
-            }
-         }
-      });
-
-      // value can take a value
-      plainValueType.setSimpleType(new CharactersHandler()
-      {
-         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
-         {
-            return value;
-         }
-
-         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
-         {
-            StringValueMetaData valueMetaData = (StringValueMetaData) owner;
-            valueMetaData.setValue(value);
-         }
-      });
-
-      // value binding
-      TypeBinding valueType = schemaBinding.getType(valueTypeQName);
-      configureValueBindings(valueType);
-      valueType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractValueMetaData(new StringValueMetaData());
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractValueMetaData value = (AbstractValueMetaData) o;
-            StringValueMetaData string = (StringValueMetaData) value.getValue();
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("class".equals(localName))
-                  string.setType(attrs.getValue(i));
-               else if ("replace".equals(localName))
-                  string.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
-               else if ("trim".equals(localName))
-                  string.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
-            }
-         }
-      });
-
-      // value can take a value
-      valueType.setSimpleType(new CharactersHandler()
-      {
-         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
-         {
-            return value;
-         }
-
-         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
-         {
-            AbstractValueMetaData valueMetaData = (AbstractValueMetaData) owner;
-            StringValueMetaData string = (StringValueMetaData) valueMetaData.getValue();
-            string.setValue(value);
-         }
-      });
-
-      // collection binding
-      configureCollection(collectionTypeQName);
-
-      // list binding
-      configureCollection(listTypeQName);
-
-      // set binding
-      configureCollection(setTypeQName);
-
-      // array binding
-      configureCollection(arrayTypeQName);
-
-      // map binding
-      TypeBinding mapType = schemaBinding.getType(mapTypeQName);
-      mapType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new AbstractMapMetaData();
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractMapMetaData collection = (AbstractMapMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("class".equals(localName))
-                  collection.setType(attrs.getValue(i));
-               else if ("keyClass".equals(localName))
-                  collection.setKeyType(attrs.getValue(i));
-               else if ("valueClass".equals(localName))
-                  collection.setValueType(attrs.getValue(i));
-            }
-         }
-      });
-
-      // map has a map entries
-      mapType.pushInterceptor(entryQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            AbstractMapMetaData map = (AbstractMapMetaData) parent;
-            MapEntry entry = (MapEntry) child;
-            AbstractValueMetaData entryKey = (AbstractValueMetaData) entry.key;
-            if (entryKey == null)
-               throw new IllegalArgumentException("No key in map entry");
-            AbstractValueMetaData entryValue = (AbstractValueMetaData) entry.value; 
-            if (entryValue == null)
-               throw new IllegalArgumentException("No value in map entry");
-            map.put((MetaDataVisitorNode) entryKey.getValue(), (MetaDataVisitorNode) entryValue.getValue());
-         }
-      });
-
-      // entry binding
-      TypeBinding entryType = schemaBinding.getType(entryTypeQName);
-      entryType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            return new MapEntry();
-         }
-      });
-
-      // entry has a key
-      entryType.pushInterceptor(keyQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            MapEntry entry = (MapEntry) parent;
-            entry.key = child;
-         }
-      });
-
-      // entry has a value
-      entryType.pushInterceptor(valueQName, new DefaultElementInterceptor()
-      {
-         public void add(Object parent, Object child, QName name)
-         {
-            MapEntry entry = (MapEntry) parent;
-            entry.value = child;
-         }
-      });
-   }
-   
-   /**
-    * Configure a collection.
-    * @param qname collection qname
-    */
-   private static void configureCollection(QName qname)
-   {
-      TypeBinding collectionType = schemaBinding.getType(qname);
-      collectionType.setHandler(new DefaultElementHandler()
-      {
-         public Object startElement(Object parent, QName name, ElementBinding element)
-         {
-            if (collectionQName.equals(name))
-               return new AbstractCollectionMetaData();
-            else if (listQName.equals(name))
-               return new AbstractListMetaData();
-            else if (setQName.equals(name))
-               return new AbstractSetMetaData();
-            else if (arrayQName.equals(name))
-               return new AbstractArrayMetaData();
-            else
-               throw new IllegalArgumentException("Unknown collection qname=" + name);
-         }
-
-         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
-         {
-            AbstractCollectionMetaData collection = (AbstractCollectionMetaData) o;
-            for (int i = 0; i < attrs.getLength(); ++i)
-            {
-               String localName = attrs.getLocalName(i);
-               if ("class".equals(localName))
-                  collection.setType(attrs.getValue(i));
-               else if ("elementClass".equals(localName))
-                  collection.setElementType(attrs.getValue(i));
-            }
-         }
-      });
-
-      configureValueBindings(collectionType);
-   }
-   
-   private static void configureValueBindings(TypeBinding typeBinding)
-   {
-      // type has values
-      typeBinding.pushInterceptor(valueQName, VALUES);
-
-      // type has injections
-      typeBinding.pushInterceptor(injectQName, VALUES);
-
-      // type can take a collection
-      typeBinding.pushInterceptor(collectionQName, VALUES);
-
-      // type can take a list
-      typeBinding.pushInterceptor(listQName, VALUES);
-
-      // type can take a set
-      typeBinding.pushInterceptor(setQName, VALUES);
-
-      // type can take an array
-      typeBinding.pushInterceptor(arrayQName, VALUES);
-
-      // type can take a map
-      typeBinding.pushInterceptor(mapQName, VALUES);
-
-      // type has a null
-      typeBinding.pushInterceptor(nullQName, NULLVALUES);
-   }
-   
-   private static class NullValueElementInterceptor extends DefaultElementInterceptor
-   {
-      public void add(Object parent, Object child, QName name)
-      {
-         if (parent instanceof AbstractCollectionMetaData)
-         {
-            AbstractCollectionMetaData collection = (AbstractCollectionMetaData) parent;
-            collection.add(new AbstractValueMetaData());
-         }
-         else if (parent instanceof AbstractParameterMetaData)
-         {
-            AbstractParameterMetaData valueMetaData = (AbstractParameterMetaData) parent;
-            valueMetaData.setValue(new AbstractValueMetaData());
-         }
-         else if (parent instanceof AbstractPropertyMetaData)
-         {
-            AbstractPropertyMetaData valueMetaData = (AbstractPropertyMetaData) parent;
-            valueMetaData.setValue(new AbstractValueMetaData());
-         }
-         else if (parent instanceof AbstractClassLoaderMetaData)
-         {
-            AbstractClassLoaderMetaData valueMetaData = (AbstractClassLoaderMetaData) parent;
-            valueMetaData.setClassLoader(new AbstractValueMetaData());
-         }
-         else
-         {
-            AbstractValueMetaData valueMetaData = (AbstractValueMetaData) parent;
-            valueMetaData.setValue(new AbstractValueMetaData());
-         }
-      }
-   }
-   
-   private static class ValueMetaDataElementInterceptor extends DefaultElementInterceptor
-   {
-      public void add(Object parent, Object child, QName name)
-      {
-         if (parent instanceof AbstractCollectionMetaData)
-         {
-            AbstractCollectionMetaData collection = (AbstractCollectionMetaData) parent;
-            ValueMetaData value = (ValueMetaData) child;
-            collection.add(value);
-         }
-         else if (parent instanceof AbstractParameterMetaData)
-         {
-            AbstractParameterMetaData valueMetaData = (AbstractParameterMetaData) parent;
-            ValueMetaData value = (ValueMetaData) child;
-            valueMetaData.setValue(value);
-         }
-         else if (parent instanceof AbstractPropertyMetaData)
-         {
-            AbstractPropertyMetaData valueMetaData = (AbstractPropertyMetaData) parent;
-            ValueMetaData value = (ValueMetaData) child;
-            valueMetaData.setValue(value);
-         }
-         else if (parent instanceof AbstractClassLoaderMetaData)
-         {
-            AbstractClassLoaderMetaData valueMetaData = (AbstractClassLoaderMetaData) parent;
-            ValueMetaData value = (ValueMetaData) child;
-            valueMetaData.setClassLoader(value);
-         }
-         else
-         {
-            AbstractValueMetaData valueMetaData = (AbstractValueMetaData) parent;
-            ValueMetaData value = (ValueMetaData) child;
-            valueMetaData.setValue(value);
-         }
-      }
-   }
-   
-   private static class MapEntry
-   {
-      public Object key;
-      public Object value;
-   }
-}

Deleted: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaInitializer.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaInitializer.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaInitializer.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -1,40 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.kernel.plugins.deployment.xml;
-
-import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
-import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingInitializer;
-
-/**
- * BeanSchemaInitializer.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision$
- */
-public class BeanSchemaInitializer implements SchemaBindingInitializer
-{
-   public SchemaBinding init(SchemaBinding schema)
-   {
-      BeanSchemaBinding.init(schema);
-      return schema;
-   }
-}

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -29,6 +29,7 @@
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.DependencyInfo;
 import org.jboss.dependency.spi.ScopeInfo;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 import org.jboss.kernel.spi.registry.KernelRegistryEntry;
 import org.jboss.util.JBossObject;
 import org.jboss.util.JBossStringBuilder;
@@ -147,6 +148,11 @@
       throw new NotImplementedException("setMode");
    }
 
+   public ErrorHandlingMode getErrorHandlingMode()
+   {
+      return ErrorHandlingMode.DISCARD;
+   }
+
    public void install(ControllerState fromState, ControllerState toState) throws Throwable
    {
       throw new NotImplementedException("install");

Copied: projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithErrorHandlingMode.xml (from rev 71341, projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithAccessMode.xml)
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithErrorHandlingMode.xml	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/tests/org/jboss/test/kernel/deployment/xml/test/BeanWithErrorHandlingMode.xml	2008-03-27 16:08:53 UTC (rev 71354)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy" error-handling="MANUAL"/>

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanJaxbTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanJaxbTestCase.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanJaxbTestCase.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -28,6 +28,7 @@
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.info.spi.BeanAccessMode;
 import org.jboss.dependency.spi.ControllerMode;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 import org.jboss.test.kernel.deployment.xml.support.Annotation1;
 import org.jboss.test.kernel.deployment.xml.support.Annotation2;
 import org.jboss.test.kernel.deployment.xml.support.Annotation3;
@@ -46,6 +47,7 @@
       assertEquals("Name1", bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -69,6 +71,7 @@
       assertNull(bean.getName());
       assertEquals(Object.class.getName(), bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -92,6 +95,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertEquals(ControllerMode.MANUAL, bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -109,6 +113,30 @@
       assertNull(bean.getUninstallCallbacks());
    }
 
+   public void testBeanWithErrorHandlingMode() throws Exception
+   {
+      AbstractBeanMetaData bean = unmarshalBean();
+      assertNull(bean.getName());
+      assertEquals("Dummy", bean.getBean());
+      assertNull(bean.getMode());
+      assertEquals(ErrorHandlingMode.MANUAL, bean.getErrorHandlingMode());
+      assertNull(bean.getAccessMode());
+      assertNull(bean.getAnnotations());
+      assertNull(bean.getClassLoader());
+      assertNull(bean.getConstructor());
+      assertNull(bean.getProperties());
+      assertNull(bean.getCreate());
+      assertNull(bean.getStart());
+      assertNull(bean.getStop());
+      assertNull(bean.getDestroy());
+      assertNull(bean.getDemands());
+      assertNull(bean.getSupplies());
+      assertNull(bean.getInstalls());
+      assertNull(bean.getUninstalls());
+      assertNull(bean.getInstallCallbacks());
+      assertNull(bean.getUninstallCallbacks());
+   }
+
    public void testBeanWithAccessMode() throws Exception
    {
       AbstractBeanMetaData bean = unmarshalBean();
@@ -138,6 +166,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       HashSet<String> expected = new HashSet<String>();
       expected.add(Annotation1.class.getName());
@@ -163,6 +192,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       HashSet<String> expected = new HashSet<String>();
       expected.add(Annotation1.class.getName());
@@ -190,6 +220,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNotNull(bean.getClassLoader());
@@ -213,6 +244,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -236,6 +268,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -261,6 +294,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -288,6 +322,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -311,6 +346,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -334,6 +370,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -357,6 +394,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -380,6 +418,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -405,6 +444,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -432,6 +472,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -457,6 +498,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -484,6 +526,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -509,6 +552,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -536,6 +580,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -561,6 +606,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -588,6 +634,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -613,6 +660,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -640,6 +688,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -665,6 +714,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -692,6 +742,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -717,6 +768,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java	2008-03-27 15:59:33 UTC (rev 71353)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/BeanTestCase.java	2008-03-27 16:08:53 UTC (rev 71354)
@@ -29,6 +29,7 @@
 import org.jboss.beans.metadata.api.model.AutowireType;
 import org.jboss.beans.info.spi.BeanAccessMode;
 import org.jboss.dependency.spi.ControllerMode;
+import org.jboss.dependency.spi.ErrorHandlingMode;
 
 /**
  * BeanTestCase.
@@ -44,6 +45,7 @@
       assertEquals("Name1", bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -67,6 +69,7 @@
       assertNull(bean.getName());
       assertEquals(Object.class.getName(), bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -90,6 +93,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertEquals(ControllerMode.MANUAL, bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -107,6 +111,30 @@
       assertNull(bean.getUninstallCallbacks());
    }
 
+   public void testBeanWithErrorHandlingMode() throws Exception
+   {
+      AbstractBeanMetaData bean = unmarshalBean("BeanWithErrorHandlingMode.xml");
+      assertNull(bean.getName());
+      assertEquals("Dummy", bean.getBean());
+      assertNull(bean.getMode());
+      assertEquals(ErrorHandlingMode.MANUAL, bean.getErrorHandlingMode());
+      assertNull(bean.getAccessMode());
+      assertNull(bean.getAnnotations());
+      assertNull(bean.getClassLoader());
+      assertNull(bean.getConstructor());
+      assertNull(bean.getProperties());
+      assertNull(bean.getCreate());
+      assertNull(bean.getStart());
+      assertNull(bean.getStop());
+      assertNull(bean.getDestroy());
+      assertNull(bean.getDemands());
+      assertNull(bean.getSupplies());
+      assertNull(bean.getInstalls());
+      assertNull(bean.getUninstalls());
+      assertNull(bean.getInstallCallbacks());
+      assertNull(bean.getUninstallCallbacks());
+   }
+
    public void testBeanWithAccessMode() throws Exception
    {
       AbstractBeanMetaData bean = unmarshalBean("BeanWithAccessMode.xml");
@@ -136,6 +164,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       HashSet<String> expected = new HashSet<String>();
       expected.add("org.jboss.test.kernel.deployment.xml.support.Annotation1");
@@ -161,6 +190,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       HashSet<String> expected = new HashSet<String>();
       expected.add("org.jboss.test.kernel.deployment.xml.support.Annotation1");
@@ -188,6 +218,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNotNull(bean.getClassLoader());
@@ -211,6 +242,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -234,6 +266,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -259,6 +292,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -286,6 +320,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -309,6 +344,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -332,6 +368,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -355,6 +392,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -378,6 +416,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -403,6 +442,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -430,6 +470,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -455,6 +496,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -482,6 +524,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -507,6 +550,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -534,6 +578,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -559,6 +604,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -586,6 +632,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -611,6 +658,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -638,6 +686,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -663,6 +712,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -690,6 +740,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -715,6 +766,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -743,6 +795,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -767,6 +820,7 @@
       assertNull(bean.getName());
       assertNull(bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -791,6 +845,7 @@
       assertNull(bean.getName());
       assertNull(bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());
@@ -815,6 +870,7 @@
       assertNull(bean.getName());
       assertEquals("Dummy", bean.getBean());
       assertNull(bean.getMode());
+      assertNull(bean.getErrorHandlingMode());
       assertNull(bean.getAccessMode());
       assertNull(bean.getAnnotations());
       assertNull(bean.getClassLoader());




More information about the jboss-cvs-commits mailing list