FileDocCategorySizeDatePackage
WebEjbReferencesElement.javaAPI DocGlassfish v2 API5554Fri May 04 22:34:14 BST 2007com.sun.enterprise.tools.verifier.tests.web.elements

WebEjbReferencesElement

public class WebEjbReferencesElement extends com.sun.enterprise.tools.verifier.tests.web.WebTest implements com.sun.enterprise.tools.verifier.tests.web.WebCheck
The Bean Provider must declare all enterprise bean's references to the homes of other enterprise beans as specified in section 14.3.2 of the Moscone spec. Check for one within the same jar file, can't check outside of jar file. Load/locate & check other bean's home/remote/bean, ensure they match with what the linking bean says they should be; check for pair of referencing and referenced beans exist.

Fields Summary
boolean
oneFailed
Constructors Summary
Methods Summary
public Resultcheck(WebBundleDescriptor descriptor)

param
descriptor the Web deployment descriptor
return
Result the results for this assertion

                       
        

        Result result = getInitializedResult();
	ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
	String f=descriptor.getModuleDescriptor().getArchiveUri();
	loadWarFile(descriptor);
        result.notApplicable(smh.getLocalString
           ("tests.componentNameConstructor",
            "For [ {0} ]",
            new Object[] {compName.toString()}));
        result.addNaDetails(smh.getLocalString
                              (getClass().getName() + ".notApplicable",
                               "There is no ejb-ref inside [ {0} ].",
                               new Object[] {compName}));
        result.addGoodDetails(smh.getLocalString
                           ("tests.componentNameConstructor",
                            "For [ {0} ]",
                            new Object[] {compName}));	
        result.addErrorDetails(smh.getLocalString
               ("tests.componentNameConstructor",
                "For [ {0} ]",
                new Object[] {compName.toString()}));


        Set references = descriptor.getEjbReferenceDescriptors();
        Iterator iterator = references.iterator();
        while (iterator.hasNext()) {
            EjbReferenceDescriptor ejbReference = (EjbReferenceDescriptor) iterator.next();
            checkInterface(result, ejbReference, ejbReference.getEjbHomeInterface(), f);
            checkInterface(result, ejbReference, ejbReference.getEjbInterface(), f);
        }
        return result;
    
private voidcheckInterface(Result result, EjbReferenceDescriptor ejbRef, java.lang.String intf, java.lang.String f)

        Class cl = loadClass(result, intf);
        if(cl==null){
            oneFailed=true;
            result.failed(smh.getLocalString
                          (getClass().getName() + ".failed",
                           "Error: For ejb-ref element [ {0} ] the home/component interface class [ {1} ] is not loadable within [ {2} ].",
                           new Object[] {ejbRef.getName(), intf, f}));
        }else if(!oneFailed) {
            result.passed(smh.getLocalString
                          (getClass().getName() + ".passed",
                           "For ejb-ref element [ {0} ] the home/component interface class [ {1} ] is loadable within [ {2} ].",
                           new Object[] {ejbRef.getName(), intf, f}));
        }