[jboss-cvs] JBossAS SVN: r94005 - branches/Branch_5_x/server/src/main/org/jboss/deployment.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Sep 24 16:46:13 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-09-24 16:46:13 -0400 (Thu, 24 Sep 2009)
New Revision: 94005

Modified:
   branches/Branch_5_x/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java
Log:
[JBAS-7288] AnnotationMetaDataDeployer failing with NoClassDefFoundError

Modified: branches/Branch_5_x/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java
===================================================================
--- branches/Branch_5_x/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java	2009-09-24 20:25:53 UTC (rev 94004)
+++ branches/Branch_5_x/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java	2009-09-24 20:46:13 UTC (rev 94005)
@@ -54,10 +54,12 @@
  * annotations
  * 
  * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
  * @version $Revision$
  */
 public class AnnotationMetaDataDeployer extends AbstractDeployer
 {
+   public static final String ANNOTATION_META_DATA_COMPLETE = "org.jboss.deployment.annotation.metadata.complete";
    public static final String EJB_ANNOTATED_ATTACHMENT_NAME = "annotated."+EjbJarMetaData.class.getName();
    public static final String CLIENT_ANNOTATED_ATTACHMENT_NAME = "annotated."+ApplicationClientMetaData.class.getName();
    public static final String WEB_ANNOTATED_ATTACHMENT_NAME = "annotated."+WebMetaData.class.getName();
@@ -111,35 +113,47 @@
    protected void deploy(VFSDeploymentUnit unit)
       throws DeploymentException
    {
+	  boolean isComplete = this.isMetaDataCompleteIsDefault();
+	  
+	  // Allow deployment units to say that they are metadata complete
+	  // in terms of annotation processing
+      if (isComplete == false)
+      {
+    	  Boolean unitComplete = unit.getAttachment(ANNOTATION_META_DATA_COMPLETE, Boolean.class);
+    	  isComplete = Boolean.TRUE.equals(unitComplete);
+      }
+      
       /* Ignore any spec metadata complete deployments. This expects that a
-       deployment unit only represents one of the client, ejb or web
-       deployments and its metadata completeness applies to the unit in terms
-       of whether annotations should be scanned for.
-       */
-      boolean isComplete = this.isMetaDataCompleteIsDefault();
+      deployment unit only represents one of the client, ejb or web
+      deployments and its metadata completeness applies to the unit in terms
+      of whether annotations should be scanned for.
+      */
       EjbJarMetaData ejbJarMetaData = unit.getAttachment(EjbJarMetaData.class);
-      if(ejbJarMetaData != null && ejbJarMetaData instanceof EjbJar3xMetaData)
-      {
-         isComplete |= ((EjbJar3xMetaData) ejbJarMetaData).isMetadataComplete();
-      }
-      else if(ejbJarMetaData != null)
-      {
-         // Any ejb-jar.xml 2.1 or earlier deployment is metadata complete
-         isComplete = true;         
-      }
       WebMetaData webMetaData = unit.getAttachment(WebMetaData.class);
-      if(webMetaData != null && webMetaData instanceof Web25MetaData)
+      ApplicationClientMetaData clientMetaData = unit.getAttachment(ApplicationClientMetaData.class);
+      if (isComplete == false)
       {
-         isComplete |= ((Web25MetaData)webMetaData).isMetadataComplete();
+          if(ejbJarMetaData != null && ejbJarMetaData instanceof EjbJar3xMetaData)
+          {
+             isComplete |= ((EjbJar3xMetaData) ejbJarMetaData).isMetadataComplete();
+          }
+          else if(ejbJarMetaData != null)
+          {
+             // Any ejb-jar.xml 2.1 or earlier deployment is metadata complete
+             isComplete = true;         
+          }
+          if(webMetaData != null && webMetaData instanceof Web25MetaData)
+          {
+             isComplete |= ((Web25MetaData)webMetaData).isMetadataComplete();
+          }
+          else if(webMetaData != null)
+          {
+             // Any web.xml 2.4 or earlier deployment is metadata complete
+             isComplete = true;
+          }
+          if(clientMetaData != null)
+             isComplete |= clientMetaData.isMetadataComplete();
       }
-      else if(webMetaData != null)
-      {
-         // Any web.xml 2.4 or earlier deployment is metadata complete
-         isComplete = true;
-      }
-      ApplicationClientMetaData clientMetaData = unit.getAttachment(ApplicationClientMetaData.class);
-      if(clientMetaData != null)
-         isComplete |= clientMetaData.isMetadataComplete();
 
       if(isComplete)
       {




More information about the jboss-cvs-commits mailing list