[jboss-cvs] JBossAS SVN: r93949 - in trunk: server/src/main/org/jboss/web/deployers and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Sep 23 07:21:40 EDT 2009


Author: remy.maucherat at jboss.com
Date: 2009-09-23 07:21:40 -0400 (Wed, 23 Sep 2009)
New Revision: 93949

Modified:
   trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java
   trunk/server/src/main/org/jboss/deployment/OptAnnotationMetaDataDeployer.java
   trunk/server/src/main/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java
   trunk/tomcat/src/resources/war-deployers-jboss-beans.xml
Log:
- Handle annotations from "classes". I guess the order stuff made me forget about that.
- Add the old AnnotationMetaDataDeployer in the web deployer config for now.
- Mark OptAnnotationMetaDataDeployer as needing an update to support Servlet 3.0.

Modified: trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java	2009-09-23 11:11:26 UTC (rev 93948)
+++ trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java	2009-09-23 11:21:40 UTC (rev 93949)
@@ -149,7 +149,6 @@
       ApplicationClientMetaData clientMetaData = unit.getAttachment(ApplicationClientMetaData.class);
       if(clientMetaData != null)
          isComplete |= clientMetaData.isMetadataComplete();
-
       if(isComplete)
       {
          log.debug("Deployment is metadata-complete, skipping annotation processing"
@@ -160,7 +159,6 @@
                );
          return;
       }
-
       VirtualFile root = unit.getRoot();
       boolean isLeaf = true;
       try
@@ -177,8 +175,7 @@
       if(classpath == null || classpath.isEmpty())
          return;
 
-      boolean trace = log.isTraceEnabled();
-      if (trace)
+      if (log.isTraceEnabled())
          log.trace("Deploying annotations for unit: " + unit + ", classpath: " + classpath);
 
       try
@@ -291,13 +288,15 @@
       for (VirtualFile path : classes.keySet())
       {
          WebMetaData annotationMetaData = creator.create(classes.get(path));
+         log.debug("Add annotations: " + WEB_ANNOTATED_ATTACHMENT_NAME + ":" + path.getName());
          if (annotationMetaData != null)
          {
             unit.addAttachment(WEB_ANNOTATED_ATTACHMENT_NAME + ":" + path.getName(), annotationMetaData, WebMetaData.class);
             metaData = true;
          }
       }
-      unit.addAttachment(WEB_ANNOTATED_ATTACHMENT_NAME, Boolean.TRUE);
+      if (metaData)
+         unit.addAttachment(WEB_ANNOTATED_ATTACHMENT_NAME, Boolean.TRUE);
    }
 
    /**

Modified: trunk/server/src/main/org/jboss/deployment/OptAnnotationMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/OptAnnotationMetaDataDeployer.java	2009-09-23 11:11:26 UTC (rev 93948)
+++ trunk/server/src/main/org/jboss/deployment/OptAnnotationMetaDataDeployer.java	2009-09-23 11:21:40 UTC (rev 93949)
@@ -51,6 +51,7 @@
 /**
  * A POST_CLASSLOADER deployer which generates metadata from annotations.
  * Optimized option to its super class.
+ * TODO: Will need to support per JAR annotations for Servlet 3.0
  *
  * @author Ales.Justin at jboss.org
  */

Modified: trunk/server/src/main/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java	2009-09-23 11:11:26 UTC (rev 93948)
+++ trunk/server/src/main/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java	2009-09-23 11:21:40 UTC (rev 93949)
@@ -324,6 +324,16 @@
       if (!isComplete)
       {
          WebCommonMetaData mergedFragmentMetaData = new WebCommonMetaData();
+         if (specMetaData == null)
+            specMetaData = new WebMetaData();
+         String key = AnnotationMetaDataDeployer.WEB_ANNOTATED_ATTACHMENT_NAME + ":classes";
+         WebMetaData annotatedMetaData = unit.getAttachment(key, WebMetaData.class);
+         if (annotatedMetaData != null)
+         {
+            WebMetaData specMerged = new WebMetaData();
+            AnnotationMergedView.merge(specMerged, specMetaData, annotatedMetaData);
+            specMetaData.augment(specMerged, null, true);
+         }
          for (String jar : order)
          {
             WebFragmentMetaData webFragmentMetaData = webFragments.get(jar);
@@ -332,8 +342,8 @@
             {
                webFragmentMetaData = new WebFragmentMetaData();
             }
-            String key = AnnotationMetaDataDeployer.WEB_ANNOTATED_ATTACHMENT_NAME + ":" + jar;
-            WebMetaData annotatedMetaData = unit.getAttachment(key, WebMetaData.class);
+            key = AnnotationMetaDataDeployer.WEB_ANNOTATED_ATTACHMENT_NAME + ":" + jar;
+            annotatedMetaData = unit.getAttachment(key, WebMetaData.class);
             if (!webFragmentMetaData.isMetadataComplete() && annotatedMetaData != null)
             {
                // Merge annotation corresponding to the JAR
@@ -353,8 +363,6 @@
                DeploymentException.rethrowAsDeploymentException("Deployment error processing fragment for JAR: " + jar, e);
             }
          }
-         if (specMetaData == null)
-            specMetaData = new WebMetaData();
          specMetaData.augment(mergedFragmentMetaData, null, true);
       }
 

Modified: trunk/tomcat/src/resources/war-deployers-jboss-beans.xml
===================================================================
--- trunk/tomcat/src/resources/war-deployers-jboss-beans.xml	2009-09-23 11:11:26 UTC (rev 93948)
+++ trunk/tomcat/src/resources/war-deployers-jboss-beans.xml	2009-09-23 11:21:40 UTC (rev 93949)
@@ -18,7 +18,6 @@
        <property name="contextInfoOrder">1000</property>
    </bean>
 
-   <!-- web.xml parsing deployer -->
    <bean name="WebAppParsingDeployer" class="org.jboss.deployment.WebAppParsingDeployer">
       <property name="relativeOrder">2000</property>
    </bean>
@@ -31,6 +30,14 @@
    <bean name="JBossWebAppParsingDeployer" class="org.jboss.deployment.JBossWebAppParsingDeployer">
       <property name="relativeOrder">2003</property>
    </bean>
+   <bean name="ServletContainerInitializerDeployer" class="org.jboss.deployment.ServletContainerInitializerDeployer">
+      <property name="relativeOrder">2004</property>
+   </bean>
+   <!-- Temporary for Servlet 3.0 annotation support, large performance drop ... -->
+   <bean name="WebAnnotationMetaDataDeployer" class="org.jboss.deployment.AnnotationMetaDataDeployer">
+      <property name="relativeOrder">2005</property>
+      <property name="metaDataCompleteIsDefault">false</property>
+   </bean>
 
   <!-- See JBAS-6062 -->
    <bean name="WebXmlLessDeployer" class="org.jboss.deployment.LegacyWebXmlLessDeployer"/>




More information about the jboss-cvs-commits mailing list