[jboss-cvs] JBossAS SVN: r58694 - in trunk/server/src: etc/deployers main/org/jboss/ejb main/org/jboss/ejb/deployers

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 27 17:22:13 EST 2006


Author: scott.stark at jboss.org
Date: 2006-11-27 17:22:09 -0500 (Mon, 27 Nov 2006)
New Revision: 58694

Modified:
   trunk/server/src/etc/deployers/ejb-deployer-beans.xml
   trunk/server/src/main/org/jboss/ejb/EjbModuleMBean.java
   trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
Log:
Add a dependency on the CachedConnectionManager service used by the CachedConnectionInterceptor to the EjbModule if the EjbDeployer cachedConnectionManagerName property is set.

Modified: trunk/server/src/etc/deployers/ejb-deployer-beans.xml
===================================================================
--- trunk/server/src/etc/deployers/ejb-deployer-beans.xml	2006-11-27 21:09:15 UTC (rev 58693)
+++ trunk/server/src/etc/deployers/ejb-deployer-beans.xml	2006-11-27 22:22:09 UTC (rev 58694)
@@ -38,7 +38,9 @@
 
         <!-- The EJBDeployer needs the JTA transaction manager service -->
         <property name="transactionManagerServiceName">jboss:service=TransactionManager</property>
-        <!-- The dynamic class loading simple web server -->
-        <property name="webServiceName">jboss:service=WebService</property>
+       <!-- The dynamic class loading simple web server -->
+       <property name="webServiceName">jboss:service=WebService</property>
+       <!-- The CachedConnectionManager service used by the CachedConnectionInterceptor -->
+       <property name="cachedConnectionManagerName">jboss.jca:service=CachedConnectionManager</property>
     </bean>
 </deployment>

Modified: trunk/server/src/main/org/jboss/ejb/EjbModuleMBean.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/EjbModuleMBean.java	2006-11-27 21:09:15 UTC (rev 58693)
+++ trunk/server/src/main/org/jboss/ejb/EjbModuleMBean.java	2006-11-27 22:22:09 UTC (rev 58694)
@@ -21,6 +21,8 @@
 */
 package org.jboss.ejb;
 
+import javax.management.ObjectName;
+
 import org.jboss.tm.TransactionManagerFactory;
 
 /**
@@ -28,13 +30,15 @@
  * @see Container
  * @see EJBDeployer
  */
