1 23 24 package com.sun.enterprise.tools.verifier.tests.web.ias; 25 26 import java.util.*; 27 import com.sun.enterprise.deployment.*; 28 import com.sun.enterprise.tools.verifier.*; 29 import com.sun.enterprise.tools.verifier.tests.*; 30 import com.sun.enterprise.deployment.ResourceReferenceDescriptor; 31 import com.sun.enterprise.deployment.WebBundleDescriptor; 32 import com.sun.enterprise.tools.verifier.tests.web.*; 33 34 import com.sun.enterprise.tools.common.dd.ResourceEnvRef; 35 import com.sun.enterprise.tools.common.dd.webapp.*; 36 37 38 39 public class IASResourceEnvRef extends WebTest implements WebCheck { 40 41 public Result check(WebBundleDescriptor descriptor) { 42 43 String resName; 44 String resType; 45 Result result = getInitializedResult(); 46 WebComponentNameConstructor compName = new WebComponentNameConstructor(descriptor); 47 String jndiName; 48 boolean oneFailed = false; 49 boolean notApp = false; 50 boolean chkOk=true; 51 ResourceEnvRef[] envRefs= descriptor.getIasWebApp().getResourceEnvRef(); 52 53 if (envRefs.length > 0) { 54 55 boolean isValidResRefName; 56 for (int rep=0; rep<envRefs.length; rep++ ) { 57 isValidResRefName=false; 58 resName = envRefs[rep].getResourceEnvRefName(); 59 jndiName = envRefs[rep].getJndiName(); 60 61 if (validResEnvRefName(resName,descriptor)) { 62 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 resource env reference name [ {0} ] defined in the war file.", 71 new Object [] {resName})); 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: Resource env reference name [ {0} ] is not valid, either empty or not defined in web.xml.", 82 new Object [] {resName})); 83 } 84 85 if (isValidResRefName && validJndiName(jndiName, resName,descriptor)){ 86 result.addGoodDetails(smh.getLocalString 87 ("tests.componentNameConstructor", 88 "For [ {0} ]", 89 new Object [] {compName.toString()})); 90 result.addGoodDetails(smh.getLocalString 91 (getClass().getName() + ".passed", 92 "Proper jndi name [ {0} ] defined in the war file.", 93 new Object [] {jndiName})); 94 } else { 95 if (!oneFailed) 96 oneFailed = true; 97 result.addErrorDetails(smh.getLocalString 98 ("tests.componentNameConstructor", 99 "For [ {0} ]", 100 new Object [] {compName.toString()})); 101 result.addErrorDetails(smh.getLocalString 102 (getClass().getName() + ".failed", 103 "Error: Jndi name [ {0} ] is not valid, either empty or not starts with \"jms/\".", 104 new Object [] {resName})); 105 } 106 107 } 108 109 } else { 110 notApp = true; 112 result.addNaDetails(smh.getLocalString 113 ("tests.componentNameConstructor", 114 "For [ {0} ]", 115 new Object [] {compName.toString()})); 116 result.notApplicable(smh.getLocalString 117 (getClass().getName() + ".notApplicable", 118 "There is no resource env reference element present in this web archive [ {0} ].", 119 new Object [] {descriptor.getName()})); 120 } 121 if (oneFailed) { 122 result.setStatus(Result.FAILED); 123 } else if(notApp) { 124 result.setStatus(Result.NOT_APPLICABLE); 125 }else { 126 result.setStatus(Result.PASSED); 127 result.addGoodDetails(smh.getLocalString 128 ("tests.componentNameConstructor", 129 "For [ {0} ]", 130 new Object [] {compName.toString()})); 131 result.passed 132 (smh.getLocalString 133 (getClass().getName() + ".passed", 134 "All resource env reference elements are valid within the web archive [ {0} ].", 135 new Object [] {descriptor.getName()} )); 136 } 137 return result; 138 } 139 140 boolean validResEnvRefName(String name,WebBundleDescriptor descriptor){ 141 boolean valid =true; 142 if(name !=null && name.length()!=0) { 143 try{ 144 descriptor.getJmsDestinationReferenceByName(name); 145 } 146 catch(IllegalArgumentException e){ 147 valid=false; 148 } 149 } else{ 150 valid=false; 151 152 } 153 return valid; 154 } 155 156 boolean validJndiName(String refJndiName, String refName,WebBundleDescriptor descriptor){ 157 boolean valid =true; 158 JmsDestinationReferenceDescriptor resDesc; 159 160 if(refJndiName !=null && refJndiName.length()!=0) { 161 resDesc = descriptor.getJmsDestinationReferenceByName(refName); 163 String type = resDesc.getRefType(); 164 if(type.indexOf("javax.jms")>-1) { 166 if(!refJndiName.startsWith("jms/")) 167 valid=false; 168 169 } 170 171 else 172 valid=false; 173 } 174 else{ 175 valid=false; 176 } 177 178 return valid; 179 } 180 181 182 183 } 184 | Popular Tags |