docs: private static @Nonnull URL[] createClassloaderUrls(@Nonnull URL url) throws PluginException {
          List<URL> urls = new ArrayList<>();
          urls.add(url);
  
          Manifest mf = null;
          File f = new File(url.getPath());
          // default: try with jar/zip/war etc files
          if(!f.isDirectory()) {
              JarInputStream jis = null;
              try {
                  jis = new JarInputStream(url.openStream());
                  mf = jis.getManifest();
              } catch (IOException ioe) {
                  throw new PluginException("Failed loading manifest for plugin jar: " + url, ioe);
              } finally {
                  IO.close(jis);
              }
          } else {
              // If this is not a jar/zip/war etc file, can we can load from directory?
              // Allow plugins be loaded from "exploded jar" directories (e.g. while debugging
              // 3rd party FB plugin projects in Eclipse without packaging them to jars at all)
              File manifest = guessManifest(f);
              if(manifest != null){
                  FileInputStream is = null;
                  try {
                      is = new FileInputStream(manifest);
                      mf = new Manifest(is);
                  } catch (IOException e) {
                      throw new PluginException("Failed loading manifest for plugin jar: " + url, e);
                  } finally {
                      IO.close(is);
                  }
              }
          }
          if(mf != null){
              try {
                  addClassPathFromManifest(url, urls, mf);
              } catch (MalformedURLException e) {
                  throw new PluginException("Failed loading manifest for plugin jar: " + url, e);
              }
          }
          return urls.toArray(new URL[urls.size()]);
      }