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.ExcludeDefaultInterceptors; 31 32 import com.sun.enterprise.deployment.EjbDescriptor; 33 import com.sun.enterprise.deployment.EjbBundleDescriptor; 34 import com.sun.enterprise.deployment.InterceptorBindingDescriptor; 35 import com.sun.enterprise.deployment.MethodDescriptor; 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 ExcludeDefaultInterceptorsHandler 48 extends AbstractAttributeHandler { 49 50 public ExcludeDefaultInterceptorsHandler() { 51 } 52 53 56 public Class <? extends Annotation > getAnnotationType() { 57 return ExcludeDefaultInterceptors.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 77 binding.setExcludeDefaultInterceptors(true); 78 79 if(ElementType.METHOD.equals(ainfo.getElementType())) { 80 Method m = (Method ) ainfo.getAnnotatedElement(); 81 MethodDescriptor md = 82 new MethodDescriptor(m, MethodDescriptor.EJB_BEAN); 83 binding.setBusinessMethod(md); 84 } 85 86 ejbBundle.prependInterceptorBinding(binding); 87 } 88 89 return getDefaultProcessedResult(); 90 } 91 92 97 public Class <? extends Annotation >[] getTypeDependencies() { 98 return getEjbAnnotationTypes(); 99 } 100 } 101 | Popular Tags |