code: public static ExtensionClassLoader getInstance(final File extension,
              final ClassLoader parent) throws GuacamoleException {
  
          try {
              // Attempt to create classloader which loads classes from the given
              // .jar file
              return AccessController.doPrivileged(new PrivilegedExceptionAction<ExtensionClassLoader>() {
  
                  @Override
                  public ExtensionClassLoader run() throws GuacamoleException {
                      return new ExtensionClassLoader(extension, parent);
                  }
  
              });
          }
  
          catch (PrivilegedActionException e) {
              throw (GuacamoleException) e.getException();
          }
  
      }
docs: Returns an instance of ExtensionClassLoader configured to load classes
  from the given extension .jar. If a necessary class cannot be found
  within the .jar, the given parent ClassLoader is used. Calling this
  function multiple times will not affect previously-returned instances of
  ExtensionClassLoader.
  
  @param extension
  The extension .jar file from which classes should be loaded.
  
  @param parent
  The ClassLoader to use if class resolution through the extension
  .jar fails.
  
  @return
  A ExtensionClassLoader instance which loads classes from the
  given extension .jar file.
  
  @throws GuacamoleException
  If the given file is not actually a file, or the contents of the
  file cannot be read.