1 23 24 package com.sun.enterprise.tools.verifier.tests.web.ias; 25 26 27 import com.sun.enterprise.tools.verifier.tests.web.elements.*; 28 import com.sun.enterprise.tools.verifier.tests.web.WebTest; 29 import com.sun.enterprise.tools.verifier.tests.web.WebCheck; 30 import java.util.*; 31 import com.sun.enterprise.deployment.*; 32 import com.sun.enterprise.tools.verifier.*; 33 import com.sun.enterprise.tools.verifier.tests.*; 34 35 import com.sun.enterprise.tools.common.dd.EjbRef; 36 import com.sun.enterprise.tools.common.dd.webapp.*; 37 38 41 43 public class ASWebEjbRef extends WebTest implements WebCheck { 44 45 46 47 public Result check(WebBundleDescriptor descriptor) { 48 49 Result result = getInitializedResult(); 50 WebComponentNameConstructor compName = new WebComponentNameConstructor(descriptor); 51 EjbRef[] ejbRefs = descriptor.getIasWebApp().getEjbRef(); 52 53 boolean oneFailed = false; 54 boolean oneWarning = false; String jndiName; 56 String refName; 57 58 if (ejbRefs.length > 0) { 59 boolean isValidResRefName; 60 for (int rep=0; rep<ejbRefs.length; rep++ ) { 61 isValidResRefName=false; 63 64 jndiName = ejbRefs[rep].getJndiName(); 65 refName = ejbRefs[rep].getEjbRefName(); 66 67 if (validEjbRefName(refName,descriptor)) { 68 isValidResRefName=true; 69 result.passed(smh.getLocalString 70 (getClass().getName() + ".passed", 71 "PASSED [AS-WEB ejb-ref] ejb-ref-name [ {0} ] properly defined in the war file.", 72 new Object [] {refName})); 73 } else { 74 if (!oneFailed) 75 oneFailed = true; 76 result.failed(smh.getLocalString 77 (getClass().getName() + ".failed", 78 "FAILED [AS-WEB ejb-ref] ejb-ref-name [ {0} ] is not valid, either empty or not defined in web.xml.", 79 new Object [] {refName})); 80 } 81 82 if (isValidResRefName && validJndiName(jndiName, refName,descriptor)){ 83 if(!jndiName.startsWith("ejb/")){ 86 oneWarning=true; 87 result.warning(smh.getLocalString 88 (getClass().getName() + ".warning", 89 "WARNING [AS-WEB ejb-ref] jndi-name [ {0} ] is not starting with \"ejb/\".", 90 new Object [] {jndiName})); 91 }else{ 92 93 94 result.passed(smh.getLocalString 95 (getClass().getName() + ".passed1", 96 "PASSED [AS-WEB ejb-ref] jndi-name [ {0} ] properly defined in the war file.", 97 new Object [] {jndiName})); 98 } 99 100 } else { 101 if (!oneFailed) 102 oneFailed = true; 103 result.failed(smh.getLocalString 104 (getClass().getName() + ".failed1", 105 "FAILED [AS-WEB ejb-ref] jndi-name [ {0} ] is not valid, either empty or null.", 106 new Object [] {jndiName})); 107 } 108 109 110 111 112 } 113 } else { 114 result.notApplicable(smh.getLocalString 115 (getClass().getName() + ".notApplicable", 116 "NOT APPLICABLE [AS-WEB sun-web-app] ejb-ref element(s) not defined in the web archive [ {0} ].", 117 new Object [] {descriptor.getName()})); 118 return result; 119 } 120 121 if (oneFailed) 122 { 123 result.setStatus(Result.FAILED); 124 } 125 else if (oneWarning) { 127 result.setStatus(Result.WARNING); 128 } 129 else { 130 result.passed 131 (smh.getLocalString 132 (getClass().getName() + ".passed2", 133 "PASSED [AS-WEB sun-web-app] ejb-ref element(s) defined are valid within the web archive [ {0} ].", 134 new Object [] {descriptor.getName()} )); 135 } 136 137 138 return result; 139 } 140 141 142 boolean validEjbRefName(String name,WebBundleDescriptor descriptor){ 143 boolean valid =true; 144 if(name !=null && name.length()!=0) { 145 try{ 146 descriptor.getEjbReferenceByName(name); 147 } 148 catch(IllegalArgumentException e){ 149 valid=false; 150 } 151 } else{ 152 valid=false; 153 154 } 155 return valid; 156 } 157 158 boolean validJndiName(String refJndiName, String refName,WebBundleDescriptor descriptor){ 159 boolean valid =true; 160 161 if(refJndiName !=null && refJndiName.length()!=0 ) { 163 } 164 else{ 165 valid=false; 166 } 167 168 return valid; 169 } 170 171 172 } 173 174 175 | Popular Tags |