code: @SuppressWarnings("unchecked")
      protected static void logMetaInf()
      {
          if (!log.isLoggable(Level.WARNING))
          {
            return;
          }
  
          try
          {
              Map<String, List<JarInfo>> libs = new HashMap<String, List<JarInfo>>(30);
  
              Iterator<URL> it = ClassUtils.getResources("META-INF/MANIFEST.MF", LogMetaInfUtils.class);
              while (it.hasNext())
              {
                  URL url = it.next();
                  addJarInfo(libs, url);
              }
  
              final List<String> keys = new ArrayList(libs.keySet());
              Collections.sort(keys);
  
              if (log.isLoggable(Level.WARNING))
              {
                  for (String artifactId : keys)
                  {
                      List<JarInfo> versions = libs.get(artifactId);
                      if (versions != null && versions.size() > 1)
                      {
                          StringBuilder builder = new StringBuilder(1024);
                          builder.append("You are using the library: ");
                          builder.append(artifactId);
                          builder.append(" in different versions; first (and probably used) version is: ");
                          builder.append(versions.get(0).getVersion());
                          builder.append(" loaded from: ");
                          builder.append(versions.get(0).getUrl());
                          builder.append(", but also found the following versions: ");
  
                          boolean needComma = false;
                          for (int i = 1; i < versions.size(); i++)
                          {
                              JarInfo info = versions.get(i);
                              if (needComma)
                              {
                                  builder.append(", ");
                              }
  
                              builder.append(info.getVersion());
                              builder.append(" loaded from: ");
                              builder.append(info.getUrl());
  
                              needComma = true;
                          }
  
                          log.warning(builder.toString());
                      }
                  }
              }
  
              if (log.isLoggable(Level.INFO))
              {
                  for (String artifactId : keys)
                  {
                      logArtifact(artifactId, libs);
                  }
              }
          }
          catch (Throwable e)
          {
              throw new FacesException(e);
          }
      }
docs: This method performs part of the factory search outlined in section 10.2.6.1.