use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class StatefulSessionBeanInjection method check.
public Result check(WebBundleDescriptor descriptor) {
// initialize the result object
Result result = getInitializedResult();
addWarningDetails(result, getVerifierContext().getComponentNameConstructor());
// default status is PASSED
result.setStatus(Result.PASSED);
Set<EjbReference> s = descriptor.getEjbReferenceDescriptors();
if (s == null)
return result;
for (EjbReference ejbRefDesc : s) {
EjbDescriptor ejbDescriptor = ejbRefDesc.getEjbDescriptor();
if (ejbDescriptor instanceof EjbSessionDescriptor) {
// instaceof returns false if ejbDescriptor=null.
String stateType = ((EjbSessionDescriptor) ejbDescriptor).getSessionType();
if (EjbSessionDescriptor.STATEFUL.equals(stateType)) {
Set<InjectionTarget> injectionTargets = ejbRefDesc.getInjectionTargets();
if (injectionTargets != null) {
for (InjectionTarget it : injectionTargets) {
String itClassName = it.getClassName();
result.warning(smh.getLocalString(className + ".warning", "Found a stateful session bean [ {0} ] injected into [ {1} ].", new Object[] { ejbDescriptor.getEjbClassName(), itClassName }));
}
}
}
}
}
return result;
}
use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class TagClassExtendsValidInterface method check.
public Result check(WebBundleDescriptor descriptor) {
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
VerifierTestContext context = getVerifierContext();
Result result = loadWarFile(descriptor);
TagLibDescriptor[] tlds = context.getTagLibDescriptors();
boolean failed = false;
boolean oneFailed = false;
if (tlds == null) {
addGoodDetails(result, compName);
result.passed(smh.getLocalString(getClass().getName() + ".passed", "No tag lib files are specified"));
return result;
}
for (TagLibDescriptor tld : tlds) {
TagDescriptor[] tagDesc = tld.getTagDescriptors();
for (TagDescriptor td : tagDesc) {
String tagclass = td.getTagClass();
Class c = loadClass(result, tagclass);
if (c != null) {
if (tld.getSpecVersion().trim().equalsIgnoreCase("2.0")) {
failed = !javax.servlet.jsp.tagext.JspTag.class.isAssignableFrom(c);
} else {
failed = !javax.servlet.jsp.tagext.Tag.class.isAssignableFrom(c);
}
if (failed) {
oneFailed = true;
addErrorDetails(result, compName);
result.addErrorDetails(smh.getLocalString(getClass().getName() + ".failed", "Error: tag class [ {0} ] in [ {1} ] does not implements valid interface", new Object[] { c.getName(), tld.getUri() }));
} else {
addGoodDetails(result, compName);
result.addGoodDetails(smh.getLocalString(getClass().getName() + ".passed1", "tag class [ {0} ] in [ {1} ] implements valid interface", new Object[] { c.getName(), tld.getUri() }));
}
}
}
// for
}
if (oneFailed)
result.setStatus(Result.FAILED);
else
result.setStatus(Result.PASSED);
return result;
}
use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class TagNameIsUnique method check.
public Result check(WebBundleDescriptor descriptor) {
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
VerifierTestContext context = getVerifierContext();
Result result = loadWarFile(descriptor);
TagLibDescriptor[] tlds = context.getTagLibDescriptors();
if (tlds == null) {
addGoodDetails(result, compName);
result.passed(smh.getLocalString(getClass().getName() + ".passed", "No tag lib files are specified"));
return result;
}
for (TagLibDescriptor tld : tlds) {
TagDescriptor[] tagDesc = tld.getTagDescriptors();
List<String> name = new ArrayList<String>();
for (TagDescriptor td : tagDesc) {
name.add(td.getTagName());
}
if (name != null) {
String[] names = (String[]) name.toArray(new String[0]);
if (!checkForDuplicateNames(result, compName, names, tld)) {
addGoodDetails(result, compName);
result.addGoodDetails(smh.getLocalString(getClass().getName() + ".passed1", "All 'name' elements are defined properly under tag element of [ {0} ]", new Object[] { tld.getUri() }));
}
}
}
if (oneFailed) {
result.setStatus(Result.FAILED);
} else {
result.setStatus(Result.PASSED);
}
return result;
}
use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class URLPattern method check.
/**
* The content of the url-pattern element follows the rules specified in
* section 10 of the servlet spec.
*
* @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();
result.setStatus(Result.NOT_APPLICABLE);
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.addNaDetails(smh.getLocalString(getClass().getName() + ".notApplicable", "There is no url-pattern element within the web archive [ {0} ]", new Object[] { descriptor.getName() }));
checkWebResourceCollections(descriptor, result, compName);
checkServletMappings(descriptor, result, compName);
checkServletFilterMappings(descriptor, result, compName);
checkJspGroupProperties(descriptor, result, compName);
if (oneFailed)
result.setStatus(Result.FAILED);
else if (oneWarning)
result.setStatus(Result.WARNING);
return result;
}
use of com.sun.enterprise.tools.verifier.Result in project Payara by payara.
the class EjbFinderMethodName method check.
/**
* ejbFind<METHOD>(...) methods test.
*
* EJB class contains all ejbFind<METHOD>(...) methods declared in the bean
* class.
*
* The signatures of the finder methods must follow the following rules:
*
* A finder method name must start with the prefix ``ejbFind''
* (e.g. ejbFindByPrimaryKey, ejbFindLargeAccounts, ejbFindLateShipments).
*
* @param descriptor the Enterprise Java Bean deployment descriptor
*
* @return <code>Result</code> the results for this assertion
*/
public Result check(EjbDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
if (descriptor instanceof EjbEntityDescriptor) {
String persistence = ((EjbEntityDescriptor) descriptor).getPersistenceType();
if (EjbEntityDescriptor.BEAN_PERSISTENCE.equals(persistence)) {
boolean oneFailed = false;
int foundAtLeastOne = 0;
try {
// retrieve the home interface methods
VerifierTestContext context = getVerifierContext();
ClassLoader jcl = context.getClassLoader();
// retrieve the EJB Class Methods
Class EJBClass = Class.forName(descriptor.getEjbClassName(), false, getVerifierContext().getClassLoader());
// start do while loop here....
do {
Method[] ejbFinderMethods = EJBClass.getDeclaredMethods();
for (int j = 0; j < ejbFinderMethods.length; ++j) {
if (ejbFinderMethods[j].getName().startsWith("ejbFind")) {
foundAtLeastOne++;
result.addGoodDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.addGoodDetails(smh.getLocalString(getClass().getName() + ".debug1", "For EJB Class [ {0} ] method [ {1} ]", new Object[] { EJBClass.getName(), ejbFinderMethods[j].getName() }));
result.addGoodDetails(smh.getLocalString(getClass().getName() + ".passed", "A properly named [ {0} ] method was found.", new Object[] { ejbFinderMethods[j].getName() }));
}
}
} while (((EJBClass = EJBClass.getSuperclass()) != null) && (foundAtLeastOne == 0));
if (foundAtLeastOne == 0) {
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable1", "[ {0} ] does not declare any ejbFind<METHOD>(...) methods.", new Object[] { descriptor.getEjbClassName() }));
}
} catch (ClassNotFoundException e) {
Verifier.debug(e);
result.addErrorDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.failed(smh.getLocalString(getClass().getName() + ".failedException", "Error: EJB Class [ {1} ] does not exist or is not loadable.", new Object[] { descriptor.getEjbClassName() }));
oneFailed = true;
}
if (oneFailed) {
result.setStatus(result.FAILED);
} else if (foundAtLeastOne == 0) {
result.setStatus(result.NOT_APPLICABLE);
} else {
result.setStatus(result.PASSED);
}
return result;
} else {
// CONTAINER_PERSISTENCE.equals(persistence)
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable2", "Expected [ {0} ] managed persistence, but [ {1} ] bean has [ {2} ] managed persistence.", new Object[] { EjbEntityDescriptor.BEAN_PERSISTENCE, descriptor.getName(), persistence }));
return result;
}
} else {
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable", "[ {0} ] expected {1} bean, but called with {2} bean.", new Object[] { getClass(), "Entity", "Session" }));
return result;
}
}
Aggregations