[jboss-cvs] JBossAS SVN: r102040 - in trunk/ejb3/src: main/java/org/jboss/as/ejb3/metadata and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Mar 7 11:23:54 EST 2010


Author: jaikiran
Date: 2010-03-07 11:23:54 -0500 (Sun, 07 Mar 2010)
New Revision: 102040

Added:
   trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/
   trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/
   trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/DefaultJMSResourceAdapterMetadataProcessor.java
   trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/DefaultJMSResourceAdapterMetadataProcessorFactory.java
Modified:
   trunk/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml
Log:
JBAS-7633 Added a configurable MC bean to provide the default JMS resource adapter name for EJB3.x MDBs

Added: trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/DefaultJMSResourceAdapterMetadataProcessor.java
===================================================================
--- trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/DefaultJMSResourceAdapterMetadataProcessor.java	                        (rev 0)
+++ trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/DefaultJMSResourceAdapterMetadataProcessor.java	2010-03-07 16:23:54 UTC (rev 102040)
@@ -0,0 +1,78 @@
+/**
+ * 
+ */
+package org.jboss.as.ejb3.metadata.processor;
+
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.process.ProcessingException;
+import org.jboss.metadata.process.processor.JBossMetaDataProcessor;
+
+/**
+ * Responsible for setting the default JMS resource adapter name to be used for EJB3.x Message Driven Beans which
+ *  do *not* explicitly set the resource adapter name
+ * 
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class DefaultJMSResourceAdapterMetadataProcessor implements JBossMetaDataProcessor<JBossMetaData>
+{
+
+   private static Logger logger = Logger.getLogger(DefaultJMSResourceAdapterMetadataProcessor.class);
+
+   private String defaultResourceAdapterName;
+
+   /**
+    * Constructs a {@link DefaultJMSResourceAdapterMetadataProcessor} 
+    *  
+    * @param defaultJMSResourceAdapterName The default resource adapter name to be used
+    *       for EJB3.x MDBs which do not explicitly set the resource adapter name 
+    */
+   public DefaultJMSResourceAdapterMetadataProcessor(String defaultJMSResourceAdapterName)
+   {
+      this.defaultResourceAdapterName = defaultJMSResourceAdapterName;
+   }
+
+   /**
+    * Sets the default JMS resource adapter name to be used for EJB3.x Message Driven Beans which
+    * do *not* explicitly set the resource adapter name
+    */
+   public JBossMetaData process(JBossMetaData metadata) throws ProcessingException
+   {
+      // we are only concerned with EJB3.x
+      if (!metadata.isEJB3x())
+      {
+         return metadata;
+      }
+      JBossEnterpriseBeansMetaData enterpriseBeans = metadata.getEnterpriseBeans();
+      if (enterpriseBeans == null)
+      {
+         return metadata;
+      }
+      for (JBossEnterpriseBeanMetaData enterpriseBean : enterpriseBeans)
+      {
+         // only check for MDBs
+         if (!enterpriseBean.isMessageDriven())
+         {
+            continue;
+         }
+         JBossMessageDrivenBeanMetaData messageDrivenBean = (JBossMessageDrivenBeanMetaData) enterpriseBean;
+         String raName = messageDrivenBean.getResourceAdapterName();
+         // if ra name is not explicitly specified then set the default ra name
+         if (raName == null || raName.trim().isEmpty())
+         {
+            messageDrivenBean.setResourceAdapterName(this.defaultResourceAdapterName);
+            if (logger.isTraceEnabled())
+            {
+               logger.trace("Set the default resource adapter name to " + this.defaultResourceAdapterName
+                     + " for message driven bean " + messageDrivenBean.getEjbName());
+            }
+         }
+      }
+      return metadata;
+   }
+
+}

Added: trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/DefaultJMSResourceAdapterMetadataProcessorFactory.java
===================================================================
--- trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/DefaultJMSResourceAdapterMetadataProcessorFactory.java	                        (rev 0)
+++ trunk/ejb3/src/main/java/org/jboss/as/ejb3/metadata/processor/DefaultJMSResourceAdapterMetadataProcessorFactory.java	2010-03-07 16:23:54 UTC (rev 102040)
@@ -0,0 +1,40 @@
+/**
+ * 
+ */
+package org.jboss.as.ejb3.metadata.processor;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.deployers.metadata.processor.JBossMetaDataProcessorFactory;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.process.processor.JBossMetaDataProcessor;
+
+/**
+ * Creates a {@link DefaultJMSResourceAdapterMetadataProcessor} which is responsible 
+ * for setting the default JMS resource adapter name for EJB3.x message driven beans
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class DefaultJMSResourceAdapterMetadataProcessorFactory implements JBossMetaDataProcessorFactory<JBossMetaData>
+{
+
+   private String defaultRAName;
+
+   /**
+    * Constructs a {@link DefaultJMSResourceAdapterMetadataProcessorFactory}
+    * @param raName The default ra name
+    */
+   public DefaultJMSResourceAdapterMetadataProcessorFactory(String raName)
+   {
+      this.defaultRAName = raName;
+   }
+
+   /**
+    * Returns an instance of {@link DefaultJMSResourceAdapterMetadataProcessor}
+    */
+   public JBossMetaDataProcessor<JBossMetaData> create(DeploymentUnit deploymentUnit)
+   {
+      return new DefaultJMSResourceAdapterMetadataProcessor(this.defaultRAName);
+   }
+
+}

Modified: trunk/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml
===================================================================
--- trunk/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml	2010-03-07 16:16:57 UTC (rev 102039)
+++ trunk/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml	2010-03-07 16:23:54 UTC (rev 102040)
@@ -253,6 +253,13 @@
       </uninstall>
    </bean>
 
-   
+    <!-- Setup the default JMS resource adapter name to be used for EJB3.x Message Driven Beans which
+        do *not* explicitly set the resource adapter name -->
+    <bean name="DefaultJMSRANameProcessor" class="org.jboss.as.ejb3.metadata.processor.DefaultJMSResourceAdapterMetadataProcessorFactory">
+        <constructor>
+            <!-- The default resource adapter name -->
+            <parameter class="java.lang.String">jms-ra.rar</parameter>
+        </constructor>
+    </bean>
 
 </deployment>




More information about the jboss-cvs-commits mailing list