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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Dec 16 12:31:00 EST 2010


Author: weston.price at jboss.com
Date: 2010-12-16 12:30:59 -0500 (Thu, 16 Dec 2010)
New Revision: 109973

Modified:
   trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployer.java
   trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java
Log:
[JBAS-8559] Added logic to handle JNDI naming components of data sources deployed within EE modules. Essentially we are mapping the ds name to an internal scheme allowing switchboard to appropriately handle ds JNDI names correctly.

Modified: trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployer.java
===================================================================
--- trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployer.java	2010-12-16 16:08:28 UTC (rev 109972)
+++ trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployer.java	2010-12-16 17:30:59 UTC (rev 109973)
@@ -21,23 +21,21 @@
  */
 package org.jboss.resource.deployers;
 
+import org.jboss.beans.metadata.api.annotations.Inject;
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentStages;
 import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.client.spec.ApplicationClient6MetaData;
 import org.jboss.metadata.client.spec.ApplicationClientMetaData;
 import org.jboss.metadata.ear.spec.Ear60MetaData;
 import org.jboss.metadata.ear.spec.EarMetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
 import org.jboss.metadata.javaee.spec.DataSourceMetaData;
 import org.jboss.metadata.javaee.spec.DataSourcesMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.Web30MetaData;
 import org.jboss.metadata.web.spec.WebMetaData;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
 import org.jboss.resource.metadata.mcf.ConnectionPoolMetaData;
 import org.jboss.resource.metadata.mcf.DataSourceDeploymentMetaData;
 import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup;
@@ -62,12 +60,14 @@
 	private boolean isWARSupported = true;
 	private boolean isEJBSupported = true;
 	private boolean isCARSupported = true;
+
+	private JavaEEComponentInformer informer;
 	
 	public DataSourceDeployer() {
 		setStage(DeploymentStages.PRE_REAL);
 		addInput(EarMetaData.class);
 		addInput(WebMetaData.class);
-		addInput(ApplicationClient6MetaData.class);
+		addInput(ApplicationClientMetaData.class);
 		addInput(JBossMetaData.class);
 	}
 		
@@ -102,16 +102,22 @@
 	public void setCARSupported(boolean isCARSupported) {
 		this.isCARSupported = isCARSupported;
 	}
-
+	
+	@Inject
+	public void setJavaEEComponentInformer(JavaEEComponentInformer informer)
+	{
+		this.informer = informer;
+	}
+	
 	@Override
 	public void deploy(DeploymentUnit unit) throws DeploymentException 
 	{
 		DataSourcesMetaData dsmd = getDataSourcesMetaData(unit);
-		ManagedConnectionFactoryDeploymentGroup group = getMCFMetaData(dsmd); 
+		ManagedConnectionFactoryDeploymentGroup group = getMCFMetaData(dsmd, unit); 
 		unit.addAttachment(ManagedConnectionFactoryDeploymentGroup.class, group);
 	}
 
-	private ManagedConnectionFactoryDeploymentGroup getMCFMetaData(DataSourcesMetaData dataSources) 
+	private ManagedConnectionFactoryDeploymentGroup getMCFMetaData(DataSourcesMetaData dataSources, DeploymentUnit unit) 
 	{
 		ManagedConnectionFactoryDeploymentGroup group = new ManagedConnectionFactoryDeploymentGroup();
 		DataSourceDeploymentMetaData depMd = null;
@@ -119,7 +125,7 @@
 		for(String key: dataSources.keySet())
 		{
 			DataSourceMetaData dsmd = dataSources.get(key);
-
+			
 			if(dsmd.isTransactional())
 			{
 				depMd = DataSourceDeployerHelper.createTxnDeployment(dsmd);
@@ -129,7 +135,8 @@
 				depMd = DataSourceDeployerHelper.createNonTxnDeployment(dsmd);				
 			}
 			
-			depMd.setJndiName(normalizeJndiName(dsmd.getName()));
+			
+			depMd.setJndiName(DataSourceDeployerHelper.normalizeJndiName(dsmd, unit, informer));
 			depMd.setUserName(dsmd.getUser());
 			depMd.setPassWord(dsmd.getPassword());
 			
@@ -221,26 +228,10 @@
 		
 		if(isCARSupported() && acmd != null)
 		{
-			//TODO support application clients
+			//TODO support application clients	
 		}
 		
 		return candidates;
 	}
 	
-	
-	private static String normalizeJndiName(String jndiName)
-	{
-
-		if(jndiName != null)
-		{
-			if(jndiName.contains("java:"))
-			{
-				return jndiName.replace("java:", "").trim();
-			}
-		}
-		
-		return jndiName;
-		
-	}
-	
 }

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-16 16:08:28 UTC (rev 109972)
+++ trunk/connector/src/main/java/org/jboss/resource/deployers/DataSourceDeployerHelper.java	2010-12-16 17:30:59 UTC (rev 109973)
@@ -21,10 +21,13 @@
  */
 package org.jboss.resource.deployers;
 
+import java.util.ArrayList;
 import java.util.List;
 
+import org.jboss.deployers.structure.spi.DeploymentUnit;
 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.DataSourceConnectionPropertyMetaData;
 import org.jboss.resource.metadata.mcf.DataSourceDeploymentMetaData;
 import org.jboss.resource.metadata.mcf.NoTxDataSourceDeploymentMetaData;
@@ -38,7 +41,43 @@
  */
 public class DataSourceDeployerHelper {
 
+	private static final List<String> scopes = new ArrayList<String>();
 	
+	static
+	{
+		scopes.add("app");
+		scopes.add("global");
+		scopes.add("module");
+		scopes.add("comp");
+		
+	}
+	
+	public static String normalizeJndiName(DataSourceMetaData dsmd, DeploymentUnit unit, JavaEEComponentInformer informer)
+	{
+		String jndiName = normalizeJndiName(dsmd.getName());
+		StringBuffer results = new StringBuffer();
+		String dsName = null;
+		
+		if(jndiName.indexOf("/") != -1 && scopes.contains(jndiName.substring(0, jndiName.indexOf("/"))))
+		{						
+			dsName = jndiName.substring(jndiName.indexOf("/") + 1, jndiName.length());
+			
+			results.append("internal/" + informer.getApplicationName(unit) + "/" + informer.getModuleName(unit) + "/");
+			
+			if(informer.isJavaEEComponent(unit))
+			{
+				results.append(informer.getComponentName(unit) + "/");
+			}
+						
+			return results.append(dsName).toString();
+		
+		}
+		
+		
+		return jndiName;
+	}
+	
+	
 	public static DataSourceDeploymentMetaData createTxnDeployment(final DataSourceMetaData dsmd)
 	{
 		XADataSourceDeploymentMetaData depMd = new XADataSourceDeploymentMetaData();
@@ -177,4 +216,19 @@
 		return depMd;
 	}
 	
+	private static String normalizeJndiName(String jndiName)
+	{
+
+		if(jndiName != null)
+		{
+			if(jndiName.contains("java:"))
+			{
+				return jndiName.replace("java:", "").trim();
+			}
+		}
+		
+		return jndiName;
+		
+	}
+	
 }



More information about the jboss-cvs-commits mailing list