Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
boolean pass = true;
if (descriptor.hasHandlers()) {
List handlers = descriptor.getHandlers();
for (Iterator it = handlers.iterator(); it.hasNext();) {
String hClass = ((WebServiceHandler)it.next()).getHandlerClass();
Class cl = null;
try {
cl = Class.forName(hClass, false, getVerifierContext().getClassLoader());
if ((cl != null) && ((javax.xml.rpc.handler.Handler.class).isAssignableFrom(cl))) {
//result.pass
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.passed(smh.getLocalString (getClass().getName() + ".passed",
"The Handler Class [{0}] exists and implements the javax.xml.rpc.handler.Handler Interface.",
new Object[] {hClass}));
}
else {
//result.fail, handler class does not extend javax.xml.rpc.handler.Handler
result.addErrorDetails(smh.getLocalString ("tests.componentNameConstructor",
"For [ {0} ]", new Object[] {compName.toString()}));
result.failed(smh.getLocalString (getClass().getName() + ".failed",
"Handler Class [{0}] does not implement javax.xml.rpc.handler.Handler",
new Object[] {hClass}));
pass = false;
}
}
catch (ClassNotFoundException e) {
// result.fail, handler class not found
result.addErrorDetails(smh.getLocalString ("tests.componentNameConstructor",
"For [ {0} ]", new Object[] {compName.toString()}));
result.failed(smh.getLocalString (
"com.sun.enterprise.tools.verifier.tests.webservices.clfailed",
"The [{0}] Class [{1}] could not be Loaded",
new Object[] {"Handler Class", hClass}));
}
}
}
else {
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor", "For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
( getClass().getName() + ".notapp",
"Not Applicable since No handlers defined in this WebService"));
}
return result;