FileDocCategorySizeDatePackage
JAXRPCEndpointIsServletClassCheck.javaAPI DocGlassfish v2 API6718Fri May 04 22:34:16 BST 2007com.sun.enterprise.tools.verifier.tests.webservices

JAXRPCEndpointIsServletClassCheck

public class JAXRPCEndpointIsServletClassCheck extends WSTest implements WSCheck

Fields Summary
Constructors Summary
Methods Summary
public Resultcheck(WebServiceEndpoint wsdescriptor)

param
descriptor the WebServices descriptor
return
Result the results for this assertion


	Result result = getInitializedResult();
        ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();

        ClassLoader loader = getVerifierContext().getClassLoader();

        if (wsdescriptor.implementedByWebComponent()) {
            WebBundleDescriptor webBundle = (WebBundleDescriptor)wsdescriptor.getBundleDescriptor();
            WebComponentDescriptor webComponent =
                (WebComponentDescriptor) webBundle.
                  getWebComponentByCanonicalName(wsdescriptor.getWebComponentLink());
            if( webComponent != null && webComponent.isServlet()) {
                String servletClass = wsdescriptor.getWebComponentImpl().
                                      getWebComponentImplementation();
                if ((servletClass == null) || (!wsdescriptor.getWebComponentImpl().isServlet())) {
                     //result.fail, webcomponentimpl for webservice is not servlet
                      result.addErrorDetails(smh.getLocalString ("tests.componentNameConstructor",
                                   "For [ {0} ]", new Object[] {compName.toString()}));
                      result.failed(smh.getLocalString
                      ("com.sun.enterprise.tools.verifier.tests.webservices.failed", "[{0}]",
                       new Object[] {"The WebComponent implementation for this JAX-RPC endpoint is not a servlet"}));

                }
                else {
                     // try to load the servlet class
                  try {
                    Class cl = Class.forName(servletClass, false, getVerifierContext().getClassLoader());
                      //result.pass
                      result.addGoodDetails(smh.getLocalString ("tests.componentNameConstructor",
                                   "For [ {0} ]", new Object[] {compName.toString()}));
                      result.passed(smh.getLocalString (
                          "com.sun.enterprise.tools.verifier.tests.webservices.clpassed", 
                          "The [{0}] Class [{1}] exists and was loaded successfully.",
                           new Object[] {"Servlet Class", servletClass}));

                  }catch (ClassNotFoundException e) {
                      //result.fail could not find servlet class
                      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[] {"Servlet Class", servletClass}));

                  }
                }
            }
            else {
                //result.fail, servlet-link could not be resolved
                result.addErrorDetails(smh.getLocalString ("tests.componentNameConstructor",
                                   "For [ {0} ]", new Object[] {compName.toString()}));
                result.failed(smh.getLocalString
                  ("com.sun.enterprise.tools.verifier.tests.webservices.failed", "[{0}]",
                  new Object[] {"The servlet-link for this JAX-RPC Endpoint could not be resolved"}));
 
            }
        }
        else {
          //result.notapplicable
          result.addNaDetails(smh.getLocalString
                     ("tests.componentNameConstructor", "For [ {0} ]",
                      new Object[] {compName.toString()}));
          result.notApplicable(smh.getLocalString
                 ("com.sun.enterprise.tools.verifier.tests.webservices.notapp",
                 "[{0}]", new Object[] {"Not Applicable since this is NOT a JAX-RPC Service Endpoint"}));

        }

        return result;