[jboss-cvs] JBossAS SVN: r110059 - trunk/connector/src/main/java/org/jboss/resource/deployers.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Dec 21 04:24:18 EST 2010


Author: weston.price at jboss.com
Date: 2010-12-21 04:24:17 -0500 (Tue, 21 Dec 2010)
New Revision: 110059

Modified:
   trunk/connector/src/main/java/org/jboss/resource/deployers/AbstractDataSourceDeployer.java
   trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java
Log:
[JBAS-8559] General cleanup as well as reverting to local transactions to satisfy spec requirement of transactional=true. Note, the spec being under defined as what particular type of transactions are needed (ie local versus XA), this is simply there to pass the TCK at this point.

Modified: trunk/connector/src/main/java/org/jboss/resource/deployers/AbstractDataSourceDeployer.java
===================================================================
--- trunk/connector/src/main/java/org/jboss/resource/deployers/AbstractDataSourceDeployer.java	2010-12-21 09:24:14 UTC (rev 110058)
+++ trunk/connector/src/main/java/org/jboss/resource/deployers/AbstractDataSourceDeployer.java	2010-12-21 09:24:17 UTC (rev 110059)
@@ -84,53 +84,16 @@
 	private Collection<DataSourceDeploymentMetaData> getDataSourceDeployments(DataSourcesMetaData dataSources, DeploymentUnit unit) 
 	{
 		Collection<DataSourceDeploymentMetaData> datasourceDeployments = new ArrayList<DataSourceDeploymentMetaData>();
-		
-		
+				
 		for(String key: dataSources.keySet())
 		{
-		    DataSourceDeploymentMetaData deploymentMD = null;
-			DataSourceMetaData dataSourceMD = dataSources.get(key);
+			DataSourceMetaData dsmd = dataSources.get(key);
+			DataSourceDeploymentMetaData deploymentMetaData = DataSourceDeployerHelper.createDeployment(dsmd);
+			deploymentMetaData.setJndiName(DataSourceDeployerHelper.normalizeJndiName(dsmd, unit, informer));
+			datasourceDeployments.add(deploymentMetaData);						
 			
-			if(dataSourceMD.isTransactional())
-			{
-				deploymentMD = DataSourceDeployerHelper.createTxnDeployment(dataSourceMD);
-			}
-			else
-			{
-				deploymentMD = DataSourceDeployerHelper.createNonTxnDeployment(dataSourceMD);				
-			}
-						
-			deploymentMD.setJndiName(DataSourceDeployerHelper.normalizeJndiName(dataSourceMD, unit, informer));
-			deploymentMD.setUserName(dataSourceMD.getUser());
-			deploymentMD.setPassWord(dataSourceMD.getPassword());
-			
-			if(dataSourceMD.getIsolationLevel() != null)
-			{
-				deploymentMD.setTransactionIsolation(dataSourceMD.getIsolationLevel().toString());				
-			}
-			
-			if(dataSourceMD.getMaxStatements() > -1)
-			{
-				deploymentMD.setPreparedStatementCacheSize(dataSourceMD.getMaxStatements());				
-			}
-			
-			ConnectionPoolMetaData cpmd = (ConnectionPoolMetaData)deploymentMD;
-			
-			if(dataSourceMD.getMinPoolSize() != -1)
-			{
-				cpmd.setMinSize(dataSourceMD.getMinPoolSize());				
-			}
-			if(dataSourceMD.getMaxPoolSize() != -1)
-			{
-				cpmd.setMaxSize(dataSourceMD.getMaxPoolSize());				
-			}
-
-			cpmd.setIdleTimeoutMinutes(dataSourceMD.getMaxIdleTime() / 60);			
-			datasourceDeployments.add(deploymentMD);						
-			
 		}
-		
-				
+						
 		return datasourceDeployments;
 	}
 	

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-21 09:24:14 UTC (rev 110058)
+++ trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java	2010-12-21 09:24:17 UTC (rev 110059)
@@ -25,22 +25,26 @@
 import java.util.List;
 
 import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
 import org.jboss.metadata.javaee.spec.DataSourceMetaData;
 import org.jboss.metadata.javaee.spec.PropertyMetaData;
 import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
+import org.jboss.resource.metadata.mcf.ConnectionPoolMetaData;
 import org.jboss.resource.metadata.mcf.DataSourceConnectionPropertyMetaData;
 import org.jboss.resource.metadata.mcf.DataSourceDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.LocalDataSourceDeploymentMetaData;
 import org.jboss.resource.metadata.mcf.NoTxDataSourceDeploymentMetaData;
