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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Dec 6 07:28:51 EST 2007


Author: alex.loubyansky at jboss.com
Date: 2007-12-06 07:28:51 -0500 (Thu, 06 Dec 2007)
New Revision: 67991

Modified:
   trunk/connector/src/main/org/jboss/resource/deployers/management/DsDataSourceTemplate.java
Log:
create mcf metadata based on the value of datasource-type property from the template info

Modified: trunk/connector/src/main/org/jboss/resource/deployers/management/DsDataSourceTemplate.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/deployers/management/DsDataSourceTemplate.java	2007-12-06 12:07:00 UTC (rev 67990)
+++ trunk/connector/src/main/org/jboss/resource/deployers/management/DsDataSourceTemplate.java	2007-12-06 12:28:51 UTC (rev 67991)
@@ -32,6 +32,7 @@
 
 import org.jboss.deployers.spi.management.DeploymentTemplate;
 import org.jboss.deployers.spi.management.DeploymentTemplateInfo;
+import org.jboss.deployers.spi.management.KnownComponentTypes;
 import org.jboss.deployers.vfs.spi.client.VFSDeployment;
 import org.jboss.managed.api.ManagedObject;
 import org.jboss.managed.api.ManagedProperty;
@@ -40,6 +41,10 @@
 import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup;
 import org.jboss.resource.metadata.mcf.LocalDataSourceDeploymentMetaData;
 import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.XADataSourceDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.TxConnectionFactoryDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.NoTxConnectionFactoryDeploymentMetaData;
+import org.jboss.resource.metadata.mcf.NoTxDataSourceDeploymentMetaData;
 import org.jboss.virtual.VirtualFile;
 
 /**
@@ -87,15 +92,62 @@
       //ManagedObject mo = prop.getManagedObject();
       //Object group = mo.getAttachment();
 
+      Map<String, ManagedProperty> properties = values.getProperties();
+      ManagedProperty prop = properties.get("datasource-type");
+      if(prop == null)
+         throw new IllegalStateException("Required property datasource-type could not be found among: " + properties.keySet());
+
+      ManagedConnectionFactoryDeploymentMetaData mcf;
+      ManagedObjectFactory mof = ManagedObjectFactoryBuilder.create();
+      ManagedObject cfMO;
+
+      Object cfType = prop.getValue();
+      if(cfType.equals("local-tx-datasource"))
+      {
+         mcf = new LocalDataSourceDeploymentMetaData();
+         cfMO = mof.initManagedObject(mcf,
+            KnownComponentTypes.DataSourceTypes.LocalTx.getType().getType(),
+            KnownComponentTypes.DataSourceTypes.LocalTx.getType().getSubtype());
+      }
+      else if(cfType.equals("xa-datasource"))
+      {
+         mcf = new XADataSourceDeploymentMetaData();
+         cfMO = mof.initManagedObject(mcf,
+            KnownComponentTypes.DataSourceTypes.XA.getType().getType(),
+            KnownComponentTypes.DataSourceTypes.XA.getType().getSubtype());
+      }
+      else if(cfType.equals("tx-connection-factory"))
+      {
+         mcf = new TxConnectionFactoryDeploymentMetaData();
+         // TODO: is this correct?
+         cfMO = mof.initManagedObject(mcf,
+            KnownComponentTypes.DataSourceTypes.LocalTx.getType().getType(),
+            KnownComponentTypes.DataSourceTypes.LocalTx.getType().getSubtype());
+      }
+      else if(cfType.equals("no-tx-connection-factory"))
+      {
+         mcf = new NoTxConnectionFactoryDeploymentMetaData();
+         // TODO: is this correct?
+         cfMO = mof.initManagedObject(mcf,
+            KnownComponentTypes.DataSourceTypes.NoTx.getType().getType(),
+            KnownComponentTypes.DataSourceTypes.NoTx.getType().getSubtype());
+      }
+      else if(cfType.equals("no-tx-datasource"))
+      {
+         mcf = new NoTxDataSourceDeploymentMetaData();
+         cfMO = mof.initManagedObject(mcf,
+            KnownComponentTypes.DataSourceTypes.NoTx.getType().getType(),
+            KnownComponentTypes.DataSourceTypes.NoTx.getType().getSubtype());
+      }
+      else
+         throw new IllegalStateException("Expected values for datasource-type are " +
+            prop.getLegalValues() + " but got: " + cfType);
+
       ManagedConnectionFactoryDeploymentGroup group = new ManagedConnectionFactoryDeploymentGroup();
-
-      ManagedConnectionFactoryDeploymentMetaData mcf = new LocalDataSourceDeploymentMetaData();
       group.addManagedConnectionFactoryDeployment(mcf);
-      ManagedObjectFactory mof = ManagedObjectFactoryBuilder.create();
-      ManagedObject dsMO = mof.initManagedObject(mcf, "DataSource", "LocalTx");
       for(ManagedProperty tempProp : values.getProperties().values())
       {
-         ManagedProperty dsProp = dsMO.getProperty(tempProp.getName());
+         ManagedProperty dsProp = cfMO.getProperty(tempProp.getName());
          if(dsProp != null)
             dsProp.setValue((Serializable)tempProp.getValue());
       }




More information about the jboss-cvs-commits mailing list