[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