[jboss-cvs] JBossAS SVN: r61525 - trunk/connector/src/main/org/jboss/resource/deployers.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Mar 21 04:36:12 EDT 2007
Author: weston.price at jboss.com
Date: 2007-03-21 04:36:12 -0400 (Wed, 21 Mar 2007)
New Revision: 61525
Modified:
trunk/connector/src/main/org/jboss/resource/deployers/ManagedConnectionFactoryDeployer.java
Log:
[JBAS-1425] Programmatic deployment.
Modified: trunk/connector/src/main/org/jboss/resource/deployers/ManagedConnectionFactoryDeployer.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/deployers/ManagedConnectionFactoryDeployer.java 2007-03-21 07:59:21 UTC (rev 61524)
+++ trunk/connector/src/main/org/jboss/resource/deployers/ManagedConnectionFactoryDeployer.java 2007-03-21 08:36:12 UTC (rev 61525)
@@ -33,6 +33,7 @@
import org.jboss.resource.connectionmanager.JBossManagedConnectionPool;
import org.jboss.resource.connectionmanager.NoTxConnectionManager;
import org.jboss.resource.connectionmanager.TxConnectionManager;
+import org.jboss.resource.deployers.builder.AbstractBuilder;
import org.jboss.resource.metadata.ConnectorMetaData;
import org.jboss.resource.metadata.mcf.DataSourceDeploymentMetaData;
import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup;
@@ -57,7 +58,7 @@
/** The suffix */
private String suffix;
private JCAMetaDataRepository repository;
- private List builders;
+ private List<AbstractBuilder> builders;
public void setBuilders(List builders)
@@ -122,443 +123,30 @@
public void deploy(DeploymentUnit unit, ManagedConnectionFactoryDeploymentGroup group) throws DeploymentException
{
- final List<ManagedConnectionFactoryDeploymentMetaData> deployments = group.getDeployments();
+ List<ManagedConnectionFactoryDeploymentMetaData> deployments = group.getDeployments();
ServiceDeployment serviceDeployment = new ServiceDeployment();
List<ServiceMetaData> componentServices = new ArrayList<ServiceMetaData>();
- try
- {
-
- for (ManagedConnectionFactoryDeploymentMetaData deployment : deployments)
+ componentServices.addAll(group.getServices());
+
+ for (ManagedConnectionFactoryDeploymentMetaData data : deployments)
+ {
+ for (AbstractBuilder builder : builders)
{
+ ServiceMetaData candidate = builder.build(data);
+ componentServices.add(candidate);
- ServiceMetaData managedConnectionFactory = buildManagedConnectionFactory(deployment);
-
- List<ServiceMetaData> embeddedDepends = deployment.getDependsServices();
-
- for (ServiceMetaData data : embeddedDepends)
- {
- ServiceDependencyValueMetaData value = new ServiceDependencyValueMetaData();
- value.setObjectName(data.getObjectName());
- ServiceAttributeMetaData att = new ServiceAttributeMetaData();
-
- //NEED OPTIONAL ATTRIBUTE DEPENDS
- att.setValue(value);
- managedConnectionFactory.getAttributes().add(att);
- componentServices.add(data);
- }
-
- componentServices.add(managedConnectionFactory);
-
- ServiceMetaData managedConnectionPool = buildConnectionPool(deployment);
-
- List<ServiceAttributeMetaData> poolAttributes = managedConnectionPool.getAttributes();
- ServiceDependencyValueMetaData dependValue = new ServiceDependencyValueMetaData();
- dependValue.setDependency(managedConnectionFactory.getObjectName().toString());
-
- ServiceAttributeMetaData attribute = new ServiceAttributeMetaData();
- attribute.setName("ManagedConnectionFactoryName");
- attribute.setValue(dependValue);
- poolAttributes.add(attribute);
-
- componentServices.add(managedConnectionPool);
-
- //ConnectionManager
- ServiceMetaData cmMetaData = buildConnectionManager(deployment);
- List<ServiceAttributeMetaData> cmAttributes = cmMetaData.getAttributes();
- dependValue = new ServiceDependencyValueMetaData();
- dependValue.setObjectName(managedConnectionPool.getObjectName());
-
- attribute = new ServiceAttributeMetaData();
- attribute.setName("ManagedConnectionPool");
- attribute.setValue(dependValue);
-
- cmAttributes.add(attribute);
- componentServices.add(cmMetaData);
-
- //DS/CF binding
- ServiceMetaData bindingMetaData = buildConnectionFactoryBinding(deployment);
- List<ServiceAttributeMetaData> bindingAttributes = bindingMetaData.getAttributes();
- dependValue = new ServiceDependencyValueMetaData();
- dependValue.setObjectName(cmMetaData.getObjectName());
- attribute = new ServiceAttributeMetaData();
- attribute.setName("ConnectionManager");
- attribute.setValue(dependValue);
- bindingAttributes.add(attribute);
-
- componentServices.add(bindingMetaData);
-
- //TypeMapping
-
- if(deployment.getTypeMapping() != null)
- {
- ServiceMetaData typeMapping = buildTypeMapping(deployment);
- componentServices.add(typeMapping);
-
- }
-
- serviceDeployment.setServices(componentServices);
-
}
- //Standalone MBeans
- List<ServiceMetaData> services = group.getServices();
-
- for (ServiceMetaData data : services)
- {
- serviceDeployment.getServices().add(data);
- }
-
- unit.addAttachment(ServiceDeployment.class, serviceDeployment);
-
-
- }catch(Exception e)
- {
- throw DeploymentException.rethrowAsDeploymentException("Error creating ManagedConnectionFactory deployment " + unit.getName(), e);
-
- }
+ }
+ serviceDeployment.setServices(componentServices);
+ unit.addAttachment(ServiceDeployment.class, serviceDeployment);
-
}
@Override
public void undeploy(DeploymentUnit unit, ManagedConnectionFactoryDeploymentGroup deployment)
{
}
- private List<ServiceAttributeMetaData> getPoolAttributes(ManagedConnectionFactoryDeploymentMetaData deployment)
- {
- List<ServiceAttributeMetaData> poolAttributes = new ArrayList<ServiceAttributeMetaData>();
- ServiceAttributeMetaData poolAttribute = null;
-
-// ConnectionPoolDeploymentMetaData pmd = null; //deployment.getConnectionPoolMetaData();
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("PoolJndiName");
-// poolAttribute.setValue(new ServiceTextValueMetaData(deployment.getJndiName()));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("MinSize");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.getMinSize())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("MaxSize");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.getMaxSize())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("BlockingTimeoutMillis");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.getBlockingTimeout())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("IdleTimeoutMinutes");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.getIdleTimeout())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("BackGroundValidation");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.isBackGroundValidation())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("BackGroundValidationMinutes");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.getBackgroundValidationMinutes())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("PreFill");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.isPrefill())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("StrictMin");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.isStrictMin())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("StatisticsFormatter");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.getStatisticsFormatter())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("UseFastFail");
-// poolAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(pmd.isUseFastFail())));
-// poolAttributes.add(poolAttribute);
-//
-// poolAttribute = new ServiceAttributeMetaData();
-// poolAttribute.setName("Criteria");
-// poolAttribute.setValue(new ServiceTextValueMetaData(deployment.getSecurityMetaData().getCriteria()));
-// poolAttributes.add(poolAttribute);
-
- return poolAttributes;
-
- }
-
- private ServiceMetaData buildConnectionPool(ManagedConnectionFactoryDeploymentMetaData deployment) throws Exception
- {
- ServiceMetaData poolMetaData = new ServiceMetaData();
- ObjectName poolName = new ObjectName("jboss.jca:service=ManagedConnectionPool,name=" + deployment.getJndiName());
- poolMetaData.setObjectName(poolName);
- poolMetaData.setCode(JBossManagedConnectionPool.class.getName());
- ServiceConstructorMetaData constructor = new ServiceConstructorMetaData();
- constructor.setParameters(new Object[]{});
- constructor.setParams(new String[]{});
- poolMetaData.setConstructor(constructor);
-
- List<ServiceAttributeMetaData> poolAttributes = getPoolAttributes(deployment);
- poolMetaData.setAttributes(poolAttributes);
-
- return poolMetaData;
-
-
- }
-
-
- private ServiceMetaData buildManagedConnectionFactory(ManagedConnectionFactoryDeploymentMetaData deployment) throws Exception
- {
- String jndiName = deployment.getJndiName();
- ServiceMetaData serviceMetaData = new ServiceMetaData();
- ObjectName mcfName = new ObjectName("jboss.jca:service=ManagedConnectionFactory,name=" + jndiName);
- serviceMetaData.setObjectName(mcfName);
-// serviceMetaData.setCode(ManagedConnectionFactoryDeployment.class.getName());
-
- //TODO new constructor
- ServiceConstructorMetaData constructor = new ServiceConstructorMetaData();
-
- ConnectorMetaData md = null;//repository.getConnectorMetaDataForRARName(deployment.getRarName());
- constructor.setParameters(new Object[]{md, deployment});
- constructor.setSignature(new String[]{md.getClass().getName(), ManagedConnectionFactoryDeploymentMetaData.class.getName()});
- serviceMetaData.setConstructor(constructor);
-
- List<ServiceAttributeMetaData> attributes = new ArrayList<ServiceAttributeMetaData>();
- ServiceAttributeMetaData attribute = null;
-
- //TODO look up RAR from repository
- ServiceDependencyValueMetaData dep = new ServiceDependencyValueMetaData();
- dep.setDependency("jboss.jca:service=RARDeployment,name='" + deployment.getRarName() + "'");
-
- attribute = new ServiceAttributeMetaData();
- attribute.setName("OldRarDeployment");
- attribute.setValue(dep);
- attribute.setTrim(false);
- attributes.add(attribute);
- serviceMetaData.setAttributes(attributes);
-
- return serviceMetaData;
- }
-
- private ServiceMetaData buildConnectionManager(ManagedConnectionFactoryDeploymentMetaData deployment) throws Exception
- {
- ServiceMetaData cmMetaData = new ServiceMetaData();
- String jndiName = deployment.getJndiName();
-
- String cmType = "jboss.jca:service=";
-
- ManagedConnectionFactoryTransactionSupportMetaData txnMetaData = deployment.getTransactionSupportMetaData();
-
- if(txnMetaData.equals(ManagedConnectionFactoryTransactionSupportMetaData.NONE))
- {
- cmType += "NoTxCM,name=" + jndiName;
- cmMetaData.setCode(NoTxConnectionManager.class.getName());
-
- }else if(txnMetaData.equals(ManagedConnectionFactoryTransactionSupportMetaData.LOCAL))
- {
-
- if(deployment instanceof DataSourceDeploymentMetaData)
- {
- cmType += "LocalTxCM,name=" + jndiName;
-
- }
- else
- {
- cmType += "TxCM,name=" + jndiName;
-
- }
- cmMetaData.setCode(TxConnectionManager.class.getName());
-
- }else
- {
- if(deployment instanceof DataSourceDeploymentMetaData)
- {
- cmType += "XATxCM,name=" + jndiName;
-
- }
- else
- {
- cmType += "TxCM,name=" + jndiName;
-
- }
-
- cmMetaData.setCode(TxConnectionManager.class.getName());
-
- }
-
- ObjectName cmName = new ObjectName(cmType);
- cmMetaData.setObjectName(cmName);
- List<ServiceAttributeMetaData> cmAttributes = new ArrayList<ServiceAttributeMetaData>();
- ServiceAttributeMetaData cmAttribute = null;
- ServiceConstructorMetaData constructor = new ServiceConstructorMetaData();
- constructor.setParameters(new Object[]{});
- constructor.setParams(new String[]{});
- cmMetaData.setConstructor(constructor);
-
- cmAttribute = new ServiceAttributeMetaData();
- cmAttribute.setName("JndiName");
- cmAttribute.setValue(new ServiceTextValueMetaData(jndiName));
- cmAttributes.add(cmAttribute);
-
-
- ServiceDependencyValueMetaData ccmValue = new ServiceDependencyValueMetaData();
- ccmValue.setDependency("jboss.jca:service=CachedConnectionManager");
- cmAttribute = new ServiceAttributeMetaData();
- cmAttribute.setName("CachedConnectionManager");
- cmAttribute.setValue(ccmValue);
- cmAttributes.add(cmAttribute);
-
- //Security domain
-
- if(deployment.getSecurityMetaData().requiresDomain())
- {
- cmAttribute = new ServiceAttributeMetaData();
- cmAttribute.setName("SecurityDomainJndiName");
-// cmAttribute.setValue(new ServiceTextValueMetaData(deployment.getSecurityMetaData().getSecurityDomainName()));
- cmAttributes.add(cmAttribute);
- }
-
- ServiceDependencyValueMetaData jaasValue = new ServiceDependencyValueMetaData();
- jaasValue.setDependency("jboss.security:service=JaasSecurityManager");
-
- cmAttribute = new ServiceAttributeMetaData();
- cmAttribute.setName("JaasSecurityManagerService");
- cmAttribute.setValue(jaasValue);
- cmAttributes.add(cmAttribute);
-
- if(deployment.getTransactionSupportMetaData().equals(ManagedConnectionFactoryTransactionSupportMetaData.LOCAL)
- || deployment.getTransactionSupportMetaData().equals(ManagedConnectionFactoryTransactionSupportMetaData.XA))
- {
-
- ServiceDependencyValueMetaData txnValue = new ServiceDependencyValueMetaData();
- txnValue.setDependency("jboss:service=TransactionManager");
-
- cmAttribute = new ServiceAttributeMetaData();
- cmAttribute.setName("TransactionManagerService");
- cmAttribute.setValue(txnValue);
- cmAttributes.add(cmAttribute);
-
- cmAttribute = new ServiceAttributeMetaData();
- cmAttribute.setName("LocalTransactions");
-// cmAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(deployment.isLocalTransactions())));
- cmAttributes.add(cmAttribute);
-
- cmAttribute = new ServiceAttributeMetaData();
- cmAttribute.setName("TrackConnectionByTx");
-// cmAttribute.setValue(new ServiceTextValueMetaData(String.valueOf(deployment.isTrackConnectionByTransaction())));
- cmAttributes.add(cmAttribute);
-
- }
-
-
- cmMetaData.setAttributes(cmAttributes);
-
- return cmMetaData;
-
- }
-
- private ServiceMetaData buildConnectionFactoryBinding(ManagedConnectionFactoryDeploymentMetaData deployment) throws Exception
- {
- ServiceMetaData binding = getBinding(deployment);
- ServiceConstructorMetaData constructor = new ServiceConstructorMetaData();
- constructor.setParameters(new Object[]{});
- constructor.setParams(new String[]{});
- binding.setConstructor(constructor);
-
- return binding;
-
- }
-
- private ServiceMetaData getBinding(ManagedConnectionFactoryDeploymentMetaData deployment) throws Exception
- {
- ServiceMetaData bindingMetaData = new ServiceMetaData();
- String jndiName = deployment.getJndiName();
-
- //Constructor
- if(deployment instanceof DataSourceDeploymentMetaData)
- {
- bindingMetaData.setObjectName(new ObjectName("jboss.jca:service=DataSourceBinding,name=" + jndiName));
- bindingMetaData.setCode("org.jboss.resource.adapter.jdbc.remote.WrapperDataSourceService");
-
- if(!deployment.isUseJavaContext())
- {
- ServiceDependencyValueMetaData depends = new ServiceDependencyValueMetaData();
- depends.setDependency(deployment.getJmxInvokerName());
- ServiceAttributeMetaData invAtt = new ServiceAttributeMetaData();
- invAtt.setName("JMXInvokerName");
- invAtt.setValue(depends);
- }
-
- }else
- {
- bindingMetaData.setObjectName(new ObjectName("jboss.jca:service=ConnectionFactoryBinding,name=" + jndiName));
- bindingMetaData.setCode("org.jboss.resource.connectionmanager.ConnectionFactoryBindingService");
-
- }
-
- List<ServiceAttributeMetaData> attributes = new ArrayList<ServiceAttributeMetaData>();
- ServiceAttributeMetaData attribute = new ServiceAttributeMetaData();
- attribute.setName("JndiName");
- attribute.setValue(new ServiceTextValueMetaData(jndiName));
- attributes.add(attribute);
-
- attribute = new ServiceAttributeMetaData();
- attribute.setName("UseJavaContext");
- attribute.setValue(new ServiceTextValueMetaData(String.valueOf(deployment.isUseJavaContext())));
- attributes.add(attribute);
-
- bindingMetaData.setAttributes(attributes);
-
-
- return bindingMetaData;
- }
-
- private ServiceMetaData buildTypeMapping(ManagedConnectionFactoryDeploymentMetaData deployment) throws Exception
- {
- ServiceMetaData typeMetaData = new ServiceMetaData();
- typeMetaData.setObjectName(new ObjectName("jboss.jdbc:service=metadata,datasource=" + deployment.getJndiName()));
- typeMetaData.setCode("org.jboss.ejb.plugins.cmp.jdbc.metadata.DataSourceMetaData");
-
- ServiceConstructorMetaData constructor = new ServiceConstructorMetaData();
- constructor.setParameters(new Object[]{});
- constructor.setParams(new String[]{});
- typeMetaData.setConstructor(constructor);
-
- List<ServiceAttributeMetaData> attributes = new ArrayList<ServiceAttributeMetaData>();
- ServiceDependencyValueMetaData depends = new ServiceDependencyValueMetaData();
- depends.setDependency("jboss.jdbc:service=metadata");
- ServiceAttributeMetaData invAtt = new ServiceAttributeMetaData();
- invAtt.setName("MetadataLibrary");
- invAtt.setValue(depends);
- attributes.add(invAtt);
-
- ServiceAttributeMetaData attribute = new ServiceAttributeMetaData();
- attribute.setName("TypeMapping");
- attribute.setValue(new ServiceTextValueMetaData(deployment.getTypeMapping()));
- attributes.add(attribute);
-
- typeMetaData.setAttributes(attributes);
-
- return typeMetaData;
-
- }
-
- ServiceAttributeMetaData buildTextAttribute(String name, String value)
- {
- ServiceAttributeMetaData attribute = new ServiceAttributeMetaData();
- attribute.setName(name);
- attribute.setValue(new ServiceTextValueMetaData(value));
- return attribute;
- }
-
}
More information about the jboss-cvs-commits
mailing list