[jboss-cvs] JBossAS SVN: r111365 - in trunk/server: src/main/java/org/jboss/web/deployers and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri May 13 05:35:38 EDT 2011
Author: jaikiran
Date: 2011-05-13 05:35:38 -0400 (Fri, 13 May 2011)
New Revision: 111365
Modified:
trunk/server/pom.xml
trunk/server/src/main/java/org/jboss/web/deployers/SpecCompliantWarAnnotationDeployer.java
Log:
JBAS-8318 Include @ManagedBean interceptors for annotation scanning
Modified: trunk/server/pom.xml
===================================================================
--- trunk/server/pom.xml 2011-05-13 07:08:06 UTC (rev 111364)
+++ trunk/server/pom.xml 2011-05-13 09:35:38 UTC (rev 111365)
@@ -332,8 +332,13 @@
<groupId>org.jboss</groupId>
<artifactId>jboss-common-core</artifactId>
</dependency>
-
+
<dependency>
+ <groupId>org.jboss.managed.beans</groupId>
+ <artifactId>managed-beans-metadata</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.metadata</groupId>
<artifactId>jboss-metadata-common</artifactId>
<exclusions>
Modified: trunk/server/src/main/java/org/jboss/web/deployers/SpecCompliantWarAnnotationDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/SpecCompliantWarAnnotationDeployer.java 2011-05-13 07:08:06 UTC (rev 111364)
+++ trunk/server/src/main/java/org/jboss/web/deployers/SpecCompliantWarAnnotationDeployer.java 2011-05-13 09:35:38 UTC (rev 111365)
@@ -40,6 +40,9 @@
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.deployment.JSFDeployment;
+import org.jboss.interceptor.spi.metadata.InterceptorMetadata;
+import org.jboss.managed.bean.metadata.ManagedBeanDeploymentMetaData;
+import org.jboss.managed.bean.metadata.ManagedBeanMetaData;
import org.jboss.metadata.annotation.creator.AnnotationContext;
import org.jboss.metadata.annotation.creator.web.Web30MetaDataCreator;
import org.jboss.metadata.annotation.finder.AnnotationFinder;
@@ -88,6 +91,9 @@
{
// run after the JSFDeployment attaching deployer(s) have run, so that we can get hold of the jsf managed beans
this.addInput(JSFDeployment.class);
+ // Java EE Managed bean annotation deployer should run before this, so that we can get hold of Java EE managed beans
+ // and associated interceptors info
+ this.addInput(ManagedBeanDeploymentMetaData.class);
}
@Override
@@ -112,7 +118,8 @@
Collection<Class<?>> specEligibleResourceInjectionClasses = this.getResourceInjectionEligibleWebAppClasses(resourceIndex, classpath);
boolean metaData = false;
- JSFDeployment jsfDeployment = unit.getAttachment(JSFDeployment.class);
+ final JSFDeployment jsfDeployment = unit.getAttachment(JSFDeployment.class);
+ final ManagedBeanDeploymentMetaData managedBeanDeployment = unit.getAttachment(ManagedBeanDeploymentMetaData.class);
for (VirtualFile path : classpath)
{
Collection<Class<?>> eligibleAnnotatedClasses = new HashSet<Class<?>>();
@@ -120,7 +127,7 @@
{
Collection<Class<?>> annotatedClasses = resourceIndex.getAnnotatedClasses(path, annotation);
// include the jsf and Java EE6 managed beans as eligible for resource injection
- specEligibleResourceInjectionClasses.addAll(this.getManagedBeans(jsfDeployment, annotatedClasses));
+ specEligibleResourceInjectionClasses.addAll(this.getManagedBeansRelatedClasses(jsfDeployment, managedBeanDeployment, annotatedClasses));
// filter out any extra non-spec classes which shouldn't be picked up for resource injection processing
eligibleAnnotatedClasses.addAll(this.retainResourceInjectionEligibleWebAppClasses(specEligibleResourceInjectionClasses, annotatedClasses));
}
@@ -237,7 +244,7 @@
return eligibleClasses;
}
- private Collection<Class<?>> getManagedBeans(final JSFDeployment jsfDeployment, Collection<Class<?>> classes)
+ private Collection<Class<?>> getManagedBeansRelatedClasses(final JSFDeployment jsfDeployment, final ManagedBeanDeploymentMetaData managedBeanDeployment, Collection<Class<?>> classes)
{
if (classes == null || classes.isEmpty())
{
@@ -251,7 +258,7 @@
Collection<Class<?>> managedBeans = new HashSet<Class<?>>();
for (Class<?> klass : classes)
{
- if (this.isJavaEE6ManagedBean(klass))
+ if (this.isJavaEE6ManagedBean(klass) || this.isInterceptorToJavaEE6ManagedBean(klass, managedBeanDeployment))
{
managedBeans.add(klass);
}
@@ -276,4 +283,27 @@
{
return klass.isAnnotationPresent(ManagedBean.class);
}
+
+ private boolean isInterceptorToJavaEE6ManagedBean(final Class<?> klass, final ManagedBeanDeploymentMetaData managedBeanDeploymentMetaData) {
+ if (managedBeanDeploymentMetaData == null) {
+ return false;
+ }
+ Collection<ManagedBeanMetaData> managedBeans = managedBeanDeploymentMetaData.getManagedBeans();
+ if (managedBeans == null || managedBeans.isEmpty()) {
+ return false;
+ }
+ for (ManagedBeanMetaData managedBean : managedBeans) {
+ Collection<InterceptorMetadata<?>> interceptors = managedBean.getAllInterceptors();
+ if (interceptors == null || interceptors.isEmpty()) {
+ continue;
+ }
+ for (InterceptorMetadata<?> interceptor : interceptors) {
+ final String interceptorClassName = interceptor.getInterceptorClass().getClassName();
+ if (klass.getName().equals(interceptorClassName)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
}
More information about the jboss-cvs-commits
mailing list