[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