[jboss-cvs] JBossAS SVN: r109740 - in trunk: connector/src/main/java/org/jboss/resource/deployers and 8 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Dec 7 01:48:37 EST 2010


Author: weston.price at jboss.com
Date: 2010-12-07 01:48:37 -0500 (Tue, 07 Dec 2010)
New Revision: 109740

Added:
   trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/
   trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockConnection.java
   trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockDataSource.java
   trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockDriver.java
   trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJB.java
   trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJBLocal.java
   trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJBRemote.java
   trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestServlet.java
   trunk/testsuite/src/main/org/jboss/test/jca/support/JCATestSupport.java
   trunk/testsuite/src/main/org/jboss/test/jca/test/DataSourceDeployerTestCase.java
   trunk/testsuite/src/resources/jca/dsdeployer/ear/
   trunk/testsuite/src/resources/jca/dsdeployer/ear/application.xml
   trunk/testsuite/src/resources/jca/dsdeployer/war/
   trunk/testsuite/src/resources/jca/dsdeployer/war/web.xml
Modified:
   trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/local/LocalManagedConnectionFactory.java
   trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java
   trunk/testsuite/imports/sections/jca.xml
Log:
[JBAS-8559] Modified UseDataSource property for LMCF to be more JMX friendly. Checking in new test class, support classes, descriptors etc for task. This includes a mock JDBC driver for DS and Driver testing in the new framework.

Modified: trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/local/LocalManagedConnectionFactory.java
===================================================================
--- trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/local/LocalManagedConnectionFactory.java	2010-12-07 06:04:19 UTC (rev 109739)
+++ trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/local/LocalManagedConnectionFactory.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -86,7 +86,7 @@
       // check some invariants before they come back to haunt us
       if(driverClass == null)
          throw new JBossResourceException("driverClass is null");
-      if(connectionURL == null && !isUseDataSource())
+      if(connectionURL == null && !getUseDataSource())
          throw new JBossResourceException("connectionURL is null");
       
       return super.createConnectionFactory(cm);
@@ -175,7 +175,7 @@
    }
 
    
-   public boolean isUseDataSource() 
+   public boolean getUseDataSource() 
    {
 	   return useDataSource;
    }

Modified: trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java
===================================================================
--- trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java	2010-12-07 06:04:19 UTC (rev 109739)
+++ trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -95,7 +95,7 @@
 		String dataBaseName = dsmd.getDatabaseName();
 		int portNumber = dsmd.getPortNumber();
 		String url = dsmd.getUrl();
-
+		
 		DataSourceConnectionPropertyMetaData xaProp = null;
 		
 		if(serverName != null && !serverName.isEmpty())
@@ -126,6 +126,7 @@
 			
 		}
 		
