use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class EntityManagerInjection method check.
public Result check(WebBundleDescriptor descriptor) {
Result result = getInitializedResult();
addWarningDetails(result, getVerifierContext().getComponentNameConstructor());
// default status is PASSED
result.setStatus(Result.PASSED);
for (EntityManagerReferenceDescriptor emRefDesc : descriptor.getEntityManagerReferenceDescriptors()) {
Set<InjectionTarget> injectionTargets = emRefDesc.getInjectionTargets();
if (injectionTargets != null) {
for (InjectionTarget it : injectionTargets) {
String itClassName = it.getClassName();
String errMsg = smh.getLocalString(className + ".warning", "Found a persistence unit by name [ {0} ] injected into [ {1} ].", new Object[] { emRefDesc.getUnitName(), itClassName });
try {
Class c = Class.forName(itClassName, false, getVerifierContext().getClassLoader());
if (!(Servlet.class.isAssignableFrom(c))) {
result.warning(errMsg);
} else if (!(SingleThreadModel.class.isAssignableFrom(c))) {
result.warning(errMsg);
}
} catch (Exception ex) {
result.warning(errMsg);
}
}
}
}
return result;
}
use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class FilterClass method check.
/**
* iterates over all declared filter in the archive file and
* delegates actual test on individual filter class to
* runIndividualFilterTest
*
* @param descriptor the Web deployment descriptor
*
* @return <code>Result</code> the results for this assertion
*/
public Result check(WebBundleDescriptor descriptor) {
Result result;
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
Enumeration filterEnum = descriptor.getServletFilterDescriptors().elements();
if (filterEnum.hasMoreElements()) {
boolean oneFailed = false;
// test the filters in this .war
result = loadWarFile(descriptor);
while (filterEnum.hasMoreElements()) {
ServletFilterDescriptor filter = (ServletFilterDescriptor) filterEnum.nextElement();
Class filterClass = loadClass(result, filter.getClassName());
if (!runIndividualFilterTest(result, filterClass))
oneFailed = true;
}
if (oneFailed) {
result.setStatus(Result.FAILED);
} else {
result.setStatus(Result.PASSED);
}
} else {
result = getInitializedResult();
result.setStatus(Result.NOT_APPLICABLE);
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.notApplicable(smh.getLocalString("com.sun.enterprise.tools.verifier.tests.web.FilterClass" + ".notApplicable", "There are no filter components within the web archive [ {0} ]", new Object[] { descriptor.getName() }));
}
return result;
}
use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class FilterInitParamName method check.
/**
* Filter Param Name exists test.
*
* @param descriptor the Web deployment descriptor
*
* @return <code>Result</code> the results for this assertion
*/
public Result check(WebBundleDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
boolean oneFailed = false;
Enumeration filterEnum = descriptor.getServletFilterDescriptors().elements();
if (filterEnum.hasMoreElements()) {
// get the filters in this .war
while (filterEnum.hasMoreElements()) {
ServletFilterDescriptor filter = (ServletFilterDescriptor) filterEnum.nextElement();
HashSet<String> envSet = new HashSet<String>();
Vector epVector = filter.getInitializationParameters();
for (int i = 0; i < epVector.size(); i++) {
EnvironmentProperty ep = (EnvironmentProperty) epVector.elementAt(i);
String epName = ep.getName();
if (epName.length() == 0) {
oneFailed = true;
result.addErrorDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.addErrorDetails(smh.getLocalString(getClass().getName() + ".failed1", "Error: Param name/value entry should of finite length."));
} else {
// Do duplicate name test.
if (!envSet.contains(epName)) {
envSet.add(epName);
} else {
oneFailed = true;
result.addErrorDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.addErrorDetails(smh.getLocalString(getClass().getName() + ".failed2", "Error: Duplicate param names are not allowed."));
}
}
}
}
if (oneFailed) {
result.setStatus(Result.FAILED);
} else {
result.addGoodDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.passed(smh.getLocalString(getClass().getName() + ".passed", "All init parameter names are unique"));
}
} else {
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable", "There are no initialization parameters for the filter within the web archive [ {0} ]", new Object[] { descriptor.getName() }));
}
return result;
}
use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class ListenerClass method check.
/**
* Listener class must implement a no arg constructor.
*
* @param descriptor the Web deployment descriptor
*
* @return <code>Result</code> the results for this assertion
*/
public Result check(WebBundleDescriptor descriptor) {
AppListenerDescriptor listener = null;
Enumeration listenerEnum;
Result result;
boolean oneFailed = false;
Class listenerClass = null;
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
listenerEnum = descriptor.getAppListenerDescriptors().elements();
if (listenerEnum.hasMoreElements()) {
result = loadWarFile(descriptor);
while (listenerEnum.hasMoreElements()) {
listener = (AppListenerDescriptor) listenerEnum.nextElement();
if (listener.getListener().equals(smh.getLocalString("JAXRPCContextListener", "com.sun.xml.rpc.server.http.JAXRPCContextListener"))) {
result.addGoodDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.passed(smh.getLocalString(getClass().getName() + ".passed1", "Listener Class Name is [ {0} ], make sure it is available in classpath at runtime.", new Object[] { listener.getListener() }));
continue;
}
if ("".equals(listener.getListener())) {
result.addErrorDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.failed(smh.getLocalString(getClass().getName() + ".failed", "Empty or Null String specified for Listener Class Name in [ {0} ].", new Object[] { compName.toString() }));
oneFailed = true;
continue;
}
listenerClass = loadClass(result, listener.getListener());
if (!runIndividualListenerTest(result, listenerClass))
oneFailed = true;
}
if (oneFailed) {
result.setStatus(Result.FAILED);
} else {
result.setStatus(Result.PASSED);
}
} else {
result = getInitializedResult();
result.setStatus(Result.NOT_APPLICABLE);
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.notApplicable(smh.getLocalString("com.sun.enterprise.tools.verifier.tests.web.ListenerClass" + ".notApplicable", "There are no listener components within the web archive [ {0} ]", new Object[] { descriptor.getName() }));
}
return result;
}
use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class SessionConfigTest method check.
/**
* The session-config element defines the session parameters for this web application
* The deployment descriptor instance file must not contain multiple elements of session-config.
*
* @param descriptor the Web deployment descriptor
*
* @return <code>Result</code> the results for this assertion
*/
public Result check(WebBundleDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
// This test is not applicable for application based on Servlet Spec 2.3
String prefix = XpathPrefixResolver.fakeXPrefix;
String query = prefix + ":" + "web-app/" + prefix + ":" + "session-config";
int count = getNonRuntimeCountNodeSet(query);
if (count == 0 || count == -1) {
addNaDetails(result, compName);
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable", "Not Applicable: Servlet session-config element is not Specified."));
} else if (count == 1) {
addGoodDetails(result, compName);
result.passed(smh.getLocalString(getClass().getName() + ".passed", "The session-config element is specified correctly"));
} else if (count > 1) {
addErrorDetails(result, compName);
result.failed(smh.getLocalString(getClass().getName() + ".failed", "The deployment descriptor instance contains multiple elements of session-config element"));
}
return result;
}
Aggregations