[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