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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Dec 20 15:22:10 EST 2010


Author: weston.price at jboss.com
Date: 2010-12-20 15:22:10 -0500 (Mon, 20 Dec 2010)
New Revision: 110052

Added:
   trunk/connector/src/main/java/org/jboss/resource/deployers/EARDataSourceDeployer.java
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] Added EAR data source deployer to allow for data source(s) in application.xml files. Added login timeout and adjusted pool values so as to not cause issues when pool max is at zero.

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-20 19:37:56 UTC (rev 110051)
+++ trunk/connector/src/main/java/org/jboss/resource/deployers/AbstractDataSourceDeployer.java	2010-12-20 20:22:10 UTC (rev 110052)
@@ -56,8 +56,7 @@
 	private JavaEEComponentInformer informer;
 	
 	public AbstractDataSourceDeployer() {
-		setStage(DeploymentStages.REAL);
-		
+		setStage(DeploymentStages.REAL);		
 		this.setOutput(ManagedConnectionFactoryDeploymentGroup.class);
 	}
 		
@@ -89,48 +88,46 @@
 		
 		for(String key: dataSources.keySet())
 		{
-		    DataSourceDeploymentMetaData depMd = null;
-			DataSourceMetaData dsmd = dataSources.get(key);
+		    DataSourceDeploymentMetaData deploymentMD = null;
+			DataSourceMetaData dataSourceMD = dataSources.get(key);
 			
-			if(dsmd.isTransactional())
+			if(dataSourceMD.isTransactional())
 			{
-				depMd = DataSourceDeployerHelper.createTxnDeployment(dsmd);
+				deploymentMD = DataSourceDeployerHelper.createTxnDeployment(dataSourceMD);
 			}
 			else
 			{
-				depMd = DataSourceDeployerHelper.createNonTxnDeployment(dsmd);				
+				deploymentMD = DataSourceDeployerHelper.createNonTxnDeployment(dataSourceMD);				
 			}
+						
+			deploymentMD.setJndiName(DataSourceDeployerHelper.normalizeJndiName(dataSourceMD, unit, informer));
+			deploymentMD.setUserName(dataSourceMD.getUser());
+			deploymentMD.setPassWord(dataSourceMD.getPassword());
 			
-			
-			depMd.setJndiName(DataSourceDeployerHelper.normalizeJndiName(dsmd, unit, informer));
-			depMd.setUserName(dsmd.getUser());
-			depMd.setPassWord(dsmd.getPassword());
-			
-			if(dsmd.getIsolationLevel() != null)
+			if(dataSourceMD.getIsolationLevel() != null)
 			{
-				depMd.setTransactionIsolation(dsmd.getIsolationLevel().toString());				
+				deploymentMD.setTransactionIsolation(dataSourceMD.getIsolationLevel().toString());				
 			}
-												
-			ConnectionPoolMetaData cpmd = (ConnectionPoolMetaData)depMd;
 			
-			if(dsmd.getMinPoolSize() < 0)
+			if(dataSourceMD.getMaxStatements() > -1)
 			{
-				cpmd.setMinSize(0);
+				deploymentMD.setPreparedStatementCacheSize(dataSourceMD.getMaxStatements());				
 			}
-			else
+			
+			ConnectionPoolMetaData cpmd = (ConnectionPoolMetaData)deploymentMD;
+			
+			if(dataSourceMD.getMinPoolSize() != -1)
 			{
-				cpmd.setMinSize(dsmd.getMinPoolSize());
+				cpmd.setMinSize(dataSourceMD.getMinPoolSize());				
 			}
-			
-			cpmd.setMaxSize(dsmd.getMaxPoolSize());
-			cpmd.setIdleTimeoutMinutes(dsmd.getMaxIdleTime() / 60);
-			if (dsmd.getLoginTimeout() > 0)
+			if(dataSourceMD.getMaxPoolSize() != -1)
 			{
-			   cpmd.setBlockingTimeoutMilliSeconds(dsmd.getLoginTimeout() * 1000);
+				cpmd.setMaxSize(dataSourceMD.getMaxPoolSize());				
 			}
+
+			cpmd.setIdleTimeoutMinutes(dataSourceMD.getMaxIdleTime() / 60);			
+			datasourceDeployments.add(deploymentMD);						
 			
-			datasourceDeployments.add(depMd);						
-			
 		}
 		
 				

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-20 19:37:56 UTC (rev 110051)
+++ trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java	2010-12-20 20:22:10 UTC (rev 110052)
@@ -136,6 +136,12 @@
 			
 		}
 		
+		xaProp = new XAConnectionPropertyMetaData();
+		xaProp.setName("loginTimeout");
+		xaProp.setValue(String.valueOf(dsmd.getLoginTimeout()));
+		xaProps.add(xaProp);
+
+		
 		if(useUrl)
 		{
 			depMd.setURLProperty(url);
@@ -201,7 +207,11 @@
 			
 		}
 		
-		
+		xaProp = new DataSourceConnectionPropertyMetaData();
+		xaProp.setName("loginTimeout");
+		xaProp.setValue(String.valueOf(dsmd.getLoginTimeout()));
+		xaProps.add(xaProp);
+						
 		if(useUrl)
 		{
 			depMd.setConnectionUrl(url);

Added: trunk/connector/src/main/java/org/jboss/resource/deployers/EARDataSourceDeployer.java
===================================================================
--- trunk/connector/src/main/java/org/jboss/resource/deployers/EARDataSourceDeployer.java	                        (rev 0)
+++ trunk/connector/src/main/java/org/jboss/resource/deployers/EARDataSourceDeployer.java	2010-12-20 20:22:10 UTC (rev 110052)
@@ -0,0 +1,34 @@
+package org.jboss.resource.deployers;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.metadata.ear.spec.Ear60MetaData;
+import org.jboss.metadata.ear.spec.EarMetaData;
+import org.jboss.metadata.javaee.spec.DataSourcesMetaData;
+
+/**
+ * Deployer for processing data-source for EAR deployments.
+ * @author Weston M. Price
+ *
+ */
+public class EARDataSourceDeployer extends AbstractDataSourceDeployer 
+{
+
+	public EARDataSourceDeployer()
+	{
+		this.setInput(EarMetaData.class);
+	}
+	@Override
+	protected DataSourcesMetaData getDataSources(DeploymentUnit unit) 
+	{
+		EarMetaData emd = unit.getAttachment(EarMetaData.class);
+		
+		if(emd != null && emd.isEE6())
+		{
+			return ((Ear60MetaData)emd).getEarEnvironmentRefsGroup().getDataSources();
+		}
+		
+		return null;
+	
+	}
+
+}



More information about the jboss-cvs-commits mailing list