code: private void registerConvertersFromJarFile(String converterClassResourceName, URL converterClassResourceLocation) {
  
      String converterClassResourceLocationString = converterClassResourceLocation.toExternalForm();
  
      String convertersPackageResourceName = CONVERTERS_PACKAGE.getName().replaceAll("\\.", "/");
  
      String jarFilePathname = converterClassResourceLocationString.contains(".jar!/")
        ? converterClassResourceLocationString.substring(0, converterClassResourceLocationString.indexOf(".jar!/")).concat(".jar")
        : converterClassResourceLocationString;
  
      jarFilePathname = jarFilePathname.startsWith("jar:file:")
        ? jarFilePathname.substring("jar:file:".length())
        : jarFilePathname;
  
      try {
  
        JarFile jarFile = new JarFile(new File(jarFilePathname));
  
        for (JarEntry jarEntry : CollectionUtils.asIterable(jarFile.entries())) {
  
          String jarEntryName = jarEntry.getName();
  
          if (jarEntryName.startsWith(convertersPackageResourceName)
            && jarEntryName.endsWith(ClassUtils.CLASS_FILE_EXTENSION)) {
  
            String converterClassName = jarEntryName.replaceAll("/", ".");
  
            converterClassName = converterClassName.endsWith(CLASS_FILE_EXTENSION)
              ? converterClassName.substring(0, converterClassName.indexOf(CLASS_FILE_EXTENSION))
              : converterClassName;
  
            register(converterClassName);
          }
        }
      }
      catch (IOException cause) {
        throw newRuntimeException(cause, "Failed to access JAR file [%s]", jarFilePathname);
      }
    }
docs: /* (non-Javadoc)