FileDocCategorySizeDatePackage
EjbNameMethodElement.javaAPI DocGlassfish v2 API5722Fri May 04 22:33:36 BST 2007com.sun.enterprise.tools.verifier.tests.ejb.elements

EjbNameMethodElement

public class EjbNameMethodElement extends com.sun.enterprise.tools.verifier.tests.ejb.EjbTest implements com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck
The ejb-name element within the method element must be the name of one of the enterprise beans declared in the deployment descriptor.

Fields Summary
Constructors Summary
Methods Summary
public Resultcheck(EjbDescriptor descriptor)
The ejb-name element within the method element must be the name of one of the enterprise beans declared in the deployment descriptor.

param
descriptor the Enterprise Java Bean deployment descriptor
return
Result the results for this assertion


	Result result = getInitializedResult();
	ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();

	// get ejb's methods

	// DOL doesn't save "ejb-name" element inside of method element
	// so i can't seem to get at raw representation of XML data needed
	// for this test, 
        // <ejb-name> within <method> element is the name of the ejb 
        // descriptor where you got the method descriptor from,
        // so you can't trip negative assertion and test should always pass
        // once plugged into new DOL, where access to raw XML is
        // available, then this test can be properly modified,
	// then i would use DOL similar to this:
	//Set methods = descriptor.getMethodDescriptors();

	//for (Iterator itr = methods.iterator(); itr.hasNext();) {

	//MethodDescriptor methodDescriptor = (MethodDescriptor) itr.next();

	boolean found = false;
	for (Iterator itr2 = 
		 descriptor.getEjbBundleDescriptor().getEjbs().iterator();
	     itr2.hasNext();) {
	    EjbDescriptor ejbDescriptor = (EjbDescriptor) itr2.next();
        logger.log(Level.FINE, getClass().getName() + ".debug1",
                new Object[] {ejbDescriptor.getName()});
	    
	    // now iterate over all methods to ensure that ejb-name exist
	    //if (methodDescriptor.getName().equals(ejbDescriptor.getName())) {

	    // for now, do this test, which should always pass, since DOL lacks
	    // raw XML data representation
            // <ejb-name> within <method> element is the name of the ejb
            // descriptor where you got the method descriptor from
	    if (descriptor.getName().equals(ejbDescriptor.getName())) {
		found = true;
		if (result.getStatus() != Result.FAILED){
		    result.setStatus(Result.PASSED);
		    // for now, pass in details string via addGoodDetails
		    // until DOL raw data issue gets resolved
		    result.addGoodDetails(smh.getLocalString
					  ("tests.componentNameConstructor",
					   "For [ {0} ]",
					   new Object[] {compName.toString()}));
		    result.addGoodDetails
			(smh.getLocalString
			 (getClass().getName() + ".passed",
			  "[ {0} ] is valid and contained within jar.",
			  new Object[] {descriptor.getName()}));
		}
	    }
	}
	if (!found) {
	    result.addErrorDetails(smh.getLocalString
				   ("tests.componentNameConstructor",
				    "For [ {0} ]",
				    new Object[] {compName.toString()}));
	    result.addErrorDetails(smh.getLocalString
			("tests.componentNameConstructor",
			"For [ {0} ]",
			new Object[] {compName.toString()}));
		result.failed
		(smh.getLocalString
		 (getClass().getName() + ".failed",
		  "Error: [ {0} ] is not the name of one of the EJB's within jar.",
		  new Object[] {descriptor.getName()}));
	    //(methodDescriptor.getName() pending DOL update
	}
	//}
	return result;