[jboss-cvs] JBossAS SVN: r82665 - in projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer: metadata and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 7 11:30:40 EST 2009


Author: alesj
Date: 2009-01-07 11:30:40 -0500 (Wed, 07 Jan 2009)
New Revision: 82665

Modified:
   projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/ext/JBossWebBeansMetaData.java
   projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/PostWebMetadataDeployer.java
   projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WBEjbInterceptorMetadataDeployer.java
   projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WebBeansAwareMetadataDeployer.java
Log:
Cache wb deployment check.
Add interceptor for any wb deployment found.

Modified: projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/ext/JBossWebBeansMetaData.java
===================================================================
--- projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/ext/JBossWebBeansMetaData.java	2009-01-07 16:09:56 UTC (rev 82664)
+++ projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/ext/JBossWebBeansMetaData.java	2009-01-07 16:30:40 UTC (rev 82665)
@@ -34,8 +34,10 @@
 public class JBossWebBeansMetaData implements Serializable
 {
    private static final long serialVersionUID = 1l;
+
    public static final String WEB_BEANS_FILES = "WEB_BEANS_FILES";
    public static final String WEB_BEANS_CLASSPATH = "WEB_BEANS_CLASSPATH";
+   public static final String WEB_BEANS_DEPLOYMENT_FLAG = "WEB_BEANS_DEPLOYMENT_FLAG"; 
 
    private VirtualFile file;
 

Modified: projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/PostWebMetadataDeployer.java
===================================================================
--- projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/PostWebMetadataDeployer.java	2009-01-07 16:09:56 UTC (rev 82664)
+++ projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/PostWebMetadataDeployer.java	2009-01-07 16:30:40 UTC (rev 82665)
@@ -52,7 +52,7 @@
 
    protected void internalDeploy(VFSDeploymentUnit unit, JBossWebMetaData deployment, VirtualFile wbXml) throws DeploymentException
    {
-      if (wbXml != null || checkForWebBeansFiles(unit.getTopLevel()))
+      if (wbXml != null || checkForWebBeansFiles(unit))
       {
          List<ListenerMetaData> listeners = deployment.getListeners();
          if (listeners == null)

Modified: projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WBEjbInterceptorMetadataDeployer.java
===================================================================
--- projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WBEjbInterceptorMetadataDeployer.java	2009-01-07 16:09:56 UTC (rev 82664)
+++ projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WBEjbInterceptorMetadataDeployer.java	2009-01-07 16:30:40 UTC (rev 82665)
@@ -31,6 +31,7 @@
 import org.jboss.metadata.ejb.spec.EjbJarMetaData;
 import org.jboss.metadata.ejb.spec.InterceptorMetaData;
 import org.jboss.metadata.ejb.spec.InterceptorsMetaData;
+import org.jboss.webbeans.integration.microcontainer.deployer.ext.JBossWebBeansMetaData;
 
 /**
  * Adds wb custom interceptor to ejb deployments.
@@ -48,6 +49,7 @@
       addOutput(EjbJarMetaData.class);
       addInput(JBossMetaData.class);
       addOutput(JBossMetaData.class);
+      addInput(JBossWebBeansMetaData.WEB_BEANS_FILES);
       setStage(DeploymentStages.POST_PARSE);
       // create interceptor metadata instance
       SBI = new InterceptorMetaData();
@@ -57,7 +59,7 @@
    public void deploy(VFSDeploymentUnit unit) throws DeploymentException
    {
       EjbJarMetaData ejbjar = unit.getAttachment(EjbJarMetaData.class);
-      if (ejbjar != null && unit.getMetaDataFile("web-beans.xml") != null)
+      if (ejbjar != null && WebBeansAwareMetadataDeployer.checkForWebBeansFiles(unit))
       {
          InterceptorsMetaData interceptors = ejbjar.getInterceptors();
          if (interceptors == null && ejbjar instanceof EjbJar3xMetaData)
@@ -74,7 +76,7 @@
       }
 
       JBossMetaData jbmd = unit.getAttachment(JBossMetaData.class);
-      if (jbmd != null && unit.getMetaDataFile("web-beans.xml") != null)
+      if (jbmd != null && WebBeansAwareMetadataDeployer.checkForWebBeansFiles(unit))
       {
          InterceptorsMetaData interceptors = jbmd.getInterceptors();
          if (interceptors == null)

Modified: projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WebBeansAwareMetadataDeployer.java
===================================================================
--- projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WebBeansAwareMetadataDeployer.java	2009-01-07 16:09:56 UTC (rev 82664)
+++ projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/metadata/WebBeansAwareMetadataDeployer.java	2009-01-07 16:30:40 UTC (rev 82665)
@@ -61,12 +61,33 @@
 
    /**
     * Check deployment hierarchy for web-beans.xml files.
+    * It check the 'cached' flag.
     *
     * @param unit the deployment unit
     * @return true if web-beans.xml files exist, false otherwise
     */
-   protected boolean checkForWebBeansFiles(DeploymentUnit unit)
+   static boolean checkForWebBeansFiles(DeploymentUnit unit)
    {
+      DeploymentUnit top = unit.getTopLevel();
+
+      Boolean flag = top.getAttachment(JBossWebBeansMetaData.WEB_BEANS_DEPLOYMENT_FLAG, Boolean.class);
+      if (flag != null)
+         return flag;
+
+      flag = searchForWebBeans(top);
+      top.addAttachment(JBossWebBeansMetaData.WEB_BEANS_DEPLOYMENT_FLAG, flag, Boolean.class);
+
+      return flag;
+   }
+
+   /**
+    * Search deployment hierarchy for web-beans.xml files.
+    *
+    * @param unit the deployment unit
+    * @return true if web-beans.xml files exist, false otherwise
+    */
+   private static boolean searchForWebBeans(DeploymentUnit unit)
+   {
       Collection files = unit.getAttachment(JBossWebBeansMetaData.WEB_BEANS_FILES, Collection.class);
       if (files != null && files.isEmpty() == false)
          return true;
@@ -76,7 +97,7 @@
       {
          for (DeploymentUnit child : children)
          {
-            boolean result = checkForWebBeansFiles(child);
+            boolean result = searchForWebBeans(child);
             if (result)
                return true;
          }




More information about the jboss-cvs-commits mailing list