[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