[jboss-cvs] JBossAS SVN: r65003 - in trunk/ejb3/src: resources/META-INF and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Sep 1 01:11:22 EDT 2007


Author: ALRubinger
Date: 2007-09-01 01:11:21 -0400 (Sat, 01 Sep 2007)
New Revision: 65003

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/deployers/EJBRegistrationDeployer.java
   trunk/ejb3/src/resources/META-INF/ejb3-deployers-beans.xml
Log:
EJBTHREE-1040: Added flag to indicate whether deployer should require ejb-jar.xml or jboss.xml for deployment units. 

Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/EJBRegistrationDeployer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/EJBRegistrationDeployer.java	2007-09-01 03:14:51 UTC (rev 65002)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/EJBRegistrationDeployer.java	2007-09-01 05:11:21 UTC (rev 65003)
@@ -56,6 +56,7 @@
    private Kernel kernel;
    private Properties defaultPersistenceProperties;
    private List<String> allowedSuffixes;
+   private boolean requireDeploymentDescriptor;
 
    /**
     * Create a new EJBRegistrationDeployer.
@@ -117,12 +118,26 @@
       this.defaultPersistenceProperties = defaultPersistenceProperties;
    }
 
+   public boolean getRequireDeploymentDescriptor()
+   {
+      return requireDeploymentDescriptor;
+   }
+
+   public void setRequireDeploymentDescriptor(boolean requireDeploymentDescriptor)
+   {
+      this.requireDeploymentDescriptor = requireDeploymentDescriptor;
+   }
+
    public void deploy(VFSDeploymentUnit unit) throws DeploymentException
    {
       try
       {
+         // Initialize
+         boolean hasEjbDd = false;
+         boolean hasJbossDd = false;
+         
          VirtualFile jar = unit.getRoot();
-         if (jar.isLeaf() || ignoredJarsSet.contains(jar.getName())                 )
+         if (jar.isLeaf() || ignoredJarsSet.contains(jar.getName()))
          {
             log.trace("EJBRegistrationDeployer ignoring: " + jar.getName());
             return;
@@ -132,15 +147,35 @@
             log.trace("EJBRegistrationDeployer suffix not allowed: " + jar.getName());
             return;
          }
-         log.debug("********* EJBRegistrationDepoyer Begin Unit: " + unit.getSimpleName() + " jar: " + jar.getName());
+         
          VirtualFile ejbjar = unit.getMetaDataFile("ejb-jar.xml");
          if (ejbjar != null)
          {
             InputStream is = ejbjar.openStream();
             boolean has30EjbJarXml = EJB3Deployer.has30EjbJarXml(is);
             is.close();
-            if (!has30EjbJarXml) return;
+            if (!has30EjbJarXml) {
+               return;
+            }
+            else {
+               hasEjbDd = true;
+            }
          }
+         
+         // Determine if jboss.xml is specified
+         hasJbossDd = unit.getMetaDataFile("jboss.xml")!=null;
+         
+         // If DDs are required and none are present, skip deployment
+         // EJBTHREE-1040
+         if (this.getRequireDeploymentDescriptor() && !(hasJbossDd || hasEjbDd))
+         {
+            log.trace(EJBRegistrationDeployer.class.getSimpleName() + " skipping deployment \"" + unit.getSimpleName()
+                  + "\", jar: \"" + jar.getName()
+                  + "\" - either EJB3 Deployment Descriptor or \"jboss.xml\" is required and neither were found.");
+            return;
+         }
+            
+         log.debug("********* EJBRegistrationDepoyer Begin Unit: " + unit.getSimpleName() + " jar: " + jar.getName());
          DeploymentScope scope = null;
          VFSDeploymentUnit parent = unit.getParent();
          if (parent != null && parent.getSimpleName().endsWith(".ear")) // todo should look for metadata instead of ".ear"

Modified: trunk/ejb3/src/resources/META-INF/ejb3-deployers-beans.xml
===================================================================
--- trunk/ejb3/src/resources/META-INF/ejb3-deployers-beans.xml	2007-09-01 03:14:51 UTC (rev 65002)
+++ trunk/ejb3/src/resources/META-INF/ejb3-deployers-beans.xml	2007-09-01 05:11:21 UTC (rev 65003)
@@ -13,7 +13,21 @@
       <property name="type">ejb3x</property>
       <property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
       <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
-      <property name="defaultPersistenceProperties"><inject bean="DefaultPersistenceProperties" property="properties"/></property>
+      <property name="defaultPersistenceProperties"><inject bean="DefaultPersistenceProperties" property="properties"/></property>
+      
+      <!-- 
+   
+      Configure the deployer to optionally require a deployment 
+      descriptor for deployable units.  By turning this switch to "true", 
+      "META-INF/jboss.xml" or the EJB3 Deployment Descriptor "META-INF/ejb-jar.xml" 
+      will be required for deployment, enabling a performance increace in deployment by
+      not scanning for annotations in non-deployable EJB3 JARs.
+      
+      Default for this value is "false".
+      
+      -->
+      <property name="requireDeploymentDescriptor">false</property>
+      
       <property name="ignoredJarsSet">
          <set elementClass="java.lang.String">
             <value>snmp-adaptor.jar</value>




More information about the jboss-cvs-commits mailing list