[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