1 package com.sun.enterprise.tools.verifier.tests.ejb.ias; 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.tools.common.dd.ejb.SunEjbJar; 36 import com.sun.enterprise.tools.common.dd.ejb.Ejb; 37 import com.sun.enterprise.tools.common.dd.EjbRef; 38 39 import com.sun.enterprise.deployment.EjbReferenceDescriptor; 40 import com.sun.enterprise.deployment.EjbSessionDescriptor; 41 import com.sun.enterprise.deployment.EjbEntityDescriptor; 42 52 public class ASEjbRef extends EjbTest implements EjbCheck { 53 54 55 56 61 public Result check(EjbDescriptor descriptor) { 62 63 Result result = getInitializedResult(); 64 ComponentNameConstructor compName = new ComponentNameConstructor(descriptor); 65 66 SunEjbJar ejbJar = descriptor.getEjbBundleDescriptor().getIasEjbObject(); 67 String ejbName = null, jndiName=null; 68 boolean oneFailed = false; 69 boolean notApplicable = false; 70 boolean oneWarning = false; 71 72 if(ejbJar!=null) 73 { 74 Ejb ejbs[] = ejbJar.getEnterpriseBeans().getEjb(); 75 Ejb testCase = null; 76 for(int i=0;i<ejbs.length;i++) 77 { 78 if(ejbs[i].getEjbName().equals(descriptor.getName())) 79 { 80 testCase = ejbs[i]; 81 break; 82 } 83 } 84 85 ejbName = testCase.getEjbName(); 86 EjbRef ejbRefs[] = testCase.getEjbRef(); 87 if(ejbRefs.length > 0) 88 { 89 for(int j=0;j<ejbRefs.length;j++) 90 { 91 String refName = ejbRefs[j].getEjbRefName(); 92 String refJndiName = ejbRefs[j].getJndiName(); 93 94 try 95 { 96 EjbReferenceDescriptor refDesc = descriptor.getEjbReferenceByName(refName); 97 String type = refDesc.getType(); 98 if(type.equals(EjbSessionDescriptor.TYPE) || 99 type.equals(EjbEntityDescriptor.TYPE)) 100 { 101 result.passed(smh.getLocalString(getClass().getName() + ".passed2", 102 "PASSED [AS-EJB ejb-ref] ejb-ref-name [{0}] is valid", 103 new Object []{refName})); 104 } 105 else 106 { 107 oneFailed = true; 108 result.failed(smh.getLocalString(getClass().getName() + ".failed1", 109 "FAILED [AS-EJB ejb-ref] ejb-ref-name has an invalid type in ejb-jar.xml." + 110 " Type should be Session or Entity only")); 111 } 112 } 113 catch(IllegalArgumentException iex) 114 { 115 oneFailed = true; 116 result.failed(smh.getLocalString(getClass().getName() + ".failed", 117 "FAILED [AS-EJB ejb-ref] ejb-ref-name [{0}] is not defined in the ejb-jar.xml", 118 new Object []{refName})); 119 } 120 121 if(refJndiName!=null && refJndiName.length()==0) 122 { 123 oneFailed = true; 124 result.addErrorDetails(smh.getLocalString 125 (getClass().getName() + ".failed2", 126 "FAILED [AS-EJB ejb-ref] : jndi-name cannot be an empty string", 127 new Object [] {refName})); 128 } 129 if(refJndiName!=null && !refJndiName.startsWith("ejb/")) 130 { 131 oneWarning = true; 132 result.warning(smh.getLocalString 133 (getClass().getName() + ".warning", 134 "FAILED [AS-EJB ejb-ref] JNDI name should start with ejb/ for an ejb reference", 135 new Object [] {refName})); 136 } 137 138 result.addGoodDetails(smh.getLocalString( 139 getClass().getName() + ".passed1", 140 "PASSED [AS-EJB ejb-ref] : ejb-ref-Name is {0} and jndi-name is {1}", 141 new Object [] {refName,refJndiName})); 142 } 143 } 144 else 145 { 146 result.notApplicable(smh.getLocalString 147 (getClass().getName() + ".notApplicable", 148 "{0} Does not define any ejb references", 149 new Object [] {ejbName})); 150 return result; 151 } 152 } 153 else 154 { 155 result.addErrorDetails(smh.getLocalString 156 (getClass().getName() + ".notRun", 157 "NOT RUN [AS-EJB] : Could not create an SunEjbJar object")); 158 return result; 159 } 160 161 if (oneFailed) 162 { 163 result.setStatus(Result.FAILED); 164 } 165 else if(oneWarning) 166 { 167 result.setStatus(Result.WARNING); 168 } 169 else 170 { 171 result.addGoodDetails(smh.getLocalString 172 ("tests.componentNameConstructor", 173 "For [ {0} ]", 174 new Object [] {compName.toString()})); 175 result.passed 176 (smh.getLocalString 177 (getClass().getName() + ".passed", 178 "PASSED [AS-EJB] : {0} ejb refernce is verified", 179 new Object [] {ejbName, jndiName})); 180 } 181 return result; 182 } 183 } 184 185 | Popular Tags |