[jboss-cvs] JBossAS SVN: r59990 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/beans/metadata/spi and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 25 07:31:33 EST 2007


Author: alesj
Date: 2007-01-25 07:31:32 -0500 (Thu, 25 Jan 2007)
New Revision: 59990

Added:
   projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testPropertyWithIgnoreReplace.xml
Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/ParameterMetaData.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/PlainValueHandler.java
   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/PropertyHandler.java
   projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_1_0.xsd
   projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd
   projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testPropertyWithPropertyValue.xml
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyXMLTestCase.java
Log:
Optional string replacement.

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java	2007-01-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java	2007-01-25 12:31:32 UTC (rev 59990)
@@ -40,6 +40,12 @@
    private static final Logger log = Logger.getLogger(StringValueMetaData.class);
 
    /**
+    * Do we replace String with System property,
+    * by default it is true.
+    */
+   private boolean replace = true;
+
+   /**
     * Create a new string value
     */
    public StringValueMetaData()
@@ -90,9 +96,9 @@
       if (typeInfo != info && info != null)
       {
          Object typeValue = typeInfo.convertValue(value);
-         return info.convertValue(typeValue, true);
+         return info.convertValue(typeValue, replace);
       }
-      return typeInfo.convertValue(value, true);
+      return typeInfo.convertValue(value, replace);
    }
 
    public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
@@ -104,4 +110,13 @@
       return super.getType(visitor, previous);
    }
 
+   public boolean isReplace()
+   {
+      return replace;
+   }
+
+   public void setReplace(boolean replace)
+   {
+      this.replace = replace;
+   }
 }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/ParameterMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/ParameterMetaData.java	2007-01-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/ParameterMetaData.java	2007-01-25 12:31:32 UTC (rev 59990)
@@ -49,5 +49,5 @@
     * @return index in list
     */
    int getIndex();
-   
+
 }

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-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2007-01-25 12:31:32 UTC (rev 59990)
@@ -787,11 +787,23 @@
                String localName = attrs.getLocalName(i);
                if ("name".equals(localName))
                   property.setName(attrs.getValue(i));
-               else if ("class".equals(localName))
+               else if ("class".equals(localName) || "replace".equals(localName))
                {
-                  StringValueMetaData svmd = new StringValueMetaData();
-                  svmd.setType(attrs.getValue(i));
-                  property.setValue(svmd);
+                  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)));
                }
             }
          }
@@ -822,6 +834,7 @@
             if (vmd != null && vmd instanceof StringValueMetaData)
             {
                StringValueMetaData previous = (StringValueMetaData) vmd;
+               svmd.setReplace(previous.isReplace());
                String type = previous.getType();
                if (type != null)
                   svmd.setType(type);
@@ -1036,6 +1049,8 @@
                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)));
             }
          }
       });

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PlainValueHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PlainValueHandler.java	2007-01-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PlainValueHandler.java	2007-01-25 12:31:32 UTC (rev 59990)
@@ -53,6 +53,8 @@
          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)));
       }
    }
 }

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-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PropertyCharactersHandler.java	2007-01-25 12:31:32 UTC (rev 59990)
@@ -55,6 +55,7 @@
       if (vmd != null && vmd instanceof StringValueMetaData)
       {
          StringValueMetaData previous = (StringValueMetaData) vmd;
+         svmd.setReplace(previous.isReplace());
          String type = previous.getType();
          if (type != null)
             svmd.setType(type);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PropertyHandler.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PropertyHandler.java	2007-01-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/PropertyHandler.java	2007-01-25 12:31:32 UTC (rev 59990)
@@ -26,6 +26,7 @@
 
 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.DefaultElementHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
 import org.xml.sax.Attributes;
@@ -54,11 +55,23 @@
          String localName = attrs.getLocalName(i);
          if ("name".equals(localName))
             property.setName(attrs.getValue(i));
-         else if ("class".equals(localName))
+         else if ("class".equals(localName) || "replace".equals(localName))
          {
-            StringValueMetaData svmd = new StringValueMetaData();
-            svmd.setType(attrs.getValue(i));
-            property.setValue(svmd);
+            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)));
          }
       }
    }

Modified: projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_1_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_1_0.xsd	2007-01-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_1_0.xsd	2007-01-25 12:31:32 UTC (rev 59990)
@@ -445,6 +445,7 @@
          </xsd:documentation>
       </xsd:annotation>
       <xsd:attribute name="class" type="classNameType" use="optional"/>
+      <xsd:attribute name="replace" type="xsd:boolean" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="valueType" mixed="true">

