[jboss-cvs] JBossAS SVN: r78786 - in trunk: connector/src/main/org/jboss/resource/metadata/mcf and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Sep 23 10:08:49 EDT 2008
Author: alex.loubyansky at jboss.com
Date: 2008-09-23 10:08:49 -0400 (Tue, 23 Sep 2008)
New Revision: 78786
Added:
trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionStringAdapter.java
trunk/testsuite/src/main/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase.java
trunk/testsuite/src/resources/org/jboss/test/jca/
trunk/testsuite/src/resources/org/jboss/test/jca/test/
trunk/testsuite/src/resources/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase_testStringSystemPropertiesLocalDs.xml
trunk/testsuite/src/resources/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase_testStringSystemPropertiesXaDs.xml
Modified:
trunk/connector/src/main/org/jboss/resource/connectionmanager/ManagedConnectionFactoryDeployment.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/DBMSMetaData.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceConnectionPropertyMetaData.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceDeploymentMetaData.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/NonXADataSourceDeploymentMetaData.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/XADataSourceDeploymentMetaData.java
Log:
JBAS-4585
Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/ManagedConnectionFactoryDeployment.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/ManagedConnectionFactoryDeployment.java 2008-09-23 12:36:59 UTC (rev 78785)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/ManagedConnectionFactoryDeployment.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -50,7 +50,6 @@
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.logging.Logger;
-import org.jboss.metadata.MetaData;
import org.jboss.resource.metadata.ConfigPropertyMetaData;
import org.jboss.resource.metadata.ConnectionDefinitionMetaData;
import org.jboss.resource.metadata.ConnectorMetaData;
@@ -60,10 +59,7 @@
import org.jboss.system.ServiceDynamicMBeanSupport;
import org.jboss.util.Classes;
import org.jboss.util.NestedRuntimeException;
-import org.jboss.util.StringPropertyReplacer;
import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
@@ -501,8 +497,7 @@
+ "skipping property");
continue;
}
- // TODO: should happen in parsing layer?
- value = StringPropertyReplacer.replaceProperties(value);
+
log.debug("setting property: " + name + " to value " + value);
try
{
@@ -561,8 +556,7 @@
+ "skipping property");
continue;
}
- // TODO: should happen in parsing layer?
- value = StringPropertyReplacer.replaceProperties(value);
+
log.debug("setting property: " + name + " to value " + value);
try
{
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/DBMSMetaData.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/DBMSMetaData.java 2008-09-23 12:36:59 UTC (rev 78785)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/DBMSMetaData.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -26,7 +26,6 @@
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
/**
@@ -42,7 +41,7 @@
private static final long serialVersionUID = -5511233258559770711L;
@XmlElement(name="type-mapping")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String typeMapping;
public String getTypeMapping()
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceConnectionPropertyMetaData.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceConnectionPropertyMetaData.java 2008-09-23 12:36:59 UTC (rev 78785)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceConnectionPropertyMetaData.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -25,6 +25,7 @@
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.jboss.managed.api.annotation.ManagementObject;
import org.jboss.managed.api.annotation.ManagementProperty;
@@ -45,6 +46,7 @@
protected String name;
@XmlValue
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
protected String value;
public String getName()
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceDeploymentMetaData.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceDeploymentMetaData.java 2008-09-23 12:36:59 UTC (rev 78785)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceDeploymentMetaData.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -25,7 +25,6 @@
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.jboss.managed.api.annotation.ManagementProperty;
@@ -47,39 +46,39 @@
private static final String RAR_NAME = "jboss-local-jdbc.rar";
@XmlElement(name="transaction-isolation")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String transactionIsolation;
@XmlElement(name="user-name")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String userName;
@XmlElement(name="password")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String passWord;
@XmlElement(name="new-connection-sql")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String newConnectionSQL;
@XmlElement(name="check-valid-connection-sql")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String checkValidConnectionSQL;
@XmlElement(name="valid-connection-checker-class-name")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String validConnectionCheckerClassName;
@XmlElement(name="exception-sorter-class-name")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String exceptionSorterClassName;
@XmlElement(name="stale-connection-checker-class-name")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String staleConnectionCheckerClassName;
@XmlElement(name="track-statements")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String trackStatements;
@XmlElement(name="prepared-statement-cache-size")
@@ -98,11 +97,11 @@
private long useTryLock;
@XmlElement(name="url-delimiter")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String urlDelimiter;
@XmlElement(name="url-selector-strategy-class-name")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String urlSelectorStrategyClassName;
public DataSourceDeploymentMetaData()
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java 2008-09-23 12:36:59 UTC (rev 78785)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -30,7 +30,6 @@
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.jboss.managed.api.annotation.ManagementObject;
@@ -59,12 +58,12 @@
/** The jndiName */
@XmlElement(name="jndi-name")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String jndiName;
/** The rarName */
@XmlElement(name="rar-name")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String rarName;
/** The useJavaContext */
@@ -73,12 +72,12 @@
/** The connectionDefinition */
@XmlElement(name="connection-definition")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
protected String connectionDefinition;
/** The jmxInvokerName */
@XmlElement(name="jmx-invoker-name")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String jmxInvokerName = "jboss:service=invoker,type=jrmp";
@XmlElement(name="min-pool-size")
@@ -114,7 +113,7 @@
private Boolean noTxSeparatePools = Boolean.FALSE;
@XmlElement(name="statistics-formatter")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String statisticsFormatter = "org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter";
@XmlElement(name="isSameRM-override-value")
Added: trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionStringAdapter.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionStringAdapter.java (rev 0)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionStringAdapter.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.resource.metadata.mcf;
+
+
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+
+import org.jboss.util.StringPropertyReplacer;
+
+/**
+ * A ManagedConnectionSystemPropertyResolverAdpater.
+ *
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class ManagedConnectionStringAdapter extends CollapsedStringAdapter
+{
+ @Override
+ public String marshal(String v)
+ {
+ return super.marshal(v);
+ }
+
+ @Override
+ public String unmarshal(String v)
+ {
+ v = super.unmarshal(v);
+ return v == null ? null : StringPropertyReplacer.replaceProperties(v);
+ }
+}
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/NonXADataSourceDeploymentMetaData.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/NonXADataSourceDeploymentMetaData.java 2008-09-23 12:36:59 UTC (rev 78785)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/NonXADataSourceDeploymentMetaData.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -27,7 +27,6 @@
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.jboss.managed.api.annotation.ManagementProperty;
@@ -47,11 +46,11 @@
public abstract class NonXADataSourceDeploymentMetaData extends DataSourceDeploymentMetaData
{
@XmlElement(name="driver-class", required=true)
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String driverClass;
@XmlElement(name="connection-url", required=true)
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String connectionUrl;
@XmlElement(name="connection-property")
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/XADataSourceDeploymentMetaData.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/XADataSourceDeploymentMetaData.java 2008-09-23 12:36:59 UTC (rev 78785)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/XADataSourceDeploymentMetaData.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -28,7 +28,6 @@
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.jboss.managed.api.annotation.ManagementComponent;
@@ -56,14 +55,14 @@
private static final String RAR_NAME = "jboss-xa-jdbc.rar";
@XmlElement(name="xa-datasource-class")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String xaDataSourceClass;
@XmlElement(name="xa-datasource-property")
private List<XAConnectionPropertyMetaData> xaDataSourceProperties = new ArrayList<XAConnectionPropertyMetaData>();
@XmlElement(name="url-property")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlJavaTypeAdapter(ManagedConnectionStringAdapter.class)
private String urlProperty;
@XmlElement(name="xa-resource-timeout")
Added: trunk/testsuite/src/main/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase.java (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase.java 2008-09-23 14:08:49 UTC (rev 78786)
@@ -0,0 +1,222 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.test.jca.test;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.transform.stream.StreamSource;
+
+import org.jboss.resource.metadata.mcf.DBMSMetaData;
+import org.jboss.resource.metadata.mcf.DataSourceConnectionPropertyMetaData;
+import org.jboss.resource.metadata.mcf.LocalDataSourceDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup;
+import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.NonXADataSourceDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.XAConnectionPropertyMetaData;
+import org.jboss.resource.metadata.mcf.XADataSourceDeploymentMetaData;
+import org.jboss.test.AbstractTestCaseWithSetup;
+import org.jboss.test.AbstractTestDelegate;
+
+
+/**
+ * A DsXmlJAXBUnmarshallingUnitTestCase.
+ *
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class DsXmlJAXBUnmarshallingUnitTestCase extends AbstractTestCaseWithSetup
+{
+ private static final String PROP_PREFIX = "org.jboss.test.jca.test.";
+ private static final Object[] ARGS = new Object[0];
+
+ public DsXmlJAXBUnmarshallingUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testStringSystemPropertiesLocalDs() throws Exception
+ {
+ String xml = findXML(getRootName() + "_" + getName() + ".xml");
+
+ Map<String, Method> supportedElements = new HashMap<String, Method>();
+ addElement(supportedElements, "check-valid-connection-sql", "getCheckValidConnectionSQL");
+ addElement(supportedElements, "exception-sorter-class-name", "getExceptionSorterClassName");
+ addElement(supportedElements, "new-connection-sql", "getNewConnectionSQL");
+ addElement(supportedElements, "password", "getPassWord");
+ addElement(supportedElements, "stale-connection-checker-class-name", "getStaleConnectionCheckerClassName");
+ addElement(supportedElements, "transaction-isolation", "getTransactionIsolation");
+ addElement(supportedElements, "url-delimiter", "getURLDelimiter");
+ addElement(supportedElements, "url-selector-strategy-class-name", "getURLSelectorStrategyClassName");
+ addElement(supportedElements, "user-name", "getUserName");
+ addElement(supportedElements, "valid-connection-checker-class-name", "getValidConnectionCheckerClassName");
+ // ManagedConnectionFactoryDeploymentMetaData
+ addElement(supportedElements, "connection-definition", "getConnectionDefinition");
+ addElement(supportedElements, "jmx-invoker-name", "getJmxInvokerName");
+ addElement(supportedElements, "jndi-name", "getJndiName");
+ addElement(supportedElements, "rar-name", "getRarName");
+ addElement(supportedElements, "statistics-formatter", "getStatisticsFormatter");
+ // NonXADataSourceDeploymentMetaData
+ addElement(supportedElements, "connection-url", "getConnectionUrl");
+ addElement(supportedElements, "driver-class", "getDriverClass");
+
+ setSystemProperties(supportedElements);
+ System.setProperty(PROP_PREFIX + "type-mapping", "type-mapping");
+ System.setProperty(PROP_PREFIX + "connection-property", "connection-property");
+
+ JAXBContext context = JAXBContext.newInstance(ManagedConnectionFactoryDeploymentGroup.class);
+ Unmarshaller um = context.createUnmarshaller();
+ JAXBElement<ManagedConnectionFactoryDeploymentGroup> elem = um.unmarshal(new StreamSource(xml), ManagedConnectionFactoryDeploymentGroup.class);
+ ManagedConnectionFactoryDeploymentGroup deployment = elem.getValue();
+ List<ManagedConnectionFactoryDeploymentMetaData> deployments = deployment.getDeployments();
+ assertNotNull(deployments);
+ assertEquals(1, deployments.size());
+ ManagedConnectionFactoryDeploymentMetaData ds = deployments.get(0);
+ assertNotNull(ds);
+
+ assertValues(supportedElements, ds);
+
+ DBMSMetaData metaData = ds.getDBMSMetaData();
+ assertNotNull(metaData);
+ assertEquals("type-mapping", metaData.getTypeMapping());
+
+ List<DataSourceConnectionPropertyMetaData> props = ((NonXADataSourceDeploymentMetaData)ds).getDataSourceConnectionProperties();
+ assertNotNull(props);
+ assertEquals(1, props.size());
+ DataSourceConnectionPropertyMetaData prop = props.get(0);
+ assertNotNull(prop);
+ assertEquals("connection-property", prop.getName());
+ assertEquals("connection-property", prop.getValue());
+ }
+
+ public void testStringSystemPropertiesXaDs() throws Exception
+ {
+ String xml = findXML(getRootName() + "_" + getName() + ".xml");
+
+ Map<String, Method> supportedElements = new HashMap<String, Method>();
+ addElement(supportedElements, "xa-datasource-class", "getXaDataSourceClass", XADataSourceDeploymentMetaData.class);
+ addElement(supportedElements, "url-property", "getURLProperty", XADataSourceDeploymentMetaData.class);
+
+ setSystemProperties(supportedElements);
+ System.setProperty(PROP_PREFIX + "xa-datasource-property", "xa-datasource-property");
+
+ JAXBContext context = JAXBContext.newInstance(ManagedConnectionFactoryDeploymentGroup.class);
+ Unmarshaller um = context.createUnmarshaller();
+ JAXBElement<ManagedConnectionFactoryDeploymentGroup> elem = um.unmarshal(new StreamSource(xml), ManagedConnectionFactoryDeploymentGroup.class);
+ ManagedConnectionFactoryDeploymentGroup deployment = elem.getValue();
+ List<ManagedConnectionFactoryDeploymentMetaData> deployments = deployment.getDeployments();
+ assertNotNull(deployments);
+ assertEquals(1, deployments.size());
+ XADataSourceDeploymentMetaData ds = (XADataSourceDeploymentMetaData) deployments.get(0);
+ assertNotNull(ds);
+
+ assertValues(supportedElements, ds);
+
+ List<XAConnectionPropertyMetaData> props = ds.getXADataSourceProperties();
+ assertNotNull(props);
+ assertEquals(1, props.size());
+ XAConnectionPropertyMetaData prop = props.get(0);
+ assertNotNull(prop);
+ assertEquals("xa-datasource-property", prop.getName());
+ assertEquals("xa-datasource-property", prop.getValue());
+ }
+
+ private void assertValues(Map<String, Method> supportedElements,
+ ManagedConnectionFactoryDeploymentMetaData ds) throws IllegalAccessException,
+ InvocationTargetException
+ {
+ for(Map.Entry<String, Method> entry : supportedElements.entrySet())
+ {
+ String expected = entry.getKey(); //System.getProperty(propPrefix + entry.getKey());
+ System.clearProperty(PROP_PREFIX + entry.getKey());
+ assertNotNull(expected);
+ Object actual = entry.getValue().invoke(ds, ARGS);
+ assertEquals(expected, actual);
+ }
+ }
+
+ private void setSystemProperties(Map<String, Method> supportedElements)
+ {
+ for(String element : supportedElements.keySet())
+ System.setProperty(PROP_PREFIX + element, element);
+ }
+
+ private void addElement(Map<String, Method> supportedElements, String elementName, String getterName)
+ throws NoSuchMethodException
+ {
+ addElement(supportedElements, elementName, getterName, LocalDataSourceDeploymentMetaData.class);
+ }
+
+ private void addElement(Map<String, Method> supportedElements, String elementName, String getterName, Class<?> cls)
+ throws NoSuchMethodException
+ {
+ Class<?>[] types = new Class[0];
+ supportedElements.put(elementName, getterName == null ? null : cls.getMethod(getterName, types));
+ }
+
+ /**
+ * Setup the test delegate
+ *
+ * @param clazz the class
+ * @return the delegate
+ * @throws Exception for any error
+ */
+ public static AbstractTestDelegate getDelegate(Class<?> clazz) throws Exception
+ {
+ return new AbstractTestDelegate(clazz);
+ }
+
+ /**
+ * Find the xml
+ *
+ * @param name the name
+ * @return the url of the xml
+ */
+ protected String findXML(String name)
+ {
+ URL url = getResource(name);
+ if (url == null)
+ fail(name + " not found");
+ return url.toString();
+ }
+
+ /**
+ * Get the package root name
+ *
+ * @return the root name
+ */
+ protected String getRootName()
+ {
+ String longName = getClass().getName();
+ int dot = longName.lastIndexOf('.');
+ if (dot != -1)
+ return longName.substring(dot + 1);
+ return longName;
+ }
+}
Added: trunk/testsuite/src/resources/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase_testStringSystemPropertiesLocalDs.xml
===================================================================
--- trunk/testsuite/src/resources/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase_testStringSystemPropertiesLocalDs.xml (rev 0)
+++ trunk/testsuite/src/resources/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase_testStringSystemPropertiesLocalDs.xml 2008-09-23 14:08:49 UTC (rev 78786)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<datasources>
+ <local-tx-datasource>
+
+ <jndi-name>${org.jboss.test.jca.test.jndi-name}</jndi-name>
+ <connection-url>${org.jboss.test.jca.test.connection-url}</connection-url>
+ <driver-class>${org.jboss.test.jca.test.driver-class}</driver-class>
+ <user-name>${org.jboss.test.jca.test.user-name}</user-name>
+ <password>${org.jboss.test.jca.test.password}</password>
+ <exception-sorter-class-name>${org.jboss.test.jca.test.exception-sorter-class-name}</exception-sorter-class-name>
+ <check-valid-connection-sql>${org.jboss.test.jca.test.check-valid-connection-sql}</check-valid-connection-sql>
+ <new-connection-sql>${org.jboss.test.jca.test.new-connection-sql}</new-connection-sql>
+ <valid-connection-checker-class-name>${org.jboss.test.jca.test.valid-connection-checker-class-name}</valid-connection-checker-class-name>
+ <stale-connection-checker-class-name>${org.jboss.test.jca.test.stale-connection-checker-class-name}</stale-connection-checker-class-name>
+ <transaction-isolation>${org.jboss.test.jca.test.transaction-isolation}</transaction-isolation>
+ <url-delimiter>${org.jboss.test.jca.test.url-delimiter}</url-delimiter>
+ <url-selector-strategy-class-name>${org.jboss.test.jca.test.url-selector-strategy-class-name}</url-selector-strategy-class-name>
+
+ <connection-definition>${org.jboss.test.jca.test.connection-definition}</connection-definition>
+ <jmx-invoker-name>${org.jboss.test.jca.test.jmx-invoker-name}</jmx-invoker-name>
+ <rar-name>${org.jboss.test.jca.test.rar-name}</rar-name>
+ <statistics-formatter>${org.jboss.test.jca.test.statistics-formatter}</statistics-formatter>
+
+ <!-- Use the security domain defined in conf/login-config.xml -->
+ <security-domain>HsqlDbRealm</security-domain>
+
+ <!-- Use the security domain defined in conf/login-config.xml or the
+ getConnection(user, pw) for logins. The security domain takes precedence.
+ <security-domain-and-application>HsqlDbRealm</security-domain-and-application>
+ -->
+
+ <metadata>
+ <type-mapping>${org.jboss.test.jca.test.type-mapping}</type-mapping>
+ </metadata>
+
+ <connection-property name="connection-property" type="java.lang.String">${org.jboss.test.jca.test.connection-property}</connection-property>
+
+ </local-tx-datasource>
+
+</datasources>
Added: trunk/testsuite/src/resources/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase_testStringSystemPropertiesXaDs.xml
===================================================================
--- trunk/testsuite/src/resources/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase_testStringSystemPropertiesXaDs.xml (rev 0)
+++ trunk/testsuite/src/resources/org/jboss/test/jca/test/DsXmlJAXBUnmarshallingUnitTestCase_testStringSystemPropertiesXaDs.xml 2008-09-23 14:08:49 UTC (rev 78786)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<datasources>
+
+ <xa-datasource>
+ <xa-datasource-class>${org.jboss.test.jca.test.xa-datasource-class}</xa-datasource-class>
+ <xa-datasource-property name="xa-datasource-property">${org.jboss.test.jca.test.xa-datasource-property}</xa-datasource-property>
+ <url-property>${org.jboss.test.jca.test.url-property}</url-property>
+ </xa-datasource>
+
+</datasources>
More information about the jboss-cvs-commits
mailing list