org.sonar.batch.bootstrapper
Class BootstrapClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by org.sonar.batch.bootstrapper.BootstrapClassLoader

public class BootstrapClassLoader
extends URLClassLoader

Special URLClassLoader to execute Sonar, which restricts loading from parent.


Constructor Summary
BootstrapClassLoader(ClassLoader parent, String... unmaskedPackages)
           
 
Method Summary
 void addURL(URL url)
           Visibility of a method has been relaxed to public.
 Class<?> findClass(String name)
           Visibility of a method has been relaxed to public.
 URL getResource(String name)
          Unlike ClassLoader.getResource(String) don't return resource from parent.
 Enumeration<URL> getResources(String name)
          Unlike ClassLoader.getResources(String) don't return resources from parent.
protected  Class<?> loadClass(String name, boolean resolve)
          Same behavior as in ClassLoader.loadClass(String, boolean), except loading from parent.
 
Methods inherited from class java.net.URLClassLoader
definePackage, 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, getResourceAsStream, 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

BootstrapClassLoader

public BootstrapClassLoader(ClassLoader parent,
                            String... unmaskedPackages)
Method Detail

addURL

public void addURL(URL url)
Visibility of a method has been relaxed to public.

Overrides:
addURL in class URLClassLoader

findClass

public Class<?> findClass(String name)
                   throws ClassNotFoundException
Visibility of a method has been relaxed to public.

Overrides:
findClass in class URLClassLoader
Throws:
ClassNotFoundException

loadClass

protected Class<?> loadClass(String name,
                             boolean resolve)
                      throws ClassNotFoundException
Same behavior as in ClassLoader.loadClass(String, boolean), except loading from parent.

Overrides:
loadClass in class ClassLoader
Throws:
ClassNotFoundException

getResource

public URL getResource(String name)
Unlike ClassLoader.getResource(String) don't return resource from parent. See http://jira.codehaus.org/browse/SONAR-2276

Overrides:
getResource in class ClassLoader

getResources

public Enumeration<URL> getResources(String name)
                              throws IOException
Unlike ClassLoader.getResources(String) don't return resources from parent. See http://jira.codehaus.org/browse/SONAR-2276

Overrides:
getResources in class ClassLoader
Throws:
IOException


Copyright © 2009-2012 SonarSource. All Rights Reserved.