FileDocCategorySizeDatePackage
EjbTest.javaAPI DocGlassfish v2 API6961Fri May 04 22:33:32 BST 2007com.sun.enterprise.tools.verifier.tests.ejb

EjbTest

public abstract class EjbTest extends com.sun.enterprise.tools.verifier.tests.VerifierTest implements EjbCheck, com.sun.enterprise.tools.verifier.tests.VerifierCheck
Superclass for all EJB tests, contains common services.
author
Jerome Dochez
version

Fields Summary
Constructors Summary
Methods Summary
public Resultcheck(Descriptor descriptor)

run an individual test against the deployment descriptor for the archive the verifier is performing compliance tests against.

param
descriptor deployment descriptor for the archive
return
result object containing the result of the individual test performed

        
        try {
          return check((EjbDescriptor) descriptor);
        }
        catch(Throwable t) {
          // Note : We assume that each test which loads a class
          // would have its own ClassNotFoundException block
          ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
          Result r = getInitializedResult();

          if (t instanceof java.lang.NoClassDefFoundError) {
  
            String s = t.toString();
            String className = s.substring(s.indexOf(":"));
              
            addWarningDetails(r, compName);
            r.warning(smh.getLocalString
                     ("com.sun.enterprise.tools.verifier.checkinclasspath",
                      "The class [ {0} ] was not found, check manifest classpath, or make sure it is available in classpath at runtime.",
                       new Object[] {className}));
              return r;
          }
          else 
            throw new RuntimeException(t);
        }
    
public abstract Resultcheck(EjbDescriptor descriptor)

all connector tests should implement this method. it run an individual test against the resource adapter deployment descriptor.

param
descriptor deployment descriptor for the archive file
return
result object containing the result of the individual test performed

protected java.lang.StringgetAbstractArchiveUri(EjbDescriptor desc)

        String archBase = getVerifierContext().getAbstractArchive().
                getArchiveUri();
        final ModuleDescriptor moduleDescriptor = desc.getEjbBundleDescriptor().
                getModuleDescriptor();
        if (moduleDescriptor.isStandalone()) {
            return archBase; // it must be a stand-alone module; no such physical dir exists
        } else {
            return archBase + File.separator +
                    FileUtils.makeFriendlyFileName(moduleDescriptor.getArchiveUri());
        }
    
public java.lang.StringgetArchiveURI(EjbDescriptor desc)

//        if (Verifier.getEarFile()==null){
            return getAbstractArchiveUri(desc);
/*
        }else{
            String uri = getVerifierContext().getStdAloneArchiveURI();
            String moduleName = desc.getEjbBundleDescriptor().
                            getModuleDescriptor().getArchiveUri();
            String moduleDir = moduleName.replace('.', '_');
            uri=uri+File.separator+moduleDir;
            return uri;

        }
*/


    
public booleanimplementsEndpoints(EjbDescriptor descriptor)


      BundleDescriptor bdesc = descriptor.getEjbBundleDescriptor();
      if (bdesc.hasWebServices()) {
         WebServicesDescriptor wdesc = bdesc.getWebServices();
         if (wdesc.hasEndpointsImplementedBy(descriptor))
            return true;
      }
     return false;
    
protected java.lang.ClassloadEjbClass(EjbDescriptor descriptor, Result result)

load the declared EJB class from the archive

param
descriptor the deployment descriptors for the EJB
param
result result to use if the load fails
return
the class object for the EJB component

	ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
        
       try { 
	   return Class.forName(descriptor.getEjbClassName(), false, getVerifierContext().getClassLoader());                            
        } catch (ClassNotFoundException e) {
	    Verifier.debug(e);
	    addErrorDetails(result, compName);
	    result.failed(smh.getLocalString
		("com.sun.enterprise.tools.verifier.tests.ejb.EjbTest.failedException",
		 "Error: [ {0} ] class not found.",
		 new Object[] {descriptor.getEjbClassName()}));
            return null;
	}