[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