Groovy Documentation

org.codehaus.groovy.grails.cli.support
[Groovy] Class ChildFirstURLClassLoader

java.lang.Object
  java.lang.ClassLoader
      java.security.SecureClassLoader
          java.net.URLClassLoader
              groovy.lang.GroovyClassLoader
                  org.codehaus.groovy.grails.cli.support.ChildFirstURLClassLoader

@groovy.transform.CompileStatic
class ChildFirstURLClassLoader
extends groovy.lang.GroovyClassLoader

Based on http://stackoverflow.com/a/6424879/166062 Loads classes from the child first, before trying parent

Authors:
Graeme Rocher


Constructor Summary
ChildFirstURLClassLoader()

ChildFirstURLClassLoader(java.lang.ClassLoader parent)

 
Method Summary
java.net.URL getResource(java.lang.String name)

java.io.InputStream getResourceAsStream(java.lang.String name)

Similar to super, but local resources are enumerated before parent resources

java.util.Enumeration getResources(java.lang.String name)

protected java.lang.Class loadClass(java.lang.String name, boolean resolve)

 
Methods inherited from class groovy.lang.GroovyClassLoader
groovy.lang.GroovyClassLoader#parseClass(groovy.lang.GroovyCodeSource, boolean), groovy.lang.GroovyClassLoader#parseClass(java.io.File), groovy.lang.GroovyClassLoader#parseClass(java.lang.String, java.lang.String), groovy.lang.GroovyClassLoader#parseClass(java.lang.String), groovy.lang.GroovyClassLoader#parseClass(java.io.InputStream, java.lang.String), groovy.lang.GroovyClassLoader#parseClass(groovy.lang.GroovyCodeSource), groovy.lang.GroovyClassLoader#addClasspath(java.lang.String), groovy.lang.GroovyClassLoader#setResourceLoader(groovy.lang.GroovyResourceLoader), groovy.lang.GroovyClassLoader#getResourceLoader(), groovy.lang.GroovyClassLoader#generateScriptName(), groovy.lang.GroovyClassLoader#getLoadedClasses(), groovy.lang.GroovyClassLoader#setShouldRecompile(java.lang.Boolean), groovy.lang.GroovyClassLoader#isShouldRecompile(), groovy.lang.GroovyClassLoader#loadClass(java.lang.String, boolean, boolean), groovy.lang.GroovyClassLoader#loadClass(java.lang.String, boolean, boolean, boolean), groovy.lang.GroovyClassLoader#loadClass(java.lang.String), groovy.lang.GroovyClassLoader#defineClass(org.codehaus.groovy.ast.ClassNode, java.lang.String, java.lang.String), groovy.lang.GroovyClassLoader#defineClass(java.lang.String, [B), groovy.lang.GroovyClassLoader#clearCache(), groovy.lang.GroovyClassLoader#addURL(java.net.URL), groovy.lang.GroovyClassLoader#newInstance([Ljava.net.URL;, java.lang.ClassLoader), groovy.lang.GroovyClassLoader#newInstance([Ljava.net.URL;), groovy.lang.GroovyClassLoader#getResourceAsStream(java.lang.String), groovy.lang.GroovyClassLoader#findResource(java.lang.String), groovy.lang.GroovyClassLoader#findResources(java.lang.String), groovy.lang.GroovyClassLoader#close(), groovy.lang.GroovyClassLoader#getURLs(), groovy.lang.GroovyClassLoader#getSystemClassLoader(), groovy.lang.GroovyClassLoader#getResource(java.lang.String), groovy.lang.GroovyClassLoader#getSystemResourceAsStream(java.lang.String), groovy.lang.GroovyClassLoader#getSystemResource(java.lang.String), groovy.lang.GroovyClassLoader#getResources(java.lang.String), groovy.lang.GroovyClassLoader#getSystemResources(java.lang.String), groovy.lang.GroovyClassLoader#getParent(), groovy.lang.GroovyClassLoader#setDefaultAssertionStatus(boolean), groovy.lang.GroovyClassLoader#setPackageAssertionStatus(java.lang.String, boolean), groovy.lang.GroovyClassLoader#setClassAssertionStatus(java.lang.String, boolean), groovy.lang.GroovyClassLoader#clearAssertionStatus(), groovy.lang.GroovyClassLoader#wait(long, int), groovy.lang.GroovyClassLoader#wait(long), groovy.lang.GroovyClassLoader#wait(), groovy.lang.GroovyClassLoader#equals(java.lang.Object), groovy.lang.GroovyClassLoader#toString(), groovy.lang.GroovyClassLoader#hashCode(), groovy.lang.GroovyClassLoader#getClass(), groovy.lang.GroovyClassLoader#notify(), groovy.lang.GroovyClassLoader#notifyAll()
 
Methods inherited from class java.net.URLClassLoader
java.net.URLClassLoader#newInstance([Ljava.net.URL;, java.lang.ClassLoader), java.net.URLClassLoader#newInstance([Ljava.net.URL;), java.net.URLClassLoader#getResourceAsStream(java.lang.String), java.net.URLClassLoader#findResource(java.lang.String), java.net.URLClassLoader#findResources(java.lang.String), java.net.URLClassLoader#close(), java.net.URLClassLoader#getURLs(), java.net.URLClassLoader#loadClass(java.lang.String), java.net.URLClassLoader#getSystemClassLoader(), java.net.URLClassLoader#getResource(java.lang.String), java.net.URLClassLoader#getSystemResourceAsStream(java.lang.String), java.net.URLClassLoader#getSystemResource(java.lang.String), java.net.URLClassLoader#getResources(java.lang.String), java.net.URLClassLoader#getSystemResources(java.lang.String), java.net.URLClassLoader#getParent(), java.net.URLClassLoader#setDefaultAssertionStatus(boolean), java.net.URLClassLoader#setPackageAssertionStatus(java.lang.String, boolean), java.net.URLClassLoader#setClassAssertionStatus(java.lang.String, boolean), java.net.URLClassLoader#clearAssertionStatus(), java.net.URLClassLoader#wait(long, int), java.net.URLClassLoader#wait(long), java.net.URLClassLoader#wait(), java.net.URLClassLoader#equals(java.lang.Object), java.net.URLClassLoader#toString(), java.net.URLClassLoader#hashCode(), java.net.URLClassLoader#getClass(), java.net.URLClassLoader#notify(), java.net.URLClassLoader#notifyAll()
 

Constructor Detail

ChildFirstURLClassLoader

ChildFirstURLClassLoader()


ChildFirstURLClassLoader

ChildFirstURLClassLoader(java.lang.ClassLoader parent)


 
Method Detail

getResource

@java.lang.Override
java.net.URL getResource(java.lang.String name)


getResourceAsStream

@java.lang.Override
java.io.InputStream getResourceAsStream(java.lang.String name)
Similar to super, but local resources are enumerated before parent resources


getResources

@java.lang.Override
java.util.Enumeration getResources(java.lang.String name)


loadClass

@java.lang.Override
protected java.lang.Class loadClass(java.lang.String name, boolean resolve)


 

Groovy Documentation