docs: public static Collection<URL> searchInWebLib(
              ExternalContext context, ClassLoader classloader, String filter, 
              String prefix, String suffix) throws IOException
      {
          if (!filter.equals("none"))
          {
              String[] jarFilesToScan = StringUtils.trim(StringUtils.splitLongString(filter, ','));
              Set<URL> urlSet = null;
              Set<String> paths = context.getResourcePaths(WEB_LIB_PREFIX);
              if (paths != null)
              {
                  for (Object pathObject : paths)
                  {
                      String path = (String) pathObject;
                      if (path.endsWith(".jar") && wildcardMatch(path, jarFilesToScan, WEB_LIB_PREFIX))
                      {
                          // GAE does not use WAR format, so the app is just uncompressed in a directory
                          // What we need here is just take the path of the file, and open the file as a
                          // jar file. Then, if the jar should be scanned, try to find the required file.
                          URL jarUrl = new URL("jar:" + context.getResource(path).toExternalForm() + "!/");
                          JarFile jarFile = JarUtils.getJarFile(jarUrl);
  
                          Enumeration<JarEntry> entries = jarFile.entries();
                          while (entries.hasMoreElements())
                          {
                              JarEntry entry = entries.nextElement();
                              if (entry.isDirectory())
                              {
                                  continue; // This is a directory
                              }
                              String name = entry.getName();
                              if (!name.startsWith(prefix))
                              {
                                  continue; // Attribute files
                              }
                              if (name.endsWith(suffix))
                              {
                                  // Get it from classloader, because no URL can be
                                  // derived from JarEntry
                                  Enumeration<URL> alternateFacesConfigs = classloader.getResources(name);
                                  while (alternateFacesConfigs.hasMoreElements())
                                  {
                                      if (urlSet == null)
                                      {
                                          urlSet = new TreeSet<URL>();
                                      }
                                      urlSet.add(alternateFacesConfigs.nextElement());
                                  }
                              }
                          }
                      }
                  }
              }
              return urlSet;
          }
          return null;
      }