1 23 package com.sun.enterprise.tools.verifier.tests.ejb.ejb30; 24 25 import com.sun.enterprise.tools.verifier.tests.ejb.EjbTest; 26 import com.sun.enterprise.tools.verifier.tests.ComponentNameConstructor; 27 import com.sun.enterprise.tools.verifier.Result; 28 import com.sun.enterprise.deployment.EjbDescriptor; 29 import com.sun.enterprise.deployment.EjbInterceptor; 30 import com.sun.enterprise.deployment.LifecycleCallbackDescriptor; 31 32 import java.util.Set ; 33 34 44 public class CallbacksOnBeanClass extends EjbTest { 45 46 Result result = null; 47 ComponentNameConstructor compName = null; 48 49 public Result check(EjbDescriptor descriptor) { 50 result = getInitializedResult(); 51 compName = getVerifierContext().getComponentNameConstructor(); 52 53 Set <EjbInterceptor> interceptors = descriptor.getInterceptorClasses(); 54 for (EjbInterceptor interceptor : interceptors) { 55 if (interceptor.hasCallbackDescriptor( 56 LifecycleCallbackDescriptor.CallbackType.POST_ACTIVATE)) { 57 Set <LifecycleCallbackDescriptor> callBackDescs = 58 interceptor.getCallbackDescriptors( 59 LifecycleCallbackDescriptor.CallbackType.POST_ACTIVATE); 60 reportError(callBackDescs, "ejbActivate",interceptor.getInterceptorClassName()); 61 } 62 if (interceptor.hasCallbackDescriptor( 63 LifecycleCallbackDescriptor.CallbackType.PRE_PASSIVATE)) { 64 Set <LifecycleCallbackDescriptor> callBackDescs = 65 interceptor.getCallbackDescriptors( 66 LifecycleCallbackDescriptor.CallbackType.PRE_PASSIVATE); 67 reportError(callBackDescs, "ejbPassivate",interceptor.getInterceptorClassName()); 68 } 69 if (interceptor.hasCallbackDescriptor( 70 LifecycleCallbackDescriptor.CallbackType.POST_CONSTRUCT)) { 71 Set <LifecycleCallbackDescriptor> callBackDescs = 72 interceptor.getCallbackDescriptors( 73 LifecycleCallbackDescriptor.CallbackType.POST_CONSTRUCT); 74 reportError(callBackDescs, "ejbCreate",interceptor.getInterceptorClassName()); 75 } 76 if (interceptor.hasCallbackDescriptor( 77 LifecycleCallbackDescriptor.CallbackType.PRE_DESTROY)) { 78 Set <LifecycleCallbackDescriptor> callBackDescs = 79 interceptor.getCallbackDescriptors( 80 LifecycleCallbackDescriptor.CallbackType.PRE_DESTROY); 81 reportError(callBackDescs, "ejbRemove",interceptor.getInterceptorClassName()); 82 } 83 } 84 85 if(result.getStatus() != Result.FAILED) { 86 addGoodDetails(result, compName); 87 result.passed(smh.getLocalString 88 (getClass().getName()+".passed", 89 "Valid lifecycle callback method(s)")); 90 } 91 return result; 92 } 93 94 private void reportError(Set <LifecycleCallbackDescriptor> callBackDescs, 95 String callbackMethodName, 96 String interceptorClassName) { 97 for (LifecycleCallbackDescriptor callbackDesc : callBackDescs) { 98 String callbackMethod = callbackDesc.getLifecycleCallbackMethod(); 99 if(callbackMethod.contains(callbackMethodName)) { 100 addErrorDetails(result, compName); 101 result.failed(smh.getLocalString 102 (getClass().getName()+".failed", 103 "Wrong method [ {0} ] in class [ {1} ]", 104 new Object [] {callbackMethod, interceptorClassName})); 105 } 106 } 107 } 108 } 109 | Popular Tags |