Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
String archiveUri = getAbstractArchiveUri(descriptor);
boolean allPassed = true;
FileArchive arch = null;
Enumeration entries= null;
ClosureCompiler closureCompiler=getVerifierContext().getClosureCompiler();
try {
String uri = getAbstractArchiveUri(descriptor);
arch = new FileArchive();
arch.open(uri);
entries = arch.entries();
arch.close();
} catch(Exception e) {
e.printStackTrace();
result.failed(smh.getLocalString(getClass().getName() + ".exception",
"Error: [ {0} ] exception while loading the archive [ {1} ].",
new Object[] {e, descriptor.getName()}));
return result;
}
Object entry;
while (entries.hasMoreElements()) {
String name=null;
entry = entries.nextElement();
name = (String)entry;
// look for entries with .class extension
if (name.endsWith(".class")) {
String className = name.substring(0, name.length()-".class".length()).replace('/",'.");
boolean status=closureCompiler.buildClosure(className);
allPassed=status && allPassed;
}
}
if (allPassed) {
result.setStatus(Result.PASSED);
addGoodDetails(result, compName);
result.passed(smh.getLocalString
(getClass().getName() + ".passed",
"All the classes are loadable within [ {0} ] without any linkage error.",
new Object[] {archiveUri}));
// result.addGoodDetails(closureCompiler.toString());
} else {
result.setStatus(Result.FAILED);
addErrorDetails(result, compName);
result.addErrorDetails(ArchiveClassesLoadableHelper.
getFailedResult(closureCompiler));
result.addErrorDetails(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.loadableError",
"Please either bundle the above mentioned classes in the application " +
"or use optional packaging support for them."));
}
return result;