-import org.jboss.resource.metadata.mcf.XAConnectionPropertyMetaData;
-import org.jboss.resource.metadata.mcf.XADataSourceDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.NonXADataSourceDeploymentMetaData;
 
 /**
- * Simple helper class for generating DataSourceDeploymentMetaData from a DataSourceDefinition as provided by EE5.17
+ * Simple helper class for generating DataSourceDeploymentMetaData from a DataSourceDefinition as provided by EE5.17.
  * @author Weston M. Price
  *
  */
 public class DataSourceDeployerHelper {
 
+	private static final Logger logger = Logger.getLogger(DataSourceDeployerHelper.class);
+
 	private static final List<String> scopes = new ArrayList<String>();
 	
 	static
@@ -92,12 +96,21 @@
         
     }
 	
-	
-	public static DataSourceDeploymentMetaData createTxnDeployment(final DataSourceMetaData dsmd)
+		
+	public static DataSourceDeploymentMetaData createDeployment(final DataSourceMetaData dsmd)
 	{
-		XADataSourceDeploymentMetaData depMd = new XADataSourceDeploymentMetaData();
-		depMd.setXaDataSourceClass(dsmd.getClassName());
-		List<XAConnectionPropertyMetaData> xaProps = depMd.getXADataSourceProperties();
+		NonXADataSourceDeploymentMetaData deploymentMetaData = null;
+		
+		if(dsmd.isTransactional())
+		{
+			deploymentMetaData= new LocalDataSourceDeploymentMetaData();
+		}
+		else
+		{
+			deploymentMetaData = new NoTxDataSourceDeploymentMetaData();
+		}
+		
+		List<DataSourceConnectionPropertyMetaData> connectionProps = deploymentMetaData.getDataSourceConnectionProperties();
 
 		boolean useUrl = true;
 
@@ -105,140 +118,96 @@
 		String dataBaseName = dsmd.getDatabaseName();
 		int portNumber = dsmd.getPortNumber();
 		String url = dsmd.getUrl();
-
-		XAConnectionPropertyMetaData xaProp = null;
 		
+		DataSourceConnectionPropertyMetaData connectionProp = null;
+		
 		if(serverName != null && !serverName.isEmpty())
 		{
 			useUrl = false;
-			xaProp = new XAConnectionPropertyMetaData();
-			xaProp.setName("serverName");
-			xaProp.setValue(serverName);
-			xaProps.add(xaProp);
+			connectionProp = new DataSourceConnectionPropertyMetaData();
+			connectionProp.setName("serverName");
+			connectionProp.setValue(serverName);
+			connectionProps.add(connectionProp);
 		}
 		
 		if(dataBaseName != null && !dataBaseName.isEmpty())
 		{
 			useUrl = false;
-			xaProp = new XAConnectionPropertyMetaData();
-			xaProp.setName("databaseName");
-			xaProp.setValue(dataBaseName);					
-			xaProps.add(xaProp);
+			connectionProp = new DataSourceConnectionPropertyMetaData();
+			connectionProp.setName("databaseName");
+			connectionProp.setValue(dataBaseName);					
+			connectionProps.add(connectionProp);
 		}
 		
 		if(portNumber > -1)
 		{
 			useUrl = false;
-			xaProp = new XAConnectionPropertyMetaData();
-			xaProp.setName("portNumber");
-			xaProp.setValue(String.valueOf(portNumber));					
-			xaProps.add(xaProp);
-			
+			connectionProp = new DataSourceConnectionPropertyMetaData();
+			connectionProp.setName("portNumber");
+			connectionProp.setValue(String.valueOf(portNumber));					
+			connectionProps.add(connectionProp);			
 		}
 		
-		xaProp = new XAConnectionPropertyMetaData();
-		xaProp.setName("loginTimeout");
-		xaProp.setValue(String.valueOf(dsmd.getLoginTimeout()));
-		xaProps.add(xaProp);
-
-		
+		connectionProp = new DataSourceConnectionPropertyMetaData();
+		connectionProp.setName("loginTimeout");
+		connectionProp.setValue(String.valueOf(dsmd.getLoginTimeout()));
+		connectionProps.add(connectionProp);
+						
 		if(useUrl)
 		{
-			depMd.setURLProperty(url);
+			deploymentMetaData.setConnectionUrl(url);
 		}
-		
-		if(dsmd.getProperties() != null && dsmd.getProperties().keySet().size() > 0)
+		else
 		{
-			for(String key: dsmd.getProperties().keySet())
-			{
-				PropertyMetaData pmd = dsmd.getProperties().get(key);
-				xaProp = new XAConnectionPropertyMetaData();
-				xaProp.setName(pmd.getName());
-				xaProp.setValue(pmd.getValue());
-				xaProps.add(xaProp);
-			}
-			
+			//Hack for EE5.17 we are going to use the new DataSource rar to manage data sources that do not specify a Url, or specify properties
+			//within the deployment ie serverName, dataBaseName etc. This is largely to reduce the number of changes required to support
+			//this particular section in the spec.
+			deploymentMetaData.setUseDataSource(true);
+			logger.debug("Creating data source using standard JDBC4 based properties.");
 		}
 		
-		return depMd;
-	}
-	
-	
-	public static DataSourceDeploymentMetaData createNonTxnDeployment(final DataSourceMetaData dsmd)
-	{
-		NoTxDataSourceDeploymentMetaData depMd = new NoTxDataSourceDeploymentMetaData();
-		depMd.setDriverClass(dsmd.getClassName());
-		List<DataSourceConnectionPropertyMetaData> xaProps = depMd.getDataSourceConnectionProperties();
-
-		boolean useUrl = true;
-
-		String serverName = dsmd.getServerName();
-		String dataBaseName = dsmd.getDatabaseName();
-		int portNumber = dsmd.getPortNumber();
-		String url = dsmd.getUrl();
+		deploymentMetaData.setUserName(dsmd.getUser());
+		deploymentMetaData.setPassWord(dsmd.getPassword());
 		
-		DataSourceConnectionPropertyMetaData xaProp = null;
-		
-		if(serverName != null && !serverName.isEmpty())
+		if(dsmd.getIsolationLevel() != null)
 		{
-			useUrl = false;
-			xaProp = new DataSourceConnectionPropertyMetaData();
-			xaProp.setName("serverName");
-			xaProp.setValue(serverName);
-			xaProps.add(xaProp);
+			deploymentMetaData.setTransactionIsolation(dsmd.getIsolationLevel().toString());				
 		}
 		
-		if(dataBaseName != null && !dataBaseName.isEmpty())
+		if(dsmd.getMaxStatements() > -1)
 		{
-			useUrl = false;
-			xaProp = new DataSourceConnectionPropertyMetaData();
-			xaProp.setName("databaseName");
-			xaProp.setValue(dataBaseName);					
-			xaProps.add(xaProp);
+			deploymentMetaData.setPreparedStatementCacheSize(dsmd.getMaxStatements());				
 		}
 		
-		if(portNumber > -1)
-		{
-			useUrl = false;
-			xaProp = new DataSourceConnectionPropertyMetaData();
-			xaProp.setName("portNumber");
-			xaProp.setValue(String.valueOf(portNumber));					
-			xaProps.add(xaProp);
-			
-		}
+		ConnectionPoolMetaData cpmd = (ConnectionPoolMetaData)deploymentMetaData;
 		
-		xaProp = new DataSourceConnectionPropertyMetaData();
-		xaProp.setName("loginTimeout");
-		xaProp.setValue(String.valueOf(dsmd.getLoginTimeout()));
-		xaProps.add(xaProp);
-						
-		if(useUrl)
+		if(dsmd.getMinPoolSize() != -1)
 		{
-			depMd.setConnectionUrl(url);
+			cpmd.setMinSize(dsmd.getMinPoolSize());				
 		}
-		else
+		if(dsmd.getMaxPoolSize() != -1)
 		{
-			//Hack for EE5.17 we are going to use the new DataSource rar to manage data sources that do not specify a Url, or specify properties
-			//within the deployment ie serverName, dataBaseName etc. This is largely to reduce the number of changes required to support
-			//this particular section in the spec.
-			depMd.setUseDataSource(true);
-			//depMd.setRarName("jboss-datasource-jdbc.rar");
+			cpmd.setMaxSize(dsmd.getMaxPoolSize());				
 		}
 
+		cpmd.setIdleTimeoutMinutes(dsmd.getMaxIdleTime() / 60);			
+
+		
 		if(dsmd.getProperties() != null && dsmd.getProperties().keySet().size() > 0)
 		{
 			for(String key: dsmd.getProperties().keySet())
 			{
 				PropertyMetaData pmd = dsmd.getProperties().get(key);
-				xaProp = new DataSourceConnectionPropertyMetaData();
-				xaProp.setName(pmd.getName());
-				xaProp.setValue(pmd.getValue());
-				xaProps.add(xaProp);
+				connectionProp = new DataSourceConnectionPropertyMetaData();
+				connectionProp.setName(pmd.getName());
+				connectionProp.setValue(pmd.getValue());
+				connectionProps.add(connectionProp);
 			}
 			
 		}
-
-		return depMd;
+		
+		
+		return deploymentMetaData;
 	}
 	
 	private static String normalizeJndiName(String jndiName)



More information about the jboss-cvs-commits mailing list