+		
 		if(useUrl)
 		{
 			depMd.setConnectionUrl(url);

Modified: trunk/testsuite/imports/sections/jca.xml
===================================================================
--- trunk/testsuite/imports/sections/jca.xml	2010-12-07 06:04:19 UTC (rev 109739)
+++ trunk/testsuite/imports/sections/jca.xml	2010-12-07 06:48:37 UTC (rev 109740)
@@ -412,8 +412,38 @@
             <include name="jcaprimitive-ds.xml"/>
          </fileset>
       </copy>
+
+   	<!-- Artifacts for new DataSourceDeployer -->
+	
+   	<jar destfile="${build.lib}/jca-mockdriver.jar">
+   		<fileset dir="${build.classes}">
+			<include name="org/jboss/test/jca/dsdeployer/Mock*.class"/>   			
+   		</fileset>
+   	</jar>
    	
+   	<jar destfile="${build.lib}/jca-dsdeployer-ejbtest.jar">
+	
+   		<fileset dir="${build.classes}">
+			<include name="org/jboss/test/jca/dsdeployer/TestEJB*.class"/>
+		</fileset>   	
+   	</jar>
+	   	
+   	<war destfile="${build.lib}/jca-dsdeployer-test.war" webxml="${build.resources}/jca/dsdeployer/war/web.xml">
+		<classes dir="${build.classes}">
+			<include name="org/jboss/test/jca/dsdeployer/TestServlet.class"/>
+		</classes>
+	</war>
+	
+	<ear destfile="${build.lib}/jca-dsdeployer-test.ear" appxml="${build.resources}/jca/dsdeployer/ear/application.xml">
+		<fileset dir="${build.lib}">
+			<include name="jca-dsdeployer-test.war"/>
+		</fileset>
+		
+	</ear>
+
    </target>
    
+	
+	
 
 </project>

Added: trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockConnection.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockConnection.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockConnection.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,326 @@
+package org.jboss.test.jca.dsdeployer;
+
+import java.sql.Array;
+import java.sql.Blob;
+import java.sql.CallableStatement;
+import java.sql.Clob;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.NClob;
+import java.sql.PreparedStatement;
+import java.sql.SQLClientInfoException;
+import java.sql.SQLException;
+import java.sql.SQLWarning;
+import java.sql.SQLXML;
+import java.sql.Savepoint;
+import java.sql.Statement;
+import java.sql.Struct;
+import java.util.Map;
+import java.util.Properties;
+
+public class MockConnection implements Connection {
+
+	@Override
+	public boolean isWrapperFor(Class<?> iface) throws SQLException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public <T> T unwrap(Class<T> iface) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void clearWarnings() throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void close() throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void commit() throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public Array createArrayOf(String arg0, Object[] arg1) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Blob createBlob() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Clob createClob() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public NClob createNClob() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SQLXML createSQLXML() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Statement createStatement() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Statement createStatement(int arg0, int arg1) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Statement createStatement(int arg0, int arg1, int arg2)
+			throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Struct createStruct(String arg0, Object[] arg1) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean getAutoCommit() throws SQLException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public String getCatalog() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Properties getClientInfo() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String getClientInfo(String arg0) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int getHoldability() throws SQLException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public DatabaseMetaData getMetaData() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int getTransactionIsolation() throws SQLException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public Map<String, Class<?>> getTypeMap() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SQLWarning getWarnings() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean isClosed() throws SQLException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean isReadOnly() throws SQLException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean isValid(int arg0) throws SQLException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public String nativeSQL(String arg0) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public CallableStatement prepareCall(String arg0) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public CallableStatement prepareCall(String arg0, int arg1, int arg2)
+			throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public CallableStatement prepareCall(String arg0, int arg1, int arg2,
+			int arg3) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public PreparedStatement prepareStatement(String arg0) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public PreparedStatement prepareStatement(String arg0, int arg1)
+			throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public PreparedStatement prepareStatement(String arg0, int[] arg1)
+			throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public PreparedStatement prepareStatement(String arg0, String[] arg1)
+			throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public PreparedStatement prepareStatement(String arg0, int arg1, int arg2)
+			throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public PreparedStatement prepareStatement(String arg0, int arg1, int arg2,
+			int arg3) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void releaseSavepoint(Savepoint arg0) throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void rollback() throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void rollback(Savepoint arg0) throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void setAutoCommit(boolean arg0) throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void setCatalog(String arg0) throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void setClientInfo(Properties arg0) throws SQLClientInfoException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void setClientInfo(String arg0, String arg1)
+			throws SQLClientInfoException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void setHoldability(int arg0) throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void setReadOnly(boolean arg0) throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public Savepoint setSavepoint() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Savepoint setSavepoint(String arg0) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void setTransactionIsolation(int arg0) throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void setTypeMap(Map<String, Class<?>> arg0) throws SQLException {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Added: trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockDataSource.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockDataSource.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockDataSource.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,99 @@
+package org.jboss.test.jca.dsdeployer;
+
+import java.io.PrintWriter;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+import javax.sql.XAConnection;
+import javax.sql.XADataSource;
+
+public class MockDataSource implements DataSource, XADataSource {
+
+	private String serverName;
+	private String databaseName;
+	private int portNumber;
+	
+	@Override
+	public PrintWriter getLogWriter() throws SQLException {
+		return null;
+	}
+
+	@Override
+	public int getLoginTimeout() throws SQLException {
+		return 0;
+	}
+
+	@Override
+	public void setLogWriter(PrintWriter arg0) throws SQLException {
+
+	}
+
+	@Override
+	public void setLoginTimeout(int arg0) throws SQLException {
+
+	}
+
+	@Override
+	public boolean isWrapperFor(Class<?> arg0) throws SQLException {
+		return false;
+	}
+
+	@Override
+	public <T> T unwrap(Class<T> arg0) throws SQLException {
+		return null;
+	}
+
+	@Override
+	public Connection getConnection() throws SQLException {
+		return new MockConnection();
+	}
+
+	@Override
+	public Connection getConnection(String arg0, String arg1)
+			throws SQLException {
+		return new MockConnection();
+	}
+
+	public String getServerName() {
+		return serverName;
+	}
+
+	public void setServerName(String serverName) {
+		this.serverName = serverName;
+	}
+
+	public String getDatabaseName() {
+		return databaseName;
+	}
+
+	public void setDatabaseName(String databaseName) {
+		this.databaseName = databaseName;
+	}
+
+	public int getPortNumber() {
+		return portNumber;
+	}
+
+	public void setPortNumber(int portNumber) {
+		this.portNumber = portNumber;
+	}
+
+	@Override
+	public XAConnection getXAConnection() throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public XAConnection getXAConnection(String arg0, String arg1)
+			throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	
+	
+	
+	
+}

Added: trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockDriver.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockDriver.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/MockDriver.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,48 @@
+package org.jboss.test.jca.dsdeployer;
+
+import java.sql.Connection;
+import java.sql.Driver;
+import java.sql.DriverPropertyInfo;
+import java.sql.SQLException;
+import java.util.Properties;
+
+public class MockDriver implements Driver {
+
+	@Override
+	public boolean acceptsURL(String arg0) throws SQLException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public Connection connect(String arg0, Properties arg1) throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int getMajorVersion() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public int getMinorVersion() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public DriverPropertyInfo[] getPropertyInfo(String arg0, Properties arg1)
+			throws SQLException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean jdbcCompliant() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

Added: trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJB.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJB.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJB.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,61 @@
+package org.jboss.test.jca.dsdeployer;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import javax.annotation.sql.DataSourceDefinition;
+import javax.ejb.Local;
+import javax.ejb.Stateless;
+import javax.sql.DataSource;
+
+ at DataSourceDefinition(name="java:EJBAnnotDS", className="org.hsqldb.jdbcDriver", url="jdbc:hsqldb:mem:JCADataSourceDeployerDB")
+ at Stateless
+ at Local(TestEJBLocal.class)
+public class TestEJB implements TestEJBLocal, TestEJBRemote 
+{
+
+//	@Resource(mappedName="java:EJBAnnotDS")
+	private DataSource dataSource;
+	
+	@Override
+	public void testDataSource() throws Exception 
+	{
+		Connection c = null;
+		Statement s = null;
+		ResultSet rs = null;
+		
+		try
+		{
+			//c = dataSource.getConnection();
+			s = c.createStatement();
+			rs = s.executeQuery("select * from iqserver");
+						
+		}
+		catch(Exception e)
+		{
+			e.printStackTrace();
+			throw e;
+		}
+		finally
+		{
+			try {
+				if(rs != null)
+				{
+					rs.close();
+				}
+				if(s != null)
+				{
+					s.close();
+				}
+				if(c != null)
+				{
+					c.close();
+				}
+			} catch (SQLException ignore) 
+			{
+			}
+		}
+	}
+}

Added: trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJBLocal.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJBLocal.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJBLocal.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,8 @@
+package org.jboss.test.jca.dsdeployer;
+
+import javax.ejb.Local;
+
+public interface TestEJBLocal 
+{
+	public void testDataSource() throws Exception;
+}

Added: trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJBRemote.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJBRemote.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestEJBRemote.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,9 @@
+package org.jboss.test.jca.dsdeployer;
+
+import javax.ejb.Remote;
+
+ at Remote
+public interface TestEJBRemote 
+{
+
+}

Added: trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestServlet.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestServlet.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/dsdeployer/TestServlet.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,81 @@
+package org.jboss.test.jca.dsdeployer;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import javax.annotation.Resource;
+import javax.annotation.sql.DataSourceDefinition;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.sql.DataSource;
+
+ at DataSourceDefinition(name="java:WebAnnotDS", className="org.hsqldb.jdbcDriver", url="jdbc:hsqldb:mem:JCADataSourceDeployerDB", user="sa")
+ at WebServlet(value="/test", name="TestServlet")
+public class TestServlet extends HttpServlet
+{
+	
+	@Resource(mappedName="java:WebAnnotDS")
+	private DataSource webAnnotDS;
+	
+	@Resource(mappedName="java:DSWebXML")
+	private DataSource webXMLDS;
+	
+	@Resource(mappedName="java:DSEARXML")
+	private DataSource earXMLDS;
+	
+	@Override
+	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+			throws ServletException, IOException {
+		doPost(req, resp);
+	}
+	
+	@Override
+	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 
+	{
+		Connection c = null;
+		Statement s = null;
+		ResultSet rs = null;
+		
+		try
+		{
+//			c = dataSource.getConnection();
+			s = c.createStatement();
+			rs = s.executeQuery("select * from iqserver");
+			
+			System.out.println("Test for EJB");
+//			ejb.testDataSource();
+		}
+		catch(Exception e)
+		{
+			throw new ServletException(e.getMessage(), e);
+		}
+		finally
+		{
+			try {
+				if(rs != null)
+				{
+					rs.close();
+				}
+				if(s != null)
+				{
+					s.close();
+				}
+				if(c != null)
+				{
+					c.close();
+				}
+			} catch (SQLException ignore) 
+			{
+			}
+		}
+	}
+
+	
+	
+}

Added: trunk/testsuite/src/main/org/jboss/test/jca/support/JCATestSupport.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/support/JCATestSupport.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/support/JCATestSupport.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,30 @@
+package org.jboss.test.jca.support;
+
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+
+public class JCATestSupport 
+{
+	private static MBeanServerConnection server;
+	
+	private JCATestSupport(MBeanServerConnection server)
+	{
+		this.server = server;
+	}
+	
+	public static JCATestSupport getInstance(MBeanServerConnection server)
+	{
+		return new JCATestSupport(server);
+	}
+	public static ObjectName getMCFForDeployment(final String name) throws Exception
+	{
+		return new ObjectName("jboss.jca:name=" + name + ",service=ManagedConnectionFactory");
+	}
+	
+	public static ObjectName getPoolForDeployment(final String name) throws Exception
+	{
+		return new ObjectName("jboss.jca:name=" + name + ",service=ManagedConnectionPool");
+		
+	}
+	
+}

Added: trunk/testsuite/src/main/org/jboss/test/jca/test/DataSourceDeployerTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/test/DataSourceDeployerTestCase.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/jca/test/DataSourceDeployerTestCase.java	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,110 @@
+package org.jboss.test.jca.test;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.Properties;
+
+import junit.framework.Test;
+
+import org.jboss.test.JBossTestCase;
+import org.jboss.test.jca.support.JCATestSupport;
+
+public class DataSourceDeployerTestCase extends JBossTestCase 
+{
+	private static final String EARXMLDS = "DSEARXML";
+	private static final String DRIVEREARXML = "DriverEARXML";
+	private static final String XADSEARXML = "XADSEARXML";
+	
+	private static final String WEBANNOTDS = "WebAnnotDS";
+	private static final String WEBXMLDS = "DSWebXML";
+	
+	
+	public DataSourceDeployerTestCase(String name) 
+	{
+		super(name);		
+	}
+
+	public void testBasicDeployment() throws Exception
+	{
+		deploy("jca-mockdriver.jar");
+		Properties props = getConnectionProperties(EARXMLDS);
+        assertTrue(props.containsKey("serverName") && props.containsKey("databaseName") && props.containsKey("portNumber"));
+        assertTrue(deploymentUsesDataSource(EARXMLDS));        
+        
+        props.clear();
+        
+        props = getConnectionProperties(DRIVEREARXML);
+        assertTrue(props.size() == 0);
+        assertFalse(deploymentUsesDataSource(DRIVEREARXML));
+		
+        props.clear();
+        props = getConnectionProperties(XADSEARXML, true);
+        assertTrue("XADataSourceProperties should have been set", props.size() > 0);
+        
+                                        
+		undeploy("jca-mockdriver.jar");
+	}
+
+	
+	public static Test suite() throws Exception 
+	{
+		//getDeploySetup(DataSourceDeployerTestCase.class, "jca-mockdriver.jar");
+		Test t1 = getDeploySetup(DataSourceDeployerTestCase.class, "jca-dsdeployer-test.ear");
+		return t1;
+		
+	}
+
+	private Object getMCFAttribute(String name, String attribute, Class<?> type) throws Exception
+	{
+		return invoke(JCATestSupport.getMCFForDeployment(name), "getManagedConnectionFactoryAttribute", new Object[]{attribute}, new String[]{type.getName()});
+	}
+	
+	private Properties getXAConnectionProperties(String name) throws Exception
+	{
+		return getConnectionProperties(name, true);
+	}
+	private Properties getConnectionProperties(String name) throws Exception
+	{
+		return getConnectionProperties(name, false);
+	}
+
+	private Properties getConnectionProperties(String name, boolean xa) throws Exception
+	{
+		String strResults = null;
+		
+		if(xa)
+		{
+			strResults = (String)getMCFAttribute(name, "XADataSourceProperties", String.class);
+			
+		}
+		else
+		{
+			strResults = (String)getMCFAttribute(name, "ConnectionProperties", String.class);
+
+		}
+		
+		log.debug("Received properties results from server fomr name " + name + "  " + strResults);
+		
+		Properties props = new Properties();
+		System.out.println(strResults);
+		
+		if(strResults != null)
+		{
+			strResults = strResults.replaceAll("\\\\", "\\\\\\\\");
+	        System.out.println(strResults);
+	        InputStream is = new ByteArrayInputStream(strResults.getBytes());
+	        props.load(is); 
+			
+		}
+
+		return props;
+	}
+	
+	private boolean deploymentUsesDataSource(String name) throws Exception
+	{
+		Boolean results = (Boolean)getMCFAttribute(name, "UseDataSource", String.class); 
+		String url = (String)getMCFAttribute(name, "ConnectionURL", String.class);
+		return (results != null && results && url == null) ? Boolean.TRUE : Boolean.FALSE;
+	}
+
+}

Added: trunk/testsuite/src/resources/jca/dsdeployer/ear/application.xml
===================================================================
--- trunk/testsuite/src/resources/jca/dsdeployer/ear/application.xml	                        (rev 0)
+++ trunk/testsuite/src/resources/jca/dsdeployer/ear/application.xml	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+    http://java.sun.com/xml/ns/javaee/application_6.xsd"
+    version="6" id="jca-dsdeployer-test">
+
+    <application-name>JCA DataSourceDeployer Test</application-name>
+    <initialize-in-order>true</initialize-in-order>
+	
+	<!-- 
+    <module>
+        <ejb>test-ejb.jar</ejb>
+    </module>
+     -->
+    
+    <module>        
+        <web>
+            <web-uri>jca-dsdeployer-test.war</web-uri>
+            <context-root>/testweb</context-root>
+        </web>
+    </module>             
+      <data-source>
+        <name>DSEARXML</name>
+        <class-name>org.jboss.test.jca.dsdeployer.MockDataSource</class-name>
+        <server-name>dataSource2ServerName</server-name>
+         <port-number>2</port-number>
+         <database-name>dataSource2DatabaseName</database-name>
+         <url>jdbc:hsqldb:mem:JCADataSourceDeployerDB</url>
+         <user>sa</user>
+         <password></password>
+         <login-timeout>2</login-timeout>
+         <transactional>false</transactional>
+         <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
+         <initial-pool-size>2</initial-pool-size>
+         <max-pool-size>2</max-pool-size>
+         <min-pool-size>2</min-pool-size>
+         <max-idle-time>2</max-idle-time>
+         <max-statements>2</max-statements>
+      </data-source>
+      <data-source>
+        <name>DriverEARXML</name>
+        <class-name>org.jboss.test.jca.dsdeployer.MockDriver</class-name>
+         <server-name></server-name>
+		 <port-number>-1</port-number>
+         <database-name></database-name>
+         <url>jdbc:hsqldb:mem:JCADataSourceDeployerDB</url>
+         <user>sa</user>
+         <password></password>
+         <login-timeout>2</login-timeout>
+         <transactional>false</transactional>
+         <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
+         <initial-pool-size>2</initial-pool-size>
+         <max-pool-size>2</max-pool-size>
+         <min-pool-size>2</min-pool-size>
+         <max-idle-time>2</max-idle-time>
+         <max-statements>2</max-statements>
+      </data-source>
+      <data-source>
+        <name>XADSEARXML</name>
+        <class-name>org.jboss.test.jca.dsdeployer.MockDriver</class-name>
+         <server-name>testServer</server-name>
+		 <port-number>2</port-number>
+         <database-name>testDB</database-name>
+         <url>jdbc:hsqldb:mem:JCADataSourceDeployerDB</url>
+         <user>sa</user>
+         <password></password>
+         <login-timeout>2</login-timeout>
+         <transactional>true</transactional>
+         <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
+         <initial-pool-size>2</initial-pool-size>
+         <max-pool-size>2</max-pool-size>
+         <min-pool-size>2</min-pool-size>
+         <max-idle-time>2</max-idle-time>
+         <max-statements>2</max-statements>
+      </data-source>
+
+</application>

Added: trunk/testsuite/src/resources/jca/dsdeployer/war/web.xml
===================================================================
--- trunk/testsuite/src/resources/jca/dsdeployer/war/web.xml	                        (rev 0)
+++ trunk/testsuite/src/resources/jca/dsdeployer/war/web.xml	2010-12-07 06:48:37 UTC (rev 109740)
@@ -0,0 +1,35 @@
+<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
+		
+		<!-- 
+		<servlet>
+			  <servlet-name>TestServlet</servlet-name>
+		      <servlet-class>org.test.web.TestServlet</servlet-class>
+		</servlet>
+		  -->
+		 <data-source>
+         <description>en-dataSource2-desc</description>
+<!--
+         <description xml:lang="fr">fr-dataSource2-desc</description>
+         <description xml:lang="de">de-dataSource2-desc</description>
+-->
+         <name>DSWebXML</name>
+         <class-name>org.jboss.test.jca.dsdeployer.MockDataSource</class-name>
+         <server-name>localhost</server-name>
+         <port-number>2</port-number>
+         <database-name>localdb</database-name>
+         <url>jdbc:hsqldb:mem:JCADataSourceDeployerDB</url>
+         <user>sa</user>
+		 <password></password>
+         <login-timeout>2</login-timeout>
+         <transactional>false</transactional>
+         <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
+         <initial-pool-size>2</initial-pool-size>
+         <max-pool-size>2</max-pool-size>
+         <min-pool-size>2</min-pool-size>
+         <max-idle-time>2</max-idle-time>
+         <max-statements>2</max-statements>
+      </data-source>
+	
+</web-app>



More information about the jboss-cvs-commits mailing list