-public interface EjbModuleMBean extends org.jboss.system.ServiceMBean {
-
+public interface EjbModuleMBean extends org.jboss.system.ServiceMBean
+{
    /**
     * Get all containers in this deployment unit.
     * @return a collection of containers for each enterprise bean in this deployment unit.
     */
   java.util.Collection getContainers() ;
 
-   void setTransactionManagerFactory(TransactionManagerFactory tmFactory);
+  void setTransactionManagerFactory(TransactionManagerFactory tmFactory);
+  public ObjectName getWebServiceName();
+  public void setWebServiceName(ObjectName webServiceName);
 }

Modified: trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java	2006-11-27 21:09:15 UTC (rev 58693)
+++ trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java	2006-11-27 22:22:09 UTC (rev 58694)
@@ -35,6 +35,7 @@
 import org.jboss.mx.util.ObjectNameConverter;
 import org.jboss.system.metadata.ServiceAttributeMetaData;
 import org.jboss.system.metadata.ServiceConstructorMetaData;
+import org.jboss.system.metadata.ServiceDependencyMetaData;
 import org.jboss.system.metadata.ServiceDependencyValueMetaData;
 import org.jboss.system.metadata.ServiceMetaData;
 
@@ -47,8 +48,12 @@
  */
 public class EjbDeployer extends AbstractSimpleRealDeployer<ApplicationMetaData>
 {
+   /** */
    private String transactionManagerServiceName;
+   /** */
    private String webServiceName;
+   /** The CachedConnectionManager service used by the CachedConnectionInterceptor */
+   private String ccmServiceName;
 
    /**
     * A utility method that takes a deployment unit name and strips it down to the base war
@@ -97,6 +102,16 @@
       this.webServiceName = webServiceName;
    }
 
+   public String getCachedConnectionManagerName()
+   {
+      return ccmServiceName;
+   }
+
+   public void setCachedConnectionManagerName(String ccmServiceName)
+   {
+      this.ccmServiceName = ccmServiceName;
+   }
+
    @Override
    public void deploy(DeploymentUnit unit, ApplicationMetaData deployment)
       throws DeploymentException
@@ -156,9 +171,25 @@
       dependencyValue.setProxyType("attribute");
       attr.setValue(dependencyValue);
       attrs.add(attr);
-
+      // Add injection of the WebServiceName
+      ServiceAttributeMetaData ws = new ServiceAttributeMetaData();
+      ws.setName("WebServiceName");
+      ServiceDependencyValueMetaData wsDepends = new ServiceDependencyValueMetaData();
+      wsDepends.setDependency(getWebServiceName());
+      ws.setValue(wsDepends);
+      attrs.add(ws);
       ejbModule.setAttributes(attrs);
 
+      // CCM for CachedConnectionInterceptor dependency
+      if( ccmServiceName != null && ccmServiceName.length() > 0 )
+      {
+         List<ServiceDependencyMetaData> dependencies = new ArrayList<ServiceDependencyMetaData>();
+         ServiceDependencyMetaData ccm = new ServiceDependencyMetaData();
+         ccm.setIDependOn(ccmServiceName);
+         dependencies.add(ccm);
+         ejbModule.setDependencies(dependencies);
+      }
+
       unit.addAttachment(ServiceMetaData.class, ejbModule);
    }
 
@@ -193,45 +224,4 @@
       return ejbModuleName;
    }
 
-   protected void deployEjbModule(DeploymentUnit unit, ApplicationMetaData metaData)
-      throws Exception
-   {
-      log.debug("deployWebModule");
-      try
-      {
-         ServiceMetaData ejbModule = new ServiceMetaData();
-         ObjectName objectName = getObjectName(unit, metaData);
-         ejbModule.setObjectName(objectName);
-         ejbModule.setCode(EjbModule.class.getName());
-         // EjbModule(DeploymentUnit)
-         ServiceConstructorMetaData constructor = new ServiceConstructorMetaData();
-         constructor.setSignature(new String[] { DeploymentUnit.class.getName()});
-         constructor.setParameters(new Object[] {unit, this, metaData});
-         ejbModule.setConstructor(constructor);
-
-         List<ServiceAttributeMetaData> attributes = new ArrayList<ServiceAttributeMetaData>();
-         // Add injection of the TM
-         ServiceAttributeMetaData tm = new ServiceAttributeMetaData();
-         tm.setName("txMgr");
-         String tmProxyType = "javax.transaction.TransactionManager";
-         ServiceDependencyValueMetaData tmDepends = new ServiceDependencyValueMetaData(transactionManagerServiceName, tmProxyType);
-         tm.setValue(tmDepends);
-         attributes.add(tm);
-         // Add injection of the WebServiceName
-         ServiceAttributeMetaData ws = new ServiceAttributeMetaData();
-         ws.setName("webServiceName");
-         ServiceDependencyValueMetaData wsDepends = new ServiceDependencyValueMetaData();
-         wsDepends.setDependency(webServiceName);
-         attributes.add(ws);
-         ejbModule.setAttributes(attributes);
-
-         // TODO could create multiple components for the deployment
-         unit.addAttachment(ServiceMetaData.class, ejbModule);
-      }
-      catch (Exception e)
-      {
-         throw DeploymentException.rethrowAsDeploymentException("Error creating rar deployment " + unit.getName(), e);
-      }
-
-   }
 }




More information about the jboss-cvs-commits mailing list