FileDocCategorySizeDatePackage
ConnectorVerifier.javaAPI DocGlassfish v2 API6568Fri May 04 22:33:26 BST 2007com.sun.enterprise.tools.verifier.connector

ConnectorVerifier

public class ConnectorVerifier extends com.sun.enterprise.tools.verifier.BaseVerifier
author
Vikas Awasthi

Fields Summary
private com.sun.enterprise.deployment.ConnectorDescriptor
cond
private String
classPath
private boolean
isASMode
Constructors Summary
public ConnectorVerifier(com.sun.enterprise.tools.verifier.FrameworkContext frameworkContext, com.sun.enterprise.deployment.ConnectorDescriptor cond)


      
                               
        this.frameworkContext = frameworkContext;
        this.cond = cond;
        this.isASMode = !frameworkContext.isPortabilityMode();
    
Methods Summary
protected java.lang.ClassLoadercreateClassLoader()

        return cond.getClassLoader();
    
protected voidcreateClosureCompiler()
creates the ClosureCompiler for the rar module and sets it to the verifier context. This is used to compute the closure on the classes used in the rar.

throws
IOException

        String specVer = SpecVersionMapper.getJCAVersion(
                frameworkContext.getJavaEEVersion());
        Object arg = (isASMode)?cond.getClassLoader():(Object)getClassPath();
        ConnectorClosureCompiler cc = new ConnectorClosureCompiler(specVer,
                ClassFileLoaderFactory.newInstance(new Object[]{arg}));
        context.setClosureCompiler(cc);
    
protected java.lang.StringgetArchiveUri()

        return FileUtils.makeFriendlyFileName(cond.getModuleDescriptor().getArchiveUri());
    
protected java.lang.StringgetClassPath()
Creates and returns the class path associated with the rar. Uses the exploded location of the archive for generating the classpath.

return
entire classpath string
throws
IOException

        if (classPath != null) return classPath;

        if(isASMode)
            return (classPath = getClassPath(frameworkContext.getClassPath()));

        String cp;
        if (!cond.getModuleDescriptor().isStandalone()) {
            //take the cp from the enclosing ear file
            String ear_uri = frameworkContext.getExplodedArchivePath();
            File ear = new File(ear_uri);
            assert(ear.isDirectory());
            cp = ClassPathBuilder.buildClassPathForEar(ear);
            String libdir = cond.getApplication().getLibraryDirectory();
            if (libdir!=null) {
                cp = getLibdirClasspath(ear_uri, libdir) + cp;
            }
            /** buildClasspathForEar takes care of embedded rars.*/
/*
            //this is a relative path
            String module_uri = cond.getModuleDescriptor().getArchiveUri();
            File module = new File(module_uri);
            assert(module.isFile() && !module.isAbsolute());
            // exploder creates the directory replacing all dots by '_'
            File explodedModuleDir = new File(ear_uri,
                    FileUtils.makeFriendlyFileName(module_uri));
            String moduleCP = ClassPathBuilder.buildClassPathForRar(
                    explodedModuleDir);
            cp = moduleCP + File.pathSeparator + earCP;
*/
        } else {
            //this is an absolute path
            String module_uri = frameworkContext.getExplodedArchivePath();
            File module = new File(module_uri);
            assert(module.isDirectory() && module.isAbsolute());
            cp = ClassPathBuilder.buildClassPathForRar(module);
        }
        return (classPath = cp);
    
protected java.lang.String[]getDDString()

        String dd[] = {"META-INF/sun-ra.xml", "META-INF/ra.xml"}; // NOI18N
        return dd;
    
public com.sun.enterprise.deployment.DescriptorgetDescriptor()

        return cond;
    
public voidverify()

        if (areTestsNotRequired(frameworkContext.isConnector()))
            return;

        preVerification();
        createClosureCompiler();//this can be moved up to base verifier in future.
        verify(cond, new ConnectorCheckMgrImpl(frameworkContext));