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.deployment.EjbDescriptor; 30 import com.sun.enterprise.deployment.MethodDescriptor; 31 import com.sun.enterprise.deployment.LifecycleCallbackDescriptor; 32 33 import java.util.Set ; 34 import java.lang.reflect.Method ; 35 36 41 public class AroundInvokeNotBusinessMethod extends EjbTest { 42 43 public Result check(EjbDescriptor descriptor) { 44 Result result = getInitializedResult(); 45 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 46 ClassLoader cl = getVerifierContext().getClassLoader(); 47 48 if(descriptor.hasAroundInvokeMethod()) { 49 Set <MethodDescriptor> businessMethods = descriptor.getMethodDescriptors(); 50 Set <LifecycleCallbackDescriptor> aiDescriptors = 51 descriptor.getAroundInvokeDescriptors(); 52 53 for (LifecycleCallbackDescriptor aiDesc : aiDescriptors) { 54 try { 55 Method interceptorMethod = aiDesc.getLifecycleCallbackMethodObject(cl); 56 MethodDescriptor interceptorMD = new MethodDescriptor(interceptorMethod); 57 if(businessMethods.contains(interceptorMD)) { 58 addErrorDetails(result, compName); 59 result.failed(smh.getLocalString 60 (getClass().getName() + ".failed", 61 "AroundInvoke method [ {0} ] is a business method.", 62 new Object [] {interceptorMethod})); 63 } 64 } catch (Exception e) {} } 66 } 67 68 if(result.getStatus()!=Result.FAILED) { 69 addGoodDetails(result, compName); 70 result.passed(smh.getLocalString 71 (getClass().getName() + ".passed", 72 "Valid Interceptor methods.")); 73 } 74 return result; 75 } 76 } 77 | Popular Tags |