[jboss-cvs] JBossAS SVN: r84049 - in projects/ejb3/trunk: plugin and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 10 06:55:27 EST 2009


Author: jaikiran
Date: 2009-02-10 06:55:26 -0500 (Tue, 10 Feb 2009)
New Revision: 84049

Modified:
   projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/registry/InterceptorRegistry.java
   projects/ejb3/trunk/plugin/pom.xml
Log:
EJBTHREE-1709 Added the missing check for applicable interceptors

Modified: projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/registry/InterceptorRegistry.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/registry/InterceptorRegistry.java	2009-02-10 11:30:48 UTC (rev 84048)
+++ projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/registry/InterceptorRegistry.java	2009-02-10 11:55:26 UTC (rev 84049)
@@ -41,53 +41,51 @@
 
 /**
  * The interceptor registry for a given EJB.
- * 
+ *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version $Revision: $
  */
 public class InterceptorRegistry
 {
    private static final Logger log = Logger.getLogger(InterceptorRegistry.class);
-   
+
    private Advisor advisor;
-   
+
    private List<Class<?>> interceptorClasses = new ArrayList<Class<?>>();
    private List<Class<?>> readOnlyInterceptorClasses = Collections.unmodifiableList(interceptorClasses);
-   
+
    /**
     * Interceptors who are interested in lifecycle callbacks.
     */
    private List<Class<?>> lifecycleInterceptorClasses = new ArrayList<Class<?>>();
    private List<Class<?>> readOnlyLifecycleInterceptorClasses = Collections.unmodifiableList(lifecycleInterceptorClasses);
-   
+
    private Map<Method, List<Class<?>>> applicableInterceptorClasses = new HashMap<Method, List<Class<?>>>();
-   
+
    public InterceptorRegistry(Advisor advisor)
    {
       assert advisor != null : "advisor is null";
-      
+
       this.advisor = advisor;
-      
+
       initialize();
    }
-   
+
    public List<Class<?>> getApplicableInterceptorClasses(Method method)
    {
       List<Class<?>> methodApplicableInterceptorClasses = applicableInterceptorClasses.get(method);
-      //TODO
-      //FIXME: This assertion is valid, but EJB3 Core needs to declare virtual methods without interceptors
-      // such that they make the Map of MethodHashes, and these then get improperly placed in the
-      // Joinpoint Map, which ends up here...
-      //assert methodApplicableInterceptorClasses != null : "applicable interceptors is non-existent for " + method;
-      log.warn("applicable interceptors is non-existent for " + method);
+      if (methodApplicableInterceptorClasses == null)
+      {
+         log.warn("applicable interceptors is non-existent for " + method);
+      }
       return methodApplicableInterceptorClasses;
    }
-   
+
    public List<Class<?>> getInterceptorClasses()
    {
       return readOnlyInterceptorClasses;
    }
-   
+
    /**
     * All default and class interceptors (not method interceptors (12.7 footnote 57)
     * @return
@@ -96,15 +94,15 @@
    {
       return readOnlyLifecycleInterceptorClasses;
    }
-   
+
    private void initialize()
    {
-      // The lifecycle interceptor classes are: 
+      // The lifecycle interceptor classes are:
       // 1. the interceptors listed in an interceptor-order
       // or
       // 2. default interceptor + class interceptors
       // where set 1 = set 2 + optionally extra interceptors
-      
+
       DefaultInterceptors defaultInterceptorsAnnotation = (DefaultInterceptors) advisor.resolveAnnotation(DefaultInterceptors.class);
       List<Class<?>> defaultInterceptorClasses = new ArrayList<Class<?>>();
       if(defaultInterceptorsAnnotation != null)
@@ -119,7 +117,7 @@
       {
          lifecycleInterceptorClasses.addAll(defaultInterceptorClasses);
       }
-      
+
       Interceptors interceptorsAnnotation = (Interceptors) advisor.resolveAnnotation(Interceptors.class);
       List<Class<?>> classInterceptorClasses = new ArrayList<Class<?>>();
       if(interceptorsAnnotation != null)
@@ -134,7 +132,7 @@
          }
       }
       log.debug("Found class interceptors " + classInterceptorClasses);
-      
+
       {
          // Ordering of lifecycle interceptors
          InterceptorOrder order = (InterceptorOrder) advisor.resolveAnnotation(InterceptorOrder.class);
@@ -152,7 +150,7 @@
          if(!interceptorClasses.contains(interceptorClass))
             interceptorClasses.add(interceptorClass);
       }
-      
+
       Class<?> beanClass = advisor.getClazz();
       for(Method beanMethod : ClassHelper.getAllMethods(beanClass))
       {
@@ -163,7 +161,7 @@
             for(Class<?> interceptorClass : interceptorsAnnotation.value())
                methodInterceptorClasses.add(interceptorClass);
          }
-         
+
          // Interceptors applicable for this bean method
          List<Class<?>> methodApplicableInterceptorClasses = new ArrayList<Class<?>>();
          if(!isExcludeDefaultInterceptors(advisor, beanMethod))
@@ -171,9 +169,9 @@
          if(!isExcludeClassInterceptors(advisor, beanMethod))
             methodApplicableInterceptorClasses.addAll(classInterceptorClasses);
          methodApplicableInterceptorClasses.addAll(methodInterceptorClasses);
-         
+
          // TODO: remove duplicates?
-         
+
          // Total ordering (EJB 3 12.8.2.1)
          // TODO: @Interceptors with all?
          InterceptorOrder order = (InterceptorOrder) advisor.resolveAnnotation(beanMethod, InterceptorOrder.class);
@@ -194,7 +192,7 @@
             methodApplicableInterceptorClasses = orderedInterceptorClasses;
          }
          applicableInterceptorClasses.put(beanMethod, methodApplicableInterceptorClasses);
-         
+
          for(Class<?> interceptorClass : methodApplicableInterceptorClasses)
          {
             if(!interceptorClasses.contains(interceptorClass))
@@ -202,17 +200,17 @@
          }
       }
    }
-   
+
    private static final boolean isExcludeClassInterceptors(Advisor advisor, Method method)
    {
       return advisor.hasAnnotation(method, ExcludeClassInterceptors.class) || advisor.resolveAnnotation(ExcludeClassInterceptors.class) != null;
    }
-   
+
    private static final boolean isExcludeDefaultInterceptors(Advisor advisor, Method method)
    {
       return advisor.hasAnnotation(method, ExcludeDefaultInterceptors.class) || isExcludedDefaultInterceptors(advisor);
-   } 
-   
+   }
+
    private static final boolean isExcludedDefaultInterceptors(Advisor advisor)
    {
       return advisor.resolveAnnotation(ExcludeDefaultInterceptors.class) != null;

Modified: projects/ejb3/trunk/plugin/pom.xml
===================================================================
--- projects/ejb3/trunk/plugin/pom.xml	2009-02-10 11:30:48 UTC (rev 84048)
+++ projects/ejb3/trunk/plugin/pom.xml	2009-02-10 11:55:26 UTC (rev 84049)
@@ -1,12 +1,12 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  
+
   <!-- Parent -->
   <parent>
     <groupId>org.jboss.ejb3</groupId>
     <artifactId>jboss-ejb3-build</artifactId>
     <version>1.0.0</version>
   </parent>
-  
+
   <!-- Artifact Configuration -->
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.jboss.ejb3</groupId>
@@ -15,7 +15,7 @@
   <name>JBoss EJB 3.0 Plugin Installer Assembly</name>
   <description>JBoss EJB3 Plugin Installer Assembly</description>
   <packaging>pom</packaging>
-  
+
   <!-- Build Configuration -->
   <build>
 
@@ -48,7 +48,7 @@
 
     </plugins>
   </build>
-  
+
   <!-- Explicit versions, because here we define the installer product -->
   <dependencies>
     <!-- The installer program -->
@@ -66,7 +66,7 @@
       <version>1.1.1-SNAPSHOT</version>
       <optional>true</optional>
     </dependency>
-    
+
     <dependency>
       <groupId>org.jboss.ejb3</groupId>
       <artifactId>jboss-ejb3-common</artifactId>
@@ -82,7 +82,7 @@
       <version>1.1.0</version>
       <optional>true</optional>
     </dependency>
-    
+
     <dependency>
       <groupId>org.jboss.ejb3</groupId>
       <artifactId>jboss-ejb3-proxy</artifactId>
@@ -90,7 +90,7 @@
       <version>1.0.0</version>
       <optional>true</optional>
     </dependency>
-    
+
     <dependency>
       <groupId>org.jboss.ejb3</groupId>
       <artifactId>jboss-ejb3-proxy-clustered</artifactId>
@@ -98,7 +98,7 @@
       <version>1.0.0</version>
       <optional>true</optional>
     </dependency>
-    
+
     <dependency>
       <groupId>org.jboss.ejb3</groupId>
       <artifactId>jboss-ejb3-security</artifactId>
@@ -106,21 +106,21 @@
       <version>1.0.0</version>
       <optional>true</optional>
     </dependency>
-    
+
     <dependency>
       <groupId>org.jboss.ejb3</groupId>
       <artifactId>jboss-ejb3-timerservice-as5</artifactId>
       <version>0.1.0</version>
       <optional>true</optional>
     </dependency>
-    
+
     <dependency>
       <groupId>org.jboss.metadata</groupId>
       <artifactId>jboss-metadata</artifactId>
       <version>1.0.0</version>
       <optional>true</optional>
     </dependency>
-    
+
     <dependency>
       <groupId>org.jboss.jpa</groupId>
       <artifactId>jboss-jpa-deployers</artifactId>
@@ -134,6 +134,11 @@
       <version>1.0.0.CR16</version>
       <optional>true</optional>
     </dependency>
-    
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-interceptors</artifactId>
+      <version>1.0.1-SNAPSHOT</version>
+    </dependency>
   </dependencies>
 </project>




More information about the jboss-cvs-commits mailing list