public static void printClassPath()

in modules/vfs-class-loader/src/main/java/org/apache/accumulo/classloader/vfs/ClassPathPrinter.java [58:130]


  public static void printClassPath(ClassLoader cl, Printer out, boolean debug) {
    try {
      ArrayList<ClassLoader> classloaders = new ArrayList<>();

      while (cl != null) {
        classloaders.add(cl);
        cl = cl.getParent();
      }

      Collections.reverse(classloaders);

      int level = 0;

      for (ClassLoader classLoader : classloaders) {

        level++;

        if (debug && level > 1) {
          out.print("\n");
        }
        if (!debug && level < 2) {
          continue;
        }

        boolean sawFirst = false;
        if (classLoader.getClass().getName().startsWith("jdk.internal")) {
          if (debug) {
            out.print("Level " + level + ": " + classLoader.getClass().getName()
                + " configuration not inspectable.\n");
          }
        } else if (classLoader instanceof URLClassLoader) {
          if (debug) {
            out.print("Level " + level + ": URL classpath, items are:\n");
          }
          for (URL u : ((URLClassLoader) classLoader).getURLs()) {
            printJar(out, u.getFile(), debug, sawFirst);
            sawFirst = true;
          }
        } else if (classLoader instanceof AccumuloVFSClassLoader) {
          if (debug) {
            out.print("Level " + level + ": ReloadingVFSClassLoader, classpath items are:\n");
          }
          @SuppressWarnings("resource")
          AccumuloVFSClassLoader vcl = (AccumuloVFSClassLoader) classLoader;
          ClassLoader delegate = vcl.getDelegateClassLoader();
          if (delegate instanceof VFSClassLoaderWrapper) {
            VFSClassLoaderWrapper wrapper = (VFSClassLoaderWrapper) delegate;
            for (FileObject f : wrapper.getFileObjects()) {
              printJar(out, f.getURL().getFile(), debug, sawFirst);
              sawFirst = true;
            }
          }
        } else if (classLoader instanceof VFSClassLoader) {
          if (debug) {
            out.print("Level " + level + ": VFSClassLoader, classpath items are:\n");
          }
          VFSClassLoader vcl = (VFSClassLoader) classLoader;
          for (FileObject f : vcl.getFileObjects()) {
            printJar(out, f.getURL().getFile(), debug, sawFirst);
            sawFirst = true;
          }
        } else {
          if (debug) {
            out.print("Level " + level + ": Unknown classloader configuration "
                + classLoader.getClass() + "\n");
          }
        }
      }
      out.print("\n");
    } catch (Throwable t) {
      throw new RuntimeException(t);
    }
  }