Methods Summary |
---|
protected java.lang.ClassLoader | createClassLoader()Creates the ClassLoader for the war archive.
EJBClassLoader ejbClassLoader = new EJBClassLoader(webd.getClassLoader());
ejbClassLoader.appendURL(jspOutDir);
return ejbClassLoader;
|
protected void | createClosureCompiler()creates the ClosureCompiler for the web module and sets it to the
verifier context. This is used to compute the closure on the classes used
in the web archive.
String specVer = SpecVersionMapper.getWebAppVersion(
frameworkContext.getJavaEEVersion());
Object arg = (isASMode)?context.getClassLoader():(Object)getClassPath();
WebClosureCompiler cc = new WebClosureCompiler(specVer,
ClassFileLoaderFactory.newInstance(new Object[]{arg}));
context.setClosureCompiler(cc);
|
protected java.lang.String | getArchiveUri()
return FileUtils.makeFriendlyFileName(webd.getModuleDescriptor().getArchiveUri());
|
protected java.lang.String | getClassPath()Creates and returns the class path associated with the web archive.
Uses the exploded location of the archive for generating the classpath.
if (classPath != null) return classPath;
if(isASMode)
return (classPath = getClassPath(frameworkContext.getClassPath()) +
File.pathSeparator +
jspOutDir.getAbsolutePath());
String cp;
if (!webd.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 = webd.getApplication().getLibraryDirectory();
if (libdir!=null) {
earCP = getLibdirClasspath(ear_uri, libdir) + earCP;
}
String module_uri = webd.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.buildClassPathForWar(
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.buildClassPathForWar(module);
}
String as_lib_root=System.getProperty("com.sun.aas.installRoot")+File.separator+"lib"+File.separator;
if (frameworkContext.getJavaEEVersion().compareTo("5") >= 0) { // NOI18N
cp += File.pathSeparator+as_lib_root+"jsf-impl.jar"+File.pathSeparator+ // NOI18N
as_lib_root+"appserv-jstl.jar"+File.pathSeparator; // NOI18N
}
cp = cp + File.pathSeparator + jspOutDir.getAbsolutePath();
return (classPath = cp);
|
protected java.lang.String[] | getDDString()
String dd[] = {"WEB-INF/sun-web.xml", "WEB-INF/web.xml", // NOI18N
"WEB-INF/webservices.xml"}; // NOI18N
return dd;
|
public com.sun.enterprise.deployment.Descriptor | getDescriptor()
return webd;
|
private java.io.File | getJspOutDir()If precompilejsp is set in the backend then return the jspOutput
directory set in the frameworkContext. Otherwise create a new unique
directory and return it.
// frameworkContext.getJspOutDir() will be non-null only when the
// call is from deployment backend and precompilejsp is set
File jspOutDir = frameworkContext.getJspOutDir();
if(jspOutDir != null) {
ModuleDescriptor moduleDescriptor = webd.getModuleDescriptor();
if(moduleDescriptor.isStandalone())
return jspOutDir;
return new File(jspOutDir, FileUtils.makeFriendlyFilename(moduleDescriptor.getArchiveUri()));
}
Random random=new Random();
String prefix=System.getProperty("java.io.tmpdir")+File.separator+".jspc";
do{
float f=random.nextFloat();
String outDirPath=new String(prefix+f);
File out=new File(outDirPath);
if(out.mkdirs())
return out;
}while(true);
|
public void | verify()Responsible for running web based verifier tests on the the web archive.
Called from runVerifier in {@link BaseVerifier} class.
if (areTestsNotRequired(frameworkContext.isWeb()) &&
areTestsNotRequired(frameworkContext.isWebServices()) &&
areTestsNotRequired(frameworkContext.isWebServicesClient()) &&
areTestsNotRequired(frameworkContext.isPersistenceUnits()))
return;
jspOutDir = getJspOutDir();
try {
preVerification();
context.setOutDir(jspOutDir);
createClosureCompiler();
verify(webd, new WebCheckMgrImpl(frameworkContext));
} finally {
// frameworkContext.getJspOutDir() will be non-null only when the
// call is from deployment backend and precompilejsp is set
if(frameworkContext.getJspOutDir()==null)
FileUtil.deleteDir(jspOutDir);
}
|