[jboss-cvs] JBossAS SVN: r58982 - in projects/microcontainer/trunk: kernel/src/main/org/jboss/beans/metadata/plugins spring-int/src/main/org/jboss/spring/deployment/xml
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Dec 12 03:55:39 EST 2006
Author: alesj
Date: 2006-12-12 03:55:27 -0500 (Tue, 12 Dec 2006)
New Revision: 58982
Added:
projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeansInterceptor.java
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleMetaData.java
projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/ConstructorArgInterceptor.java
projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeanHandler.java
projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeansHandler.java
projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringSchemaBindingHelper.java
Log:
JBMICROCONT-26; initial code commit, minor fixes
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleMetaData.java 2006-12-11 21:36:29 UTC (rev 58981)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractLifecycleMetaData.java 2006-12-12 08:55:27 UTC (rev 58982)
@@ -63,6 +63,11 @@
{
}
+ public AbstractLifecycleMetaData(String methodName)
+ {
+ this.methodName = methodName;
+ }
+
public ControllerState getState()
{
return state;
Modified: projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/ConstructorArgInterceptor.java
===================================================================
--- projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/ConstructorArgInterceptor.java 2006-12-11 21:36:29 UTC (rev 58981)
+++ projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/ConstructorArgInterceptor.java 2006-12-12 08:55:27 UTC (rev 58982)
@@ -47,16 +47,18 @@
public void add(Object parent, Object child, QName name)
{
AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
- ConstructorMetaData constructor = bean.getConstructor();
+ AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) bean.getConstructor();
if (constructor == null) {
- AbstractConstructorMetaData tmpConstructor = new AbstractConstructorMetaData();
- tmpConstructor.setParameters(new ArrayList<ParameterMetaData>());
- constructor = tmpConstructor;
+ constructor = new AbstractConstructorMetaData();
bean.setConstructor(constructor);
}
AbstractParameterMetaData parameter = (AbstractParameterMetaData) child;
- // should not be null, since we are the only one creating constructor
List<ParameterMetaData> parameters = constructor.getParameters();
+ if (parameters == null)
+ {
+ parameters = new ArrayList<ParameterMetaData>();
+ constructor.setParameters(parameters);
+ }
if (parameter instanceof AbstractConstructorArg && ((AbstractConstructorArg)parameter).isExplicitIndex() == false)
{
parameter.setIndex(parameters.size());
Modified: projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeanHandler.java
===================================================================
--- projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeanHandler.java 2006-12-11 21:36:29 UTC (rev 58981)
+++ projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeanHandler.java 2006-12-12 08:55:27 UTC (rev 58982)
@@ -25,6 +25,9 @@
import javax.xml.namespace.QName;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractLifecycleMetaData;
+import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
+import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementHandler;
import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
import org.xml.sax.Attributes;
@@ -54,6 +57,23 @@
bean.setName(attrs.getValue(i));
else if ("class".equals(localName))
bean.setBean(attrs.getValue(i));
+ else if ("init-method".equals(localName))
+ bean.setCreate(new AbstractLifecycleMetaData(attrs.getValue(i)));
+ else if ("destroy-method".equals(localName))
+ bean.setDestroy(new AbstractLifecycleMetaData(attrs.getValue(i)));
+ else if ("factory-method".equals(localName) || "factory-bean".equals(localName))
+ {
+ AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) bean.getConstructor();
+ if (constructor == null)
+ {
+ constructor = new AbstractConstructorMetaData();
+ bean.setConstructor(constructor);
+ }
+ if ("factory-method".equals(localName))
+ constructor.setFactoryMethod(attrs.getValue(i));
+ if ("factory-bean".equals(localName))
+ constructor.setFactory(new AbstractDependencyValueMetaData(attrs.getValue(i)));
+ }
}
}
Modified: projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeansHandler.java
===================================================================
--- projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeansHandler.java 2006-12-11 21:36:29 UTC (rev 58981)
+++ projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeansHandler.java 2006-12-12 08:55:27 UTC (rev 58982)
@@ -52,17 +52,9 @@
{
String localName = attrs.getLocalName(i);
if ("default-init-method".equals(localName))
- {
- AbstractLifecycleMetaData create = new AbstractLifecycleMetaData();
- create.setMethodName(attrs.getValue(i));
- deployment.setCreate(create);
- }
+ deployment.setCreate(new AbstractLifecycleMetaData(attrs.getValue(i)));
else if ("default-destroy-method".equals(localName))
- {
- AbstractLifecycleMetaData destroy = new AbstractLifecycleMetaData();
- destroy.setMethodName(attrs.getValue(i));
- deployment.setDestroy(destroy);
- }
+ deployment.setDestroy(new AbstractLifecycleMetaData(attrs.getValue(i)));
}
}
Added: projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeansInterceptor.java
===================================================================
--- projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeansInterceptor.java 2006-12-11 21:36:29 UTC (rev 58981)
+++ projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringBeansInterceptor.java 2006-12-12 08:55:27 UTC (rev 58982)
@@ -0,0 +1,72 @@
+/*
+* 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.spring.deployment.xml;
+
+import javax.xml.namespace.QName;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementInterceptor;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
+import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
+import org.jboss.beans.metadata.spi.ConstructorMetaData;
+import org.jboss.beans.metadata.spi.ParameterMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.spring.deployment.AbstractConstructorArg;
+import org.jboss.spring.deployment.AbstractSpringDeployment;
+import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class SpringBeansInterceptor extends DefaultElementInterceptor
+{
+ /**
+ * The interceptor
+ */
+ public static final SpringBeansInterceptor INTERCEPTOR = new SpringBeansInterceptor();
+
+ public void add(Object parent, Object child, QName name)
+ {
+ AbstractSpringDeployment deployment = (AbstractSpringDeployment) parent;
+ AbstractBeanMetaData bean = (AbstractBeanMetaData) child;
+ List<BeanMetaDataFactory> beans = deployment.getBeanFactories();
+ if (beans == null)
+ {
+ beans = new ArrayList<BeanMetaDataFactory>();
+ deployment.setBeanFactories(beans);
+ }
+ // set deployment defaults, if not already set per bean
+ if (bean.getCreate() == null && deployment.getCreate() != null)
+ {
+ bean.setCreate(deployment.getCreate());
+ }
+ if (bean.getDestroy() == null && deployment.getDestroy() != null)
+ {
+ bean.setDestroy(deployment.getDestroy());
+ }
+ beans.add(bean);
+ }
+
+}
Modified: projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringSchemaBindingHelper.java
===================================================================
--- projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringSchemaBindingHelper.java 2006-12-11 21:36:29 UTC (rev 58981)
+++ projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringSchemaBindingHelper.java 2006-12-12 08:55:27 UTC (rev 58982)
@@ -34,7 +34,7 @@
{
typeBinding.setHandler(SpringBeansHandler.HANDLER);
// handle beans
- typeBinding.pushInterceptor(SpringSchemaBinding.beansQName, DeploymentBeanInterceptor.INTERCEPTOR);
+ typeBinding.pushInterceptor(SpringSchemaBinding.beansQName, SpringBeansInterceptor.INTERCEPTOR);
// todo alias
// todo import
}
@@ -103,7 +103,20 @@
public static void configureValueBindings(TypeBinding typeBinding)
{
- //todo
+ // type has values
+ typeBinding.pushInterceptor(SpringSchemaBinding.valueQName, ValueMetaDataElementInterceptor.VALUES);
+
+ // type can take a list
+ typeBinding.pushInterceptor(SpringSchemaBinding.listQName, ValueMetaDataElementInterceptor.VALUES);
+
+ // type can take a set
+ typeBinding.pushInterceptor(SpringSchemaBinding.setQName, ValueMetaDataElementInterceptor.VALUES);
+
+ // type can take a map
+ typeBinding.pushInterceptor(SpringSchemaBinding.mapQName, ValueMetaDataElementInterceptor.VALUES);
+
+ // type has a null
+ typeBinding.pushInterceptor(SpringSchemaBinding.nullQName, NullValueElementInterceptor.NULLVALUES);
}
}
More information about the jboss-cvs-commits
mailing list