log.debug(" advisor " + advisor.getClass().getName());
log.debug(" instanceAdvisor " + toString(instanceAdvisor));
// TODO: the whole interceptor advisor & annotation stuff is butt ugly
InterceptorFactoryRef interceptorFactoryRef = (InterceptorFactoryRef) advisor.resolveAnnotation(InterceptorFactoryRef.class);
if(interceptorFactoryRef == null)
throw new IllegalStateException("No InterceptorFactory specified on " + advisor.getName());
log.debug("interceptor factory class = " + interceptorFactoryRef.value());
InterceptorFactory interceptorFactory = interceptorFactoryRef.value().newInstance();
Map<Class<?>, Object> interceptors = new HashMap<Class<?>, Object>();
Map<Class<? extends Annotation>, List<Interceptor>> lifeCycleInterceptors = new HashMap<Class<? extends Annotation>, List<Interceptor>>();
for(Class<? extends Annotation> lifeCycleAnnotationClass : lifeCycleAnnotationClasses)