[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