Modified: projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd	2007-01-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/resources/schema/bean-deployer_2_0.xsd	2007-01-25 12:31:32 UTC (rev 59990)
@@ -539,6 +539,7 @@
          </xsd:documentation>
       </xsd:annotation>
       <xsd:attribute name="class" type="classNameType" use="optional"/>
+      <xsd:attribute name="replace" type="xsd:boolean" use="optional"/>
    </xsd:complexType>
 
    <xsd:complexType name="valueType" mixed="true">

Added: projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testPropertyWithIgnoreReplace.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testPropertyWithIgnoreReplace.xml	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testPropertyWithIgnoreReplace.xml	2007-01-25 12:31:32 UTC (rev 59990)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
+            xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="MyBean" class="org.jboss.test.kernel.config.support.MyObject">
+      <property name="key" class="java.lang.String" replace="false">${test.property.value}</property>
+   </bean>
+</deployment>
+

Modified: projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testPropertyWithPropertyValue.xml
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testPropertyWithPropertyValue.xml	2007-01-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/resources/xml-test/org/jboss/test/kernel/config/test/testPropertyWithPropertyValue.xml	2007-01-25 12:31:32 UTC (rev 59990)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
-            xmlns="urn:jboss:bean-deployer">
+            xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
+            xmlns="urn:jboss:bean-deployer:2.0">
    <bean name="MyBean" class="org.jboss.test.kernel.config.support.MyObject">
       <property name="key" class="java.lang.String">${test.property.value}</property>
    </bean>

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyTestCase.java	2007-01-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyTestCase.java	2007-01-25 12:31:32 UTC (rev 59990)
@@ -23,7 +23,7 @@
 
 import junit.framework.Test;
 import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
-import org.jboss.beans.metadata.plugins.AbstractTypeMetaData;
+import org.jboss.beans.metadata.plugins.StringValueMetaData;
 import org.jboss.beans.metadata.spi.PropertyMetaData;
 
 /**
@@ -48,17 +48,29 @@
 
    public void testPropertyWithPropertyValue() throws Throwable
    {
+      doTestProperty(true);
+   }
+
+   public void testPropertyWithIgnoreReplace() throws Throwable
+   {
+      doTestProperty(false);
+   }
+
+   private void doTestProperty(boolean replace) throws Throwable
+   {
       SecurityManager sm = suspendSecurity();
       try
       {
          // set property to be replaced
-         final String CONST = "PropertyReplaceTestCase";
-         System.setProperty("test.property.value", CONST);
+         String PROP_NAME = "test.property.value";
+         String CONST = "PropertyReplaceTestCase";
+         System.setProperty(PROP_NAME, CONST);
          // get property
-         Object value = instantiateReplacePropertyValue();
+         Object value = instantiateReplacePropertyValue(replace);
          assertNotNull(value);
          assertEquals(String.class, value.getClass());
-         assertEquals(CONST, value);
+         String checkValue = replace ? CONST : "${" + PROP_NAME + "}"; 
+         assertEquals(checkValue, value);
       }
       finally
       {
@@ -66,12 +78,13 @@
       }
    }
 
-   protected Object instantiateReplacePropertyValue() throws Throwable
+   protected Object instantiateReplacePropertyValue(boolean replace) throws Throwable
    {
       PropertyMetaData property = new AbstractPropertyMetaData("test", "${test.property.value}", String.class.getName());
-      AbstractTypeMetaData atmd = assertInstanceOf(property.getValue(), AbstractTypeMetaData.class, false);
-      atmd.setConfigurator(bootstrap().getConfigurator());
-      return atmd.getValue(null, Thread.currentThread().getContextClassLoader());
+      StringValueMetaData svmd = assertInstanceOf(property.getValue(), StringValueMetaData.class, false);
+      svmd.setReplace(replace);
+      svmd.setConfigurator(bootstrap().getConfigurator());
+      return svmd.getValue(null, Thread.currentThread().getContextClassLoader());
    }
 
 }

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-25 10:12:53 UTC (rev 59989)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyXMLTestCase.java	2007-01-25 12:31:32 UTC (rev 59990)
@@ -45,7 +45,7 @@
       return suite(PropertyXMLTestCase.class);
    }
 
-   protected Object instantiateReplacePropertyValue() throws Throwable
+   protected Object instantiateReplacePropertyValue(boolean replace) throws Throwable
    {
       XMLUtil util = bootstrapXML(true);
       MyObject mybean = (MyObject)util.getBean("MyBean");




More information about the jboss-cvs-commits mailing list