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 39 public class IASWebEjbRef extends WebTest implements WebCheck { 40 41 42 43 public Result check(WebBundleDescriptor descriptor) { 44 45 Result result = getInitializedResult(); 46 WebComponentNameConstructor compName = new WebComponentNameConstructor(descriptor); 47 EjbRef[] ejbRefs = descriptor.getIasWebApp().getEjbRef(); 48 49 boolean oneFailed = false; 50 String jndiName; 51 String refName; 52 53 if (ejbRefs.length > 0) { 54 boolean isValidResRefName; 55 for (int rep=0; rep<ejbRefs.length; rep++ ) { 56 isValidResRefName=false; 58 59 jndiName = ejbRefs[rep].getJndiName(); 60 refName = ejbRefs[rep].getEjbRefName(); 61 62 if (validEjbRefName(refName,descriptor)) { 63 isValidResRefName=true; 64 result.addGoodDetails(smh.getLocalString 65 ("tests.componentNameConstructor", 66 "For [ {0} ]", 67 new Object [] {compName.toString()})); 68 result.addGoodDetails(smh.getLocalString 69 (getClass().getName() + ".passed", 70 "Proper ejb reference name [ {0} ] defined in the war file.", 71 new Object [] {refName})); 72 } else { 73 if (!oneFailed) 74 oneFailed = true; 75 result.addErrorDetails(smh.getLocalString 76 ("tests.componentNameConstructor", 77 "For [ {0} ]", 78 new Object [] {compName.toString()})); 79 result.addErrorDetails(smh.getLocalString 80 (getClass().getName() + ".failed", 81 "Error: Ejb reference name [ {0} ] is not valid, either empty or not defined in web.xml.", 82 new Object [] {refName})); 83 } 84 85 if (isValidResRefName && validJndiName(jndiName, refName,descriptor)){ 86 result.addGoodDetails(smh.getLocalString 88 ("tests.componentNameConstructor", 89 "For [ {0} ]", 90 new Object [] {compName.toString()})); 91 result.addGoodDetails(smh.getLocalString 92 (getClass().getName() + ".passed", 93 "Proper jndi name [ {0} ] defined in the war file.", 94 new Object [] {jndiName})); 95 } else { 96 if (!oneFailed) 97 oneFailed = true; 98 result.addErrorDetails(smh.getLocalString 99 ("tests.componentNameConstructor", 100 "For [ {0} ]", 101 new Object [] {compName.toString()})); 102 result.addErrorDetails(smh.getLocalString 103 (getClass().getName() + ".failed", 104 "Error: Jndi name [ {0} ] is not validis not valid, either empty or not starts with \"ejb/\".", 105 new Object [] {jndiName})); 106 } 107 108 109 110 111 } 112 } else { 113 result.addNaDetails(smh.getLocalString 114 ("tests.componentNameConstructor", 115 "For [ {0} ]", 116 new Object [] {compName.toString()})); 117 result.notApplicable(smh.getLocalString 118 (getClass().getName() + ".notApplicable", 119 "There is no ejb env reference element present in this web archive [ {0} ].", 120 new Object [] {descriptor.getName()})); 121 return result; 122 } 123 124 if (oneFailed) 125 { 126 result.setStatus(Result.FAILED); 127 } else { 128 result.addGoodDetails(smh.getLocalString 129 ("tests.componentNameConstructor", 130 "For [ {0} ]", 131 new Object [] {compName.toString()})); 132 result.passed 133 (smh.getLocalString 134 (getClass().getName() + ".passed", 135 "All ejb env reference elements are valid within the web archive [ {0} ].", 136 new Object [] {descriptor.getName()} )); 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 && refJndiName.startsWith("ejb/")) { 162 163 } 164 else{ 165 valid=false; 166 } 167 168 return valid; 169 } 170 171 172 } 173 174 175 | Popular Tags |