org.gradle
Class ParentLastClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by org.gradle.ParentLastClassLoader

public class ParentLastClassLoader
extends java.net.URLClassLoader

This class loader delegates to the parent class loader ONLY if it cannot find it itself. This is meant to solve classloading issues when running something as, say, a plugin inside an application that may have already loaded a different version of some required jars. This makes sure it looks locally first. This is the opposite of a ClassLoader's typical behavior, but it necessary when you can't control the environment in which you're running. Using this class can be very dangerous. You must carefully make sure you understand the ramifications of using this. You should also probably make this the first class loader between your plugin and the plugin's owner.


Constructor Summary
ParentLastClassLoader(java.net.URL[] urls)
           
ParentLastClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent)
           
ParentLastClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent, java.net.URLStreamHandlerFactory factory)
           
 
Method Summary
 java.lang.Class<?> loadClass(java.lang.String name)
           
 
Methods inherited from class java.net.URLClassLoader
addURL, definePackage, findClass, findResource, findResources, getPermissions, getURLs, newInstance, newInstance
 
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParentLastClassLoader

public ParentLastClassLoader(java.net.URL[] urls,
                             java.lang.ClassLoader parent)

ParentLastClassLoader

public ParentLastClassLoader(java.net.URL[] urls)

ParentLastClassLoader

public ParentLastClassLoader(java.net.URL[] urls,
                             java.lang.ClassLoader parent,
                             java.net.URLStreamHandlerFactory factory)
Method Detail

loadClass

public java.lang.Class<?> loadClass(java.lang.String name)
                             throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException