[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