1 23 24 package com.sun.enterprise.tools.verifier.tests.ejb.ejb30; 25 26 import com.sun.enterprise.tools.verifier.tests.ejb.EjbTest; 27 import com.sun.enterprise.tools.verifier.tests.ComponentNameConstructor; 28 import com.sun.enterprise.tools.verifier.Result; 29 import com.sun.enterprise.tools.verifier.Verifier; 30 import com.sun.enterprise.deployment.EjbDescriptor; 31 import com.sun.enterprise.deployment.EjbInterceptor; 32 33 import java.lang.reflect.Method ; 34 import java.util.List ; 35 import java.util.Set ; 36 import java.util.HashSet ; 37 38 51 public class InterceptorMethodException extends EjbTest { 52 53 public Result check(EjbDescriptor descriptor) { 54 Result result = getInitializedResult(); 55 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 56 Set <Method > interceptorMethods = new HashSet <Method >(); 57 58 if(descriptor.hasAroundInvokeMethod()) { 59 64 } 65 66 List <EjbInterceptor> interceptors = descriptor.getInterceptorChain(); 67 68 for (EjbInterceptor interceptor : interceptors) { 69 try { 70 Class interceptorClass = 71 Class.forName(interceptor.getInterceptorClassName(), 72 false, 73 getVerifierContext().getClassLoader()); 74 79 } catch (ClassNotFoundException e) { 80 Verifier.debug(e); 81 addErrorDetails(result, compName); 82 result.failed(smh.getLocalString 83 (getClass().getName() + ".failed1", 84 "[ {0} ] not found.", 85 new Object [] {interceptor.getInterceptorClassName()})); 86 } 87 } 88 89 for (Method method : interceptorMethods) { 90 Class [] exceptions = method.getExceptionTypes(); 91 for (Class excepClass : exceptions) { 92 if(java.rmi.RemoteException .class.isAssignableFrom(excepClass)) { 93 addErrorDetails(result, compName); 94 result.failed(smh.getLocalString 95 (getClass().getName() + ".failed", 96 "Method [ {0} ] throws java.rmi.RemoteException.", 97 new Object [] {method})); 98 } 99 } 100 } 101 102 if(result.getStatus()!=Result.FAILED) { 103 addGoodDetails(result, compName); 104 result.passed(smh.getLocalString 105 (getClass().getName() + ".passed", 106 "Valid Interceptor methods.")); 107 } 108 109 return result; 110 } 111 } 112 | Popular Tags |