public Result check(WebBundleDescriptor descriptor) {

    Result result = getInitializedResult();
    addWarningDetails(result, getVerifierContext().getComponentNameConstructor());
    result.setStatus(Result.PASSED); // default status is 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;
  }