1 23 package com.sun.enterprise.deployment.annotation.handlers; 24 25 import java.lang.annotation.Annotation ; 26 import java.lang.annotation.ElementType ; 27 import java.lang.reflect.AnnotatedElement ; 28 import java.lang.reflect.Method ; 29 30 import javax.interceptor.ExcludeClassInterceptors; 31 32 import com.sun.enterprise.deployment.EjbDescriptor; 33 import com.sun.enterprise.deployment.EjbBundleDescriptor; 34 import com.sun.enterprise.deployment.MethodDescriptor; 35 import com.sun.enterprise.deployment.InterceptorBindingDescriptor; 36 37 import com.sun.enterprise.deployment.annotation.AnnotationInfo; 38 import com.sun.enterprise.deployment.annotation.AnnotationProcessorException; 39 import com.sun.enterprise.deployment.annotation.HandlerProcessingResult; 40 import com.sun.enterprise.deployment.annotation.context.EjbContext; 41 42 47 public class ExcludeClassInterceptorsHandler 48 extends AbstractAttributeHandler { 49 50 public ExcludeClassInterceptorsHandler() { 51 } 52 53 56 public Class <? extends Annotation > getAnnotationType() { 57 return ExcludeClassInterceptors.class; 58 } 59 60 protected HandlerProcessingResult processAnnotation(AnnotationInfo ainfo, 61 EjbContext[] ejbContexts) throws AnnotationProcessorException { 62 63 EjbBundleDescriptor ejbBundle = 64 ((EjbDescriptor)ejbContexts[0].getDescriptor()). 65 getEjbBundleDescriptor(); 66 67 for(EjbContext next : ejbContexts) { 68 69 EjbDescriptor ejbDescriptor = (EjbDescriptor) next.getDescriptor(); 70 71 InterceptorBindingDescriptor binding = 73 new InterceptorBindingDescriptor(); 74 75 binding.setEjbName(ejbDescriptor.getName()); 76 binding.setExcludeClassInterceptors(true); 77 78 Method m = (Method ) ainfo.getAnnotatedElement(); 80 MethodDescriptor md = 81 new MethodDescriptor(m, MethodDescriptor.EJB_BEAN); 82 binding.setBusinessMethod(md); 83 84 ejbBundle.prependInterceptorBinding(binding); 85 } 86 87 return getDefaultProcessedResult(); 88 } 89 90 95 public Class <? extends Annotation >[] getTypeDependencies() { 96 return getEjbAnnotationTypes(); 97 } 98 } 99 | Popular Tags |