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.tools.verifier.*; 30 import com.sun.enterprise.tools.verifier.tests.*; 31 32 import com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck; 33 34 import java.io.*; 35 import java.util.jar.*; 36 import com.sun.enterprise.deployment.*; 37 38 import com.sun.enterprise.deployment.deploy.shared.FileArchive; 39 40 63 public class ASEntBeanPmDescriptors extends EjbTest implements EjbCheck { 64 private boolean oneFailed=false; private boolean oneWarning=false; 66 ComponentNameConstructor compName = null; 67 68 69 public Result check(EjbDescriptor descriptor) { 70 Result result = getInitializedResult(); 71 compName = getVerifierContext().getComponentNameConstructor(); 72 int count = 0; 74 try{ 75 count = getCountNodeSet("sun-ejb-jar/enterprise-beans/pm-descriptors"); 76 if (count>0){ 77 Map<String , String > pmIdVer = new HashMap<String , String >(); 78 count = getCountNodeSet("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-descriptor"); 79 if (count>0){ 80 for(int i=0;i<count;i++){ 81 testPmDescriptor(i, result, pmIdVer, descriptor); 82 } 83 count = getCountNodeSet("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-inuse"); 84 if (count >0){ 85 String pmIdentifier = getXPathValue("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-inuse/pm-identifier"); 86 String pmVersion = getXPathValue("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-inuse/pm-version"); 87 if (pmIdentifier!=null){ 88 if (pmVersion!=null){ 89 if(pmIdVer.containsKey(pmIdentifier)){ 90 result.addGoodDetails(smh.getLocalString 91 ("tests.componentNameConstructor", 92 "For [ {0} ]", 93 new Object [] {compName.toString()})); 94 result.passed(smh.getLocalString(getClass().getName()+".passed", 95 "PASSED [AS-EJB pm-inuse] : pm-identifier {0} is valid" 96 ,new Object []{pmIdentifier})); 97 String testVersion = (String )pmIdVer.get(pmIdentifier); 98 if(testVersion.equals(pmVersion)) 99 { 100 result.addGoodDetails(smh.getLocalString 101 ("tests.componentNameConstructor", 102 "For [ {0} ]", 103 new Object [] {compName.toString()})); 104 result.passed(smh.getLocalString(getClass().getName()+".passed1", 105 "PASSED [AS-EJB pm-inuse] : pm-version {0} is valid", 106 new Object []{pmVersion})); 107 }else{ 108 result.addErrorDetails(smh.getLocalString 113 ("tests.componentNameConstructor", 114 "For [ {0} ]", 115 new Object [] {compName.toString()})); 116 result.failed(smh.getLocalString(getClass().getName()+".failed5", 117 "FAILED [AS-EJB pm-inuse] : pm-version {0} for pm-identifier {1} not defined in pm-descriptors" 118 , new Object []{pmVersion, pmIdentifier})); 119 oneFailed=true; 121 } 122 }else{ 123 result.addErrorDetails(smh.getLocalString 124 ("tests.componentNameConstructor", 125 "For [ {0} ]", 126 new Object [] {compName.toString()})); 127 result.failed(smh.getLocalString(getClass().getName()+".failed1", 128 "FAILED [AS-EJB pm-inuse] : pm-identifier {0} is not defined in pm-descriptors" 129 , new Object []{pmIdentifier})); 130 oneFailed=true; 131 } 132 }else{ 133 result.addErrorDetails(smh.getLocalString 134 ("tests.componentNameConstructor", 135 "For [ {0} ]", 136 new Object [] {compName.toString()})); 137 result.failed(smh.getLocalString(getClass().getName()+".failed12", 138 "FAILED [AS-EJB pm-inuse] : pm-version {0} is not defined in pm-inuse" 139 , new Object []{pmIdentifier})); 140 oneFailed=true; 141 } 142 }else{ 143 result.addErrorDetails(smh.getLocalString 144 ("tests.componentNameConstructor", 145 "For [ {0} ]", 146 new Object [] {compName.toString()})); 147 result.failed(smh.getLocalString(getClass().getName()+".failed14", 148 "FAILED [AS-EJB pm-inuse] : pm-identifier {0} is not defined in pm-inuse" 149 , new Object []{pmIdentifier})); 150 oneFailed=true; 151 } 152 }else{ 153 result.addErrorDetails(smh.getLocalString 154 ("tests.componentNameConstructor", 155 "For [ {0} ]", 156 new Object [] {compName.toString()})); 157 result.failed(smh.getLocalString(getClass().getName()+".failed10", 158 "FAILED [AS-EJB pm-descriptors] : pm-inuse {0} is not defined in pm-descriptors")); 159 oneFailed=true; 160 } 161 }else{ 162 result.addErrorDetails(smh.getLocalString 163 ("tests.componentNameConstructor", 164 "For [ {0} ]", 165 new Object [] {compName.toString()})); 166 result.failed(smh.getLocalString(getClass().getName()+".failed11", 167 "FAILED [AS-EJB pm-descriptors] : pm-descriptor is not defined in pm-descriptors")); 168 oneFailed=true; 169 } 170 }else{ 171 result.addNaDetails(smh.getLocalString 172 ("tests.componentNameConstructor", 173 "For [ {0} ]", 174 new Object [] {compName.toString()})); 175 result.notApplicable(smh.getLocalString(getClass().getName()+".notApplicable", 176 "NOT APPLICABLE [AS-EJB enterprise-beans] : pm-descriptors Element not defined")); 177 } 178 if(oneFailed) 179 result.setStatus(Result.FAILED); 180 else if(oneWarning) 181 result.setStatus(Result.WARNING); 182 }catch(Exception ex){ 183 result.addErrorDetails(smh.getLocalString 184 ("tests.componentNameConstructor", 185 "For [ {0} ]", 186 new Object [] {compName.toString()})); 187 result.failed(smh.getLocalString(getClass().getName()+".notRun", 188 "NOT RUN [AS-EJB] Could not create descriptor Object.")); 189 } 190 return result; 191 } 192 193 198 protected void testPmDescriptor(int i, Result result, Map<String , String > idVerMap, EjbDescriptor descriptor){ 199 try{ 200 String value = null; 201 String pmIdentifier = getXPathValue("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-descriptor[\""+i+"\"]/pm-identifier"); 203 if(pmIdentifier==null || pmIdentifier.length()==0){ 204 result.addErrorDetails(smh.getLocalString 205 ("tests.componentNameConstructor", 206 "For [ {0} ]", 207 new Object [] {compName.toString()})); 208 result.failed(smh.getLocalString(getClass().getName()+".failed2", 209 "FAILED [AS-EJB pm-descriptor] : pm-identifier cannot be an empty string")); 210 oneFailed=true; 211 }else{ 212 result.addGoodDetails(smh.getLocalString 213 ("tests.componentNameConstructor", 214 "For [ {0} ]", 215 new Object [] {compName.toString()})); 216 result.passed(smh.getLocalString(getClass().getName()+".passed2", 217 "PASSED [AS-EJB pm-descriptor] : pm-identifier is {0}", 218 new Object []{pmIdentifier})); 219 } 220 221 String pmVersion = getXPathValue("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-descriptor[\""+i+"\"]/pm-version"); 223 if(pmVersion==null || pmVersion.length()==0){ 224 result.addErrorDetails(smh.getLocalString 225 ("tests.componentNameConstructor", 226 "For [ {0} ]", 227 new Object [] {compName.toString()})); 228 result.failed(smh.getLocalString(getClass().getName()+".failed3", 229 "FAILED [AS-EJB pm-descritor] : pm-version cannot be an empty string")); 230 oneFailed=true; 231 }else{ 232 result.addGoodDetails(smh.getLocalString 233 ("tests.componentNameConstructor", 234 "For [ {0} ]", 235 new Object [] {compName.toString()})); 236 result.passed(smh.getLocalString(getClass().getName()+".passed3", 237 "PASSED [AS-EJB pm-descriptor] : pm-version is {0}", 238 new Object []{pmVersion})); 239 } 240 241 if (pmIdentifier!=null && pmVersion!=null) 242 idVerMap.put(pmIdentifier,pmVersion); 243 244 value = getXPathValue("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-descriptor[\""+i+"\"]/pm-config"); 246 if(value!=null){ 247 if(value.length()==0){ 249 result.addErrorDetails(smh.getLocalString 250 ("tests.componentNameConstructor", 251 "For [ {0} ]", 252 new Object [] {compName.toString()})); 253 oneFailed = true; 254 result.failed(smh.getLocalString(getClass().getName()+".failed4", 255 "FAILED [AS-EJB pm-descritor] : pm-config cannot be an empty string")); 256 }else{ 257 JarFile jarFile = null; 259 InputStream deploymentEntry=null; 260 try{ 261 String uri = getAbstractArchiveUri(descriptor); 263 try { 264 FileArchive arch = new FileArchive(); 265 arch.open(uri); 266 deploymentEntry = arch.getEntry(value); 267 }catch (Exception e) { } 268 277 if(deploymentEntry !=null){ 278 result.addGoodDetails(smh.getLocalString 279 ("tests.componentNameConstructor", 280 "For [ {0} ]", 281 new Object [] {compName.toString()})); 282 result.passed(smh.getLocalString(getClass().getName()+".passed4", 283 "PASSED [AS-EJB pm-descriptor] : pm-config is {0}", 284 new Object []{value})); 285 }else{ 286 result.addWarningDetails(smh.getLocalString 287 ("tests.componentNameConstructor", 288 "For [ {0} ]", 289 new Object [] {compName.toString()})); 290 oneWarning=true; 291 result.warning(smh.getLocalString(getClass().getName()+".warning3", 292 "WARNING [AS-EJB pm-descriptor] : config file {0} pointed in pm-config is not present in the jar file", 293 new Object []{value})); 294 } 295 }catch(Exception e){} 296 finally{ 297 try { 298 if (jarFile != null) 299 jarFile.close(); 300 if (deploymentEntry != null) 301 deploymentEntry.close(); 302 }catch (Exception x) {} 303 } 304 305 } 306 } 308 309 value = getXPathValue("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-descriptor[\""+i+"\"]/pm-class-generator"); 311 if (value==null || value.length()==0 ){ 312 Float specVer = getRuntimeSpecVersion(); 314 if ((Float.compare(specVer.floatValue(), (new Float ("2.1")).floatValue()) >= 0)) { 315 oneFailed=true; 316 result.addErrorDetails(smh.getLocalString 317 ("tests.componentNameConstructor", 318 "For [ {0} ]", 319 new Object [] {compName.toString()})); 320 result.failed(smh.getLocalString(getClass().getName()+".failed13", 321 "FAILED [AS-EJB pm-descriptor] : pm-class-generator cannot be empty.")); 322 } 323 }else{ 324 if(value.trim().indexOf(" ") != -1){ 325 oneFailed=true; 326 result.addErrorDetails(smh.getLocalString 327 ("tests.componentNameConstructor", 328 "For [ {0} ]", 329 new Object [] {compName.toString()})); 330 result.failed(smh.getLocalString(getClass().getName()+".failed7", 331 "FAILED [AS-EJB pm-descriptor] : pm-class-generator class name is invalid")); 332 }else{ 333 result.addGoodDetails(smh.getLocalString 334 ("tests.componentNameConstructor", 335 "For [ {0} ]", 336 new Object [] {compName.toString()})); 337 result.passed(smh.getLocalString(getClass().getName()+".passed5", 338 "PASSED [AS-EJB pm-descriptor] : pm-class-generator is {0}", 339 new Object []{value})); 340 } 341 } 342 343 value = getXPathValue("sun-ejb-jar/enterprise-beans/pm-descriptors/pm-descriptor[\""+i+"\"]/pm-mapping-factory"); 345 if (value != null){ 346 if(value.trim().indexOf(" ") != -1){ 347 result.addErrorDetails(smh.getLocalString 348 ("tests.componentNameConstructor", 349 "For [ {0} ]", 350 new Object [] {compName.toString()})); 351 oneFailed=true; 352 result.failed(smh.getLocalString(getClass().getName()+".failed8", 353 "FAILED [AS-EJB pm-descriptor] : pm-mapping-factory class name is invalid")); 354 }else{ 355 if(value.trim().length()==0){ 356 result.addErrorDetails(smh.getLocalString 357 ("tests.componentNameConstructor", 358 "For [ {0} ]", 359 new Object [] {compName.toString()})); 360 oneFailed=true; 361 result.failed(smh.getLocalString(getClass().getName()+".failed6", 362 "FAILED [AS-EJB pm-descritor] : pm-pm-mapping-factory cannot be an empty string")); 363 }else{ 364 result.addGoodDetails(smh.getLocalString 365 ("tests.componentNameConstructor", 366 "For [ {0} ]", 367 new Object [] {compName.toString()})); 368 result.passed(smh.getLocalString(getClass().getName()+".passed6", 369 "PASSED [AS-EJB pm-descriptor] : pm-mapping-factory is {0}", 370 new Object []{value})); 371 } 372 } 373 } 374 }catch(Exception ex){ 375 oneFailed = true; 376 result.failed(smh.getLocalString(getClass().getName()+".notRun", 377 "NOT RUN [AS-EJB] Could not create descriptor Object.")); 378 }finally{ 379 } 380 } 381 } 382 | Popular Tags |