1 package com.sun.enterprise.tools.verifier.tests.ejb.runtime; 2 3 25 26 import com.sun.enterprise.tools.verifier.tests.ejb.EjbTest; 27 import java.util.*; 28 import com.sun.enterprise.deployment.EjbDescriptor; 29 import com.sun.enterprise.deployment.EjbSessionDescriptor; 30 import com.sun.enterprise.tools.verifier.*; 31 import com.sun.enterprise.tools.verifier.tests.*; 32 33 import com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck; 34 35 import com.sun.enterprise.deployment.EjbReferenceDescriptor; 36 import com.sun.enterprise.deployment.EjbSessionDescriptor; 37 import com.sun.enterprise.deployment.EjbEntityDescriptor; 38 39 49 50 public class ASEjbRef extends EjbTest implements EjbCheck { 51 52 56 public Result check(EjbDescriptor descriptor) { 57 Result result = getInitializedResult(); 58 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 59 String ejbName = null, jndiName=null; 60 boolean oneFailed = false; 61 boolean notApplicable = false; 62 boolean oneWarning = false; 63 64 try{ 65 ejbName = descriptor.getName(); 66 Set ejbRefs = descriptor.getEjbReferenceDescriptors(); 67 if (ejbRefs.size()>0){ 68 Iterator it = ejbRefs.iterator(); 69 while(it.hasNext()){ 70 EjbReferenceDescriptor desc = ((EjbReferenceDescriptor)it.next()); 71 String refJndiName=getXPathValue("/sun-ejb-jar/enterprise-beans/ejb/ejb-ref[ejb-ref-name=\""+desc.getName()+"\"]/jndi-name"); 72 String refName = desc.getName(); 73 String type = desc.getType(); 74 if(!desc.isLocal()){ 75 if (type == null || !( (type.equals(EjbSessionDescriptor.TYPE) || type.equals(EjbEntityDescriptor.TYPE))) ){ 76 oneFailed = true; 77 addErrorDetails(result, compName); 78 result.failed(smh.getLocalString(getClass().getName() + ".failed1", 79 "FAILED [AS-EJB ejb-ref] ejb-ref-name has an invalid type in ejb-jar.xml." + 80 " Type should be Session or Entity only")); 81 }else{ 82 addGoodDetails(result, compName); 83 result.passed(smh.getLocalString(getClass().getName() + ".passed2", 84 "PASSED [AS-EJB ejb-ref] ejb-ref-name [{0}] is valid", 85 new Object []{refName})); 86 } 87 }else{ 88 addNaDetails(result, compName); 89 result.notApplicable(smh.getLocalString 90 (getClass().getName() + ".notApplicable", 91 "{0} Does not define any ejb references", 92 new Object [] {ejbName})); 93 return result; 94 } 95 96 if (refJndiName != null){ 97 if(refJndiName.length()==0){ 98 oneFailed = true; 99 addErrorDetails(result, compName); 100 result.addErrorDetails(smh.getLocalString 101 (getClass().getName() + ".failed2", 102 "FAILED [AS-EJB ejb-ref] : jndi-name cannot be an empty string", 103 new Object [] {refName})); 104 }else{ 105 if (!refJndiName.startsWith("ejb/")){ 106 oneWarning = true; 107 addWarningDetails(result, compName); 108 result.warning(smh.getLocalString 109 (getClass().getName() + ".warning", 110 "WARNING [AS-EJB ejb-ref] JNDI name should start with ejb/ for an ejb reference", 111 new Object [] {refName})); 112 } 113 } 114 }else { 115 oneFailed = true; 116 addErrorDetails(result, compName); 117 result.addErrorDetails(smh.getLocalString 118 (getClass().getName() + ".failed2", 119 "FAILED [AS-EJB ejb-ref] : jndi-name cannot be an empty string", 120 new Object [] {refName})); 121 } 122 123 if (!oneFailed){ 124 addGoodDetails(result, compName); 125 result.addGoodDetails(smh.getLocalString( 126 getClass().getName() + ".passed1", 127 "PASSED [AS-EJB ejb-ref] : ejb-ref-Name is {0} and jndi-name is {1}", 128 new Object [] {refName,refJndiName})); 129 } 130 } 131 132 }else{ 133 addNaDetails(result, compName); 134 result.notApplicable(smh.getLocalString 135 (getClass().getName() + ".notApplicable", 136 "{0} Does not define any ejb references", 137 new Object [] {ejbName})); 138 return result; 139 } 140 }catch(Exception ex){ 141 oneFailed = true; 142 addErrorDetails(result, compName); 143 result.addErrorDetails(smh.getLocalString 144 (getClass().getName() + ".notRun", 145 "NOT RUN [AS-EJB] : Could not create descriptor object")); 146 return result; 147 } 148 149 if (oneFailed) 150 { 151 result.setStatus(Result.FAILED); 152 } 153 else if(oneWarning) 154 { 155 result.setStatus(Result.WARNING); 156 } 157 else 158 { 159 addErrorDetails(result, compName); 160 result.passed 161 (smh.getLocalString 162 (getClass().getName() + ".passed", 163 "PASSED [AS-EJB] : {0} ejb refernce is verified", 164 new Object [] {ejbName, jndiName})); 165 } 166 return result; 167 168 } 169 } 170 | Popular Tags |