[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