FileDocCategorySizeDatePackage
AppClientVerifier.javaAPI DocGlassfish v2 API7046Fri May 04 22:33:26 BST 2007com.sun.enterprise.tools.verifier.appclient

AppClientVerifier

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

Fields Summary
private com.sun.enterprise.deployment.ApplicationClientDescriptor
appclientd
private String
classPath
private boolean
isASMode
Constructors Summary
public AppClientVerifier(com.sun.enterprise.tools.verifier.FrameworkContext frameworkContext, com.sun.enterprise.deployment.ApplicationClientDescriptor appClientDescriptor)


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

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

throws
IOException

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

        return FileUtils.makeFriendlyFileName(appclientd.getModuleDescriptor().getArchiveUri());
    
protected java.lang.StringgetClassPath()
Creates and returns the class path associated with the client jar. 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 (!appclientd.getModuleDescriptor().isStandalone()) {
            //take the cp from the enclosing ear file
            String ear_uri = frameworkContext.getExplodedArchivePath();
            File ear = new File(ear_uri);
            assert(ear.isDirectory());
            String earCP = ClassPathBuilder.buildClassPathForEar(ear);
            String libdir = appclientd.getApplication().getLibraryDirectory();
            if (libdir!=null) {
                earCP = getLibdirClasspath(ear_uri, libdir) + earCP;
            }
            String module_uri = appclientd.getModuleDescriptor().getArchiveUri();//this is a relative path
            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.buildClassPathForJar(
                    explodedModuleDir);
            cp = moduleCP + File.pathSeparator + earCP;
        } else {
            String module_uri = frameworkContext.getExplodedArchivePath();//this is an absolute path
            File module = new File(module_uri);
            assert(module.isDirectory() && module.isAbsolute());
            cp = ClassPathBuilder.buildClassPathForJar(module);
        }
        return (classPath = cp);
    
protected java.lang.String[]getDDString()

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

        return appclientd;
    
public voidverify()
Responsible for running application client based verifier tests on the the web archive. Called from runVerifier in {@link BaseVerifier} class.

throws
Exception

        if (areTestsNotRequired(frameworkContext.isAppClient()) &&
                areTestsNotRequired(frameworkContext.isWebServicesClient()) &&
                areTestsNotRequired(frameworkContext.isPersistenceUnits()))
            return;

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