1 23 package com.sun.enterprise.tools.verifier.tests.ejb.session.ejbcreatemethod; 24 25 import com.sun.enterprise.tools.verifier.tests.ejb.EjbTest; 26 import java.lang.ClassLoader ; 27 import com.sun.enterprise.tools.verifier.tests.*; 28 import javax.ejb.SessionBean ; 29 import java.lang.reflect.*; 30 import com.sun.enterprise.deployment.EjbDescriptor; 31 import com.sun.enterprise.deployment.EjbSessionDescriptor; 32 import com.sun.enterprise.tools.verifier.*; 33 import com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck; 34 35 44 public class EjbCreateMethodName extends EjbTest implements EjbCheck { 45 46 47 59 public Result check(EjbDescriptor descriptor) { 60 61 Result result = getInitializedResult(); 62 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 63 64 if (descriptor instanceof EjbSessionDescriptor) { 65 boolean oneFailed = false; 66 try { 67 Context context = getVerifierContext(); 68 ClassLoader jcl = context.getClassLoader(); 69 Class c = Class.forName(descriptor.getEjbClassName(), false, getVerifierContext().getClassLoader()); 70 71 int foundAtLeastOne = 0; 72 do { 74 Method [] methods = c.getDeclaredMethods(); 75 for (int i = 0; i < methods.length; i++) { 76 if (methods[i].getName().startsWith("ejbCreate")) { 78 foundAtLeastOne++; 79 80 result.addGoodDetails(smh.getLocalString 83 ("tests.componentNameConstructor", 84 "For [ {0} ]", 85 new Object [] {compName.toString()})); 86 result.addGoodDetails(smh.getLocalString 87 (getClass().getName() + ".debug1", 88 "For EJB Class [ {0} ] method [ {1} ]", 89 new Object [] {descriptor.getEjbClassName(),methods[i].getName()})); 90 result.addGoodDetails(smh.getLocalString 91 (getClass().getName() + ".passed", 92 "[ {0} ] declares [ {1} ] method.", 93 new Object [] {descriptor.getEjbClassName(),methods[i].getName()})); 94 } 95 } 96 } while (((c = c.getSuperclass()) != null) && (foundAtLeastOne == 0)); 97 98 if (foundAtLeastOne == 0){ 99 result.addErrorDetails(smh.getLocalString 100 ("tests.componentNameConstructor", 101 "For [ {0} ]", 102 new Object [] {compName.toString()})); 103 result.failed(smh.getLocalString 104 (getClass().getName() + ".failed", 105 "Error: [ {0} ] does not properly declare at least one ejbCreate(...) method. [ {1} ] is not a valid bean.", 106 new Object [] {descriptor.getEjbClassName(),descriptor.getEjbClassName()})); 107 oneFailed = true; 108 } 109 } catch (ClassNotFoundException e) { 110 Verifier.debug(e); 111 result.addErrorDetails(smh.getLocalString 112 ("tests.componentNameConstructor", 113 "For [ {0} ]", 114 new Object [] {compName.toString()})); 115 result.failed(smh.getLocalString 116 (getClass().getName() + ".failedException", 117 "Error: [ {0} ] class not found.", 118 new Object [] {descriptor.getEjbClassName()})); 119 oneFailed = true; 120 } 121 122 if (oneFailed) { 123 result.setStatus(result.FAILED); 124 } else { 125 result.setStatus(result.PASSED); 126 } 127 128 return result; 129 130 } else { 131 result.addNaDetails(smh.getLocalString 132 ("tests.componentNameConstructor", 133 "For [ {0} ]", 134 new Object [] {compName.toString()})); 135 result.notApplicable(smh.getLocalString 136 (getClass().getName() + ".notApplicable", 137 "[ {0} ] expected {1} bean, but called with {2} bean.", 138 new Object [] {getClass(),"Session","Entity"})); 139 return result; 140 } 141 } 142 } 143 | Popular Tags |