1 23 package com.sun.enterprise.tools.verifier.tests.web.elements; 24 25 import com.sun.enterprise.deployment.*; 26 import com.sun.enterprise.tools.verifier.*; 27 import com.sun.enterprise.tools.verifier.tests.*; 28 import com.sun.enterprise.tools.verifier.tests.web.*; 29 import com.sun.enterprise.tools.verifier.tests.web.WebCheck; 30 import com.sun.enterprise.tools.verifier.tests.web.WebTest; 31 32 import java.io.*; 33 import java.lang.ClassLoader ; 34 import java.util.*; 35 import java.util.jar.*; 36 import java.util.zip.*; 37 38 39 47 public class WebEjbReferencesElement extends WebTest implements WebCheck { 48 boolean oneFailed=false; 49 55 public Result check(WebBundleDescriptor descriptor) { 56 57 Result result = getInitializedResult(); 58 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 59 String f=descriptor.getModuleDescriptor().getArchiveUri(); 60 loadWarFile(descriptor); 61 result.notApplicable(smh.getLocalString 62 ("tests.componentNameConstructor", 63 "For [ {0} ]", 64 new Object [] {compName.toString()})); 65 result.addNaDetails(smh.getLocalString 66 (getClass().getName() + ".notApplicable", 67 "There is no ejb-ref inside [ {0} ].", 68 new Object [] {compName})); 69 result.addGoodDetails(smh.getLocalString 70 ("tests.componentNameConstructor", 71 "For [ {0} ]", 72 new Object [] {compName})); 73 result.addErrorDetails(smh.getLocalString 74 ("tests.componentNameConstructor", 75 "For [ {0} ]", 76 new Object [] {compName.toString()})); 77 78 79 Set references = descriptor.getEjbReferenceDescriptors(); 80 Iterator iterator = references.iterator(); 81 while (iterator.hasNext()) { 82 EjbReferenceDescriptor ejbReference = (EjbReferenceDescriptor) iterator.next(); 83 checkInterface(result, ejbReference, ejbReference.getEjbHomeInterface(), f); 84 checkInterface(result, ejbReference, ejbReference.getEjbInterface(), f); 85 } 86 return result; 87 } 88 89 private void checkInterface(Result result, EjbReferenceDescriptor ejbRef, String intf, String f){ 90 Class cl = loadClass(result, intf); 91 if(cl==null){ 92 oneFailed=true; 93 result.failed(smh.getLocalString 94 (getClass().getName() + ".failed", 95 "Error: For ejb-ref element [ {0} ] the home/component interface class [ {1} ] is not loadable within [ {2} ].", 96 new Object [] {ejbRef.getName(), intf, f})); 97 }else if(!oneFailed) { 98 result.passed(smh.getLocalString 99 (getClass().getName() + ".passed", 100 "For ejb-ref element [ {0} ] the home/component interface class [ {1} ] is loadable within [ {2} ].", 101 new Object [] {ejbRef.getName(), intf, f})); 102 } 103 } 104 } 105 106 107 | Popular Tags |