1 23 package com.sun.enterprise.tools.verifier.tests.ejb.ejb30; 24 25 import com.sun.enterprise.tools.verifier.Result; 26 import com.sun.enterprise.tools.verifier.tests.ejb.MethodUtils; 27 import com.sun.enterprise.deployment.EjbMessageBeanDescriptor; 28 29 import java.lang.reflect.Method ; 30 31 37 public class MDBImplementsListenerMethods extends MessageBeanTest { 38 39 public Result check(EjbMessageBeanDescriptor descriptor) { 40 41 try { 42 ClassLoader cl = getVerifierContext().getClassLoader(); 43 Class intfCls = Class.forName(descriptor.getMessageListenerType(), false, cl); 44 Class ejbCls = Class.forName(descriptor.getEjbClassName(), false, cl); 45 46 if(!intfCls.isAssignableFrom(ejbCls)) { 47 Method [] methods = intfCls.getMethods(); 48 for (Method method : methods) { 49 boolean foundOne = false; 50 for (Method ejbMethod : ejbCls.getMethods()) { 51 if(MethodUtils.methodEquals(ejbMethod, method)) { 52 foundOne = true; 53 break; 54 } 55 } 56 if(!foundOne) { 57 addErrorDetails(result, compName); 58 result.failed( 59 smh.getLocalString(getClass().getName()+".failed", 60 "Message bean [ {0} ] neither implements listener " + 61 "interface [ {1} ] nor implements listener " + 62 "interface method [ {2} ]", 63 new Object [] {ejbCls.getSimpleName(), intfCls.getName(), method})); 64 } 65 } 66 } 67 } catch (ClassNotFoundException e) { 68 logger.fine(descriptor.getEjbClassName() + " Not found"); 70 } 71 72 if(result.getStatus() != Result.FAILED) { 73 addGoodDetails(result, compName); 74 result.passed( 75 smh.getLocalString(getClass().getName()+".passed", 76 "Valid Message bean [ {0} ]", 77 new Object [] {descriptor.getEjbClassName()})); 78 } 79 80 return result; 81 } 82 } 83 | Popular Tags |