[jboss-cvs] JBossAS SVN: r60019 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/kernel/plugins/deployment/xml and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 26 08:06:11 EST 2007


Author: alesj
Date: 2007-01-26 08:06:11 -0500 (Fri, 26 Jan 2007)
New Revision: 60019

Added:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/ValueMetaDataAware.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/StringValueCharactersHandler.java
Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java
   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/ParameterCharactersHandler.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ParameterHandler.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PropertyCharactersHandler.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyXMLTestCase.java
Log:
Optional string replacement - additional support for parameter.

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java	2007-01-26 12:27:37 UTC (rev 60018)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractConstructorMetaData.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -22,11 +22,16 @@
 package org.jboss.beans.metadata.plugins;
 
 import java.io.Serializable;
-import java.util.*;
+import java.util.List;
+import java.util.Set;
 
 import org.jboss.beans.info.spi.BeanInfo;
 import org.jboss.beans.metadata.plugins.builder.MutableParameterizedMetaData;
-import org.jboss.beans.metadata.spi.*;
+import org.jboss.beans.metadata.spi.ConstructorMetaData;
+import org.jboss.beans.metadata.spi.MetaDataVisitor;
+import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
+import org.jboss.beans.metadata.spi.ParameterMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.kernel.plugins.config.Configurator;
 import org.jboss.kernel.spi.config.KernelConfigurator;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
@@ -43,7 +48,7 @@
  * @version $Revision$
  */
 public class AbstractConstructorMetaData extends AbstractFeatureMetaData
-   implements ConstructorMetaData, MutableParameterizedMetaData, Serializable
+   implements ConstructorMetaData, MutableParameterizedMetaData, ValueMetaDataAware, Serializable
 {
    private static final long serialVersionUID = 1L;
 

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java	2007-01-26 12:27:37 UTC (rev 60018)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -42,7 +42,7 @@
  * @version $Revision$
  */
 public class AbstractParameterMetaData extends AbstractFeatureMetaData
-   implements ParameterMetaData, Serializable
+   implements ParameterMetaData, ValueMetaDataAware, Serializable
 {
    private static final long serialVersionUID = 1L;
 

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java	2007-01-26 12:27:37 UTC (rev 60018)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -31,9 +31,9 @@
 import org.jboss.beans.metadata.spi.PropertyMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.dependency.spi.ControllerState;
+import org.jboss.kernel.plugins.config.Configurator;
+import org.jboss.kernel.spi.config.KernelConfigurator;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
-import org.jboss.kernel.spi.config.KernelConfigurator;
-import org.jboss.kernel.plugins.config.Configurator;
 import org.jboss.util.JBossStringBuilder;
 
 /**
@@ -43,7 +43,7 @@
  * @version $Revision$
  */
 public class AbstractPropertyMetaData extends AbstractFeatureMetaData
-   implements PropertyMetaData, TypeProvider, Serializable
+   implements PropertyMetaData, ValueMetaDataAware, TypeProvider, Serializable
 {
    private static final long serialVersionUID = 1L;
 

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/ValueMetaDataAware.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/ValueMetaDataAware.java	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/ValueMetaDataAware.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -0,0 +1,46 @@
+/*
+* 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.beans.metadata.plugins;
+
+import org.jboss.beans.metadata.spi.ValueMetaData;
+
+/**
+ * Simple ValueMetaData aware.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface ValueMetaDataAware
+{
+   /**
+    * Get the value.
+    *
+    * @return the value.
+    */
+   ValueMetaData getValue();
+
+   /**
+    * Set the value.
+    *
+    * @param value the value
+    */
+   void setValue(ValueMetaData value);
+}

Modified: 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	2007-01-26 12:27:37 UTC (rev 60018)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -509,6 +509,12 @@
                String localName = attrs.getLocalName(i);
                if ("class".equals(localName))
                   parameter.setType(attrs.getValue(i));
+               else if ("replace".equals(localName))
+               {
+                  StringValueMetaData svmd = new StringValueMetaData();
+                  svmd.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
+                  parameter.setValue(svmd);
+               }
             }
          }
       });
@@ -524,8 +530,17 @@
          public void setValue(QName qName, ElementBinding element, Object owner, Object value)
          {
             AbstractParameterMetaData parameter = (AbstractParameterMetaData) owner;
-            parameter.setValue((StringValueMetaData) value);
-         }
+            StringValueMetaData svmd = (StringValueMetaData) value;
+            ValueMetaData vmd = parameter.getValue();
+            if (vmd != null && vmd instanceof StringValueMetaData)
+            {
+               StringValueMetaData previous = (StringValueMetaData) vmd;
+               svmd.setReplace(previous.isReplace());
+               String type = previous.getType();
+               if (type != null)
+                  svmd.setType(type);
+            }
+            parameter.setValue(svmd);         }
       });
 
       // bean has a create

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ParameterCharactersHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ParameterCharactersHandler.java	2007-01-26 12:27:37 UTC (rev 60018)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ParameterCharactersHandler.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -21,14 +21,11 @@
 */
 package org.jboss.kernel.plugins.deployment.xml;
 
-import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 
 import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
 import org.jboss.beans.metadata.plugins.StringValueMetaData;
-import org.jboss.xb.binding.sunday.unmarshalling.CharactersHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
-import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
 
 /**
  * ParameterCharactersHandler.
@@ -36,19 +33,14 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
-public class ParameterCharactersHandler extends CharactersHandler
+public class ParameterCharactersHandler extends StringValueCharactersHandler
 {
    /** The interceptor */
    public static final ParameterCharactersHandler HANDLER = new ParameterCharactersHandler();
 
-   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;
-      parameter.setValue((StringValueMetaData) value);
+      setStringValue(parameter, (StringValueMetaData)value);
    }
 }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ParameterHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ParameterHandler.java	2007-01-26 12:27:37 UTC (rev 60018)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/ParameterHandler.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -25,19 +25,22 @@
 import javax.xml.namespace.QName;
 
 import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
+import org.jboss.beans.metadata.plugins.StringValueMetaData;
 import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
 import org.xml.sax.Attributes;
 
 /**
  * CollectionHandler.
- * 
+ *
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
 public class ParameterHandler extends DefaultElementHandler
 {
-   /** The handler */
+   /**
+    * The handler
+    */
    public static final ParameterHandler HANDLER = new ParameterHandler();
 
    public Object startElement(Object parent, QName name, ElementBinding element)
@@ -47,12 +50,18 @@
 
    public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
    {
-      AbstractParameterMetaData parameter = (AbstractParameterMetaData) o;
+      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))
+         {
+            StringValueMetaData svmd = new StringValueMetaData();
+            svmd.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
+            parameter.setValue(svmd);
+         }
       }
    }
 }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PropertyCharactersHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PropertyCharactersHandler.java	2007-01-26 12:27:37 UTC (rev 60018)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PropertyCharactersHandler.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -21,15 +21,11 @@
 */
 package org.jboss.kernel.plugins.deployment.xml;
 
-import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 
 import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
 import org.jboss.beans.metadata.plugins.StringValueMetaData;
-import org.jboss.beans.metadata.spi.ValueMetaData;
-import org.jboss.xb.binding.sunday.unmarshalling.CharactersHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
-import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
 
 /**
  * PropertyCharactersHandler.
@@ -37,29 +33,15 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
-public class PropertyCharactersHandler extends CharactersHandler
+public class PropertyCharactersHandler extends StringValueCharactersHandler
 {
    /** The interceptor */
    public static final PropertyCharactersHandler HANDLER = new PropertyCharactersHandler();
 
-   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());
-         String type = previous.getType();
-         if (type != null)
-            svmd.setType(type);
-      }
-      property.setValue(svmd);
+      setStringValue(property, svmd);
    }
 }

Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/StringValueCharactersHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/StringValueCharactersHandler.java	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/StringValueCharactersHandler.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -0,0 +1,59 @@
+/*
+* 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 javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+
+import org.jboss.beans.metadata.plugins.StringValueMetaData;
+import org.jboss.beans.metadata.plugins.ValueMetaDataAware;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.xb.binding.sunday.unmarshalling.CharactersHandler;
+import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+
+/**
+ * PropertyCharactersHandler.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 59990 $
+ */
+public abstract class StringValueCharactersHandler extends CharactersHandler
+{
+   public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
+   {
+      return new StringValueMetaData(value);
+   }
+
+   protected void setStringValue(ValueMetaDataAware vmda, StringValueMetaData svmd)
+   {
+      ValueMetaData vmd = vmda.getValue();
+      if (vmd != null && vmd instanceof StringValueMetaData)
+      {
+         StringValueMetaData previous = (StringValueMetaData) vmd;
+         svmd.setReplace(previous.isReplace());
+         String type = previous.getType();
+         if (type != null)
+            svmd.setType(type);
+      }
+      vmda.setValue(svmd);
+   }
+}

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyXMLTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyXMLTestCase.java	2007-01-26 12:27:37 UTC (rev 60018)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyXMLTestCase.java	2007-01-26 13:06:11 UTC (rev 60019)
@@ -81,8 +81,6 @@
          }
       };
       result.add(property);
-/*
-      TODO
       ObjectCreator parameter = new ObjectCreator()
       {
          public Object createObject() throws Throwable
@@ -91,7 +89,6 @@
          }
       };
       result.add(parameter);
-*/
       ObjectCreator plainValue = new ObjectCreator()
       {
          public Object createObject() throws Throwable




More information about the jboss-cvs-commits mailing list