[jboss-cvs] JBossAS SVN: r68828 - projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/aop.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 10 11:05:56 EST 2008


Author: wolfc
Date: 2008-01-10 11:05:56 -0500 (Thu, 10 Jan 2008)
New Revision: 68828

Modified:
   projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/aop/InterceptorsFactory.java
Log:
Fixed bean without interceptors

Modified: projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/aop/InterceptorsFactory.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/aop/InterceptorsFactory.java	2008-01-10 16:05:08 UTC (rev 68827)
+++ projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/aop/InterceptorsFactory.java	2008-01-10 16:05:56 UTC (rev 68828)
@@ -69,39 +69,39 @@
          InterceptorFactory interceptorFactory = interceptorFactoryRef.value().newInstance();
          
          Interceptors interceptorsAnnotation = (Interceptors) advisor.resolveAnnotation(Interceptors.class);
-         assert interceptorsAnnotation != null : "interceptors annotation not found"; // FIXME: not correct, bean can be without interceptors
          Map<Class<?>, Object> interceptors = new HashMap<Class<?>, Object>();
          List<Interceptor> postConstructs = new ArrayList<Interceptor>();
          List<Interceptor> classInterceptors = new ArrayList<Interceptor>();
-         for(Class<?> interceptorClass : interceptorsAnnotation.value())
+         if(interceptorsAnnotation != null)
          {
-            // TODO: what if I've specified the same interceptor twice? (throw an Exception?)
-            Object interceptor = interceptors.get(interceptorClass);
-            if(interceptor == null)
+            for(Class<?> interceptorClass : interceptorsAnnotation.value())
             {
-               interceptor = interceptorFactory.create(advisor, interceptorClass);
-               interceptors.put(interceptorClass, interceptor);
-            }
-            //Advisor interceptorAdvisor = ((Advised) interceptor)._getAdvisor();
-            //Advisor interceptorAdvisor = advisor.getManager().getAdvisor(interceptorClass);
-            AnnotationAdvisor interceptorAdvisor = AnnotationAdvisorHelper.getAnnotationAdvisor(advisor, interceptor);
-            log.debug("  interceptorAdvisor = " + interceptorAdvisor);
-//            InstanceAdvisor interceptorInstanceAdvisor = ((Advised) interceptor)._getInstanceAdvisor();
-//            log.debug("  interceptorInstanceAdvisor = " + interceptorInstanceAdvisor.getClass().getName());
-            // TODO: should be only non-overriden methods (EJB 3 12.4.1 last bullet)
-            for(Method method : ClassHelper.getAllMethods(interceptorClass))
-            {
-               if(interceptorAdvisor.isAnnotationPresent(interceptorClass, method, PostConstruct.class))
+               // TODO: what if I've specified the same interceptor twice? (throw an Exception?)
+               Object interceptor = interceptors.get(interceptorClass);
+               if(interceptor == null)
                {
-                  postConstructs.add(new LifecycleCallbackInterceptorMethodInterceptor(interceptor, method));
+                  interceptor = interceptorFactory.create(advisor, interceptorClass);
+                  interceptors.put(interceptorClass, interceptor);
                }
-               if(interceptorAdvisor.isAnnotationPresent(interceptorClass, method, AroundInvoke.class))
+               //Advisor interceptorAdvisor = ((Advised) interceptor)._getAdvisor();
+               //Advisor interceptorAdvisor = advisor.getManager().getAdvisor(interceptorClass);
+               AnnotationAdvisor interceptorAdvisor = AnnotationAdvisorHelper.getAnnotationAdvisor(advisor, interceptor);
+               log.debug("  interceptorAdvisor = " + interceptorAdvisor);
+               // TODO: should be only non-overriden methods (EJB 3 12.4.1 last bullet)
+               for(Method method : ClassHelper.getAllMethods(interceptorClass))
                {
-                  classInterceptors.add(new BusinessMethodInterceptorMethodInterceptor(interceptor, method));
+                  if(interceptorAdvisor.isAnnotationPresent(interceptorClass, method, PostConstruct.class))
+                  {
+                     postConstructs.add(new LifecycleCallbackInterceptorMethodInterceptor(interceptor, method));
+                  }
+                  if(interceptorAdvisor.isAnnotationPresent(interceptorClass, method, AroundInvoke.class))
+                  {
+                     classInterceptors.add(new BusinessMethodInterceptorMethodInterceptor(interceptor, method));
+                  }
                }
+               //instanceAdvisor.appendInterceptorStack(stackName);
+               //instanceAdvisor.appendInterceptor(new InvokeSpecInterceptorInterceptor());
             }
-            //instanceAdvisor.appendInterceptorStack(stackName);
-            //instanceAdvisor.appendInterceptor(new InvokeSpecInterceptorInterceptor());
          }
          
          Class<?> beanClass = advisor.getClazz();
@@ -138,7 +138,6 @@
                      }
                   }
                }
-               assert businessMethodInterceptors.size() > 0 : "TODO: lucky guess";
                instanceAdvisor.getMetaData().addMetaData(InterceptorsFactory.class, beanMethod, businessMethodInterceptors);
             }
             




More information about the jboss-cvs-commits mailing list