use of com.sun.enterprise.tools.verifier.apiscan.classfile.ClosureCompiler in project Payara by payara.
the class AppClientArchiveClassesLoadable method check.
public Result check(ApplicationClientDescriptor descriptor) {
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;
}
use of com.sun.enterprise.tools.verifier.apiscan.classfile.ClosureCompiler in project Payara by payara.
the class WebArchiveClassesLoadable method check.
public Result check(WebBundleDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
String archiveUri = getAbstractArchiveUri(descriptor);
Iterator entries;
try {
entries = getClassNames(descriptor).iterator();
} 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;
}
boolean allPassed = true;
ClosureCompiler closureCompiler = getVerifierContext().getClosureCompiler();
// org.apache.jasper takes care of internal JSP stuff
((ClosureCompilerImpl) closureCompiler).addExcludedPattern("org.apache.jasper");
// DefaultServlet takes care of the default servlet in GlassFish.
// For some reason, for every web app, this is returned as a component
((ClosureCompilerImpl) closureCompiler).addExcludedClass("org.apache.catalina.servlets.DefaultServlet");
if (getVerifierContext().isAppserverMode())
((ClosureCompilerImpl) closureCompiler).addExcludedPattern("com.sun.enterprise");
while (entries.hasNext()) {
String className = (String) entries.next();
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 }));
} else {
result.setStatus(Result.FAILED);
addErrorDetails(result, compName);
result.addErrorDetails(WebArchiveLoadableHelper.getFailedResults(closureCompiler, getVerifierContext().getOutDir()));
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;
}
use of com.sun.enterprise.tools.verifier.apiscan.classfile.ClosureCompiler in project Payara by payara.
the class EjbArchiveClassesLoadable method check.
public Result check(EjbDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
// String archiveUri = getAbstractArchiveUri(descriptor);
ClosureCompiler closureCompiler = getVerifierContext().getClosureCompiler();
boolean allPassed = closureCompiler.buildClosure(descriptor.getEjbClassName());
if (allPassed) {
result.setStatus(Result.PASSED);
addGoodDetails(result, compName);
result.passed(smh.getLocalString(getClass().getName() + ".passed", "All the classes are loadable."));
} 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;
}
use of com.sun.enterprise.tools.verifier.apiscan.classfile.ClosureCompiler in project Payara by payara.
the class ConnectorArchiveClassesLoadable method check.
public Result check(ConnectorDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
String archiveUri = getAbstractArchiveUri(descriptor);
boolean allPassed = true;
Enumeration entries = null;
ClosureCompiler closureCompiler = getVerifierContext().getClosureCompiler();
;
try {
String uri = getAbstractArchiveUri(descriptor);
FileArchive 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;
if (name.endsWith(".class")) {
String classEntryName = name.substring(0, name.length() - ".class".length()).replace('/', '.');
boolean status = closureCompiler.buildClosure(classEntryName);
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;
}
Aggregations