Search in sources :

Example 41 with Result

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;
}
Also used : InjectionTarget(com.sun.enterprise.deployment.InjectionTarget) SingleThreadModel(javax.servlet.SingleThreadModel) Result(com.sun.enterprise.tools.verifier.Result) EntityManagerReferenceDescriptor(com.sun.enterprise.deployment.EntityManagerReferenceDescriptor)

Example 42 with 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;
}
Also used : Enumeration(java.util.Enumeration) ServletFilterDescriptor(org.glassfish.web.deployment.descriptor.ServletFilterDescriptor) Result(com.sun.enterprise.tools.verifier.Result)

Example 43 with 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;
}
Also used : ServletFilterDescriptor(org.glassfish.web.deployment.descriptor.ServletFilterDescriptor) EnvironmentProperty(com.sun.enterprise.deployment.EnvironmentProperty) Result(com.sun.enterprise.tools.verifier.Result)

Example 44 with 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;
}
Also used : Enumeration(java.util.Enumeration) AppListenerDescriptor(com.sun.enterprise.deployment.web.AppListenerDescriptor) Result(com.sun.enterprise.tools.verifier.Result)

Example 45 with 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;
}
Also used : ComponentNameConstructor(com.sun.enterprise.tools.verifier.tests.ComponentNameConstructor) Result(com.sun.enterprise.tools.verifier.Result)

Aggregations

Result (com.sun.enterprise.tools.verifier.Result)288 ComponentNameConstructor (com.sun.enterprise.tools.verifier.tests.ComponentNameConstructor)212 EjbEntityDescriptor (org.glassfish.ejb.deployment.descriptor.EjbEntityDescriptor)88 VerifierTestContext (com.sun.enterprise.tools.verifier.VerifierTestContext)66 Method (java.lang.reflect.Method)66 Iterator (java.util.Iterator)50 EjbSessionDescriptor (org.glassfish.ejb.deployment.descriptor.EjbSessionDescriptor)28 Set (java.util.Set)26 EjbCMPEntityDescriptor (org.glassfish.ejb.deployment.descriptor.EjbCMPEntityDescriptor)17 Enumeration (java.util.Enumeration)15 EjbSessionDescriptor (com.sun.enterprise.deployment.EjbSessionDescriptor)14 EjbDescriptor (org.glassfish.ejb.deployment.descriptor.EjbDescriptor)14 Field (java.lang.reflect.Field)13 EnvironmentProperty (com.sun.enterprise.deployment.EnvironmentProperty)10 MethodDescriptor (com.sun.enterprise.deployment.MethodDescriptor)9 EjbBundleDescriptorImpl (org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl)9 FieldDescriptor (org.glassfish.ejb.deployment.descriptor.FieldDescriptor)9 TagLibDescriptor (com.sun.enterprise.tools.verifier.TagLibDescriptor)7 ConnectionDefDescriptor (com.sun.enterprise.deployment.ConnectionDefDescriptor)6 EjbReferenceDescriptor (com.sun.enterprise.deployment.EjbReferenceDescriptor)6