Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.tools.ant
Class AntClassLoader

    java.lang.Object
      |
      +--java.lang.ClassLoader
            |
            +--org.apache.tools.ant.AntClassLoader

public class AntClassLoader
extends java.lang.ClassLoader

Used to load classes within ant with a different claspath from that used to start ant. Note that it is possible to force a class into this loader even when that class is on the system classpath by using the forceLoadClass method. Any subsequent classes loaded by that class will then use this loader rather than the system class loader.

Author:
  Conor MacNeill, Jesse Glick

Constructor Summary
`AntClassLoader(Project project, Path classpath)` Create a classloader for the given project using the classpath given.
`AntClassLoader(Project project, Path classpath, boolean systemFirst)` Create a classloader for the given project using the classpath given.

Method Summary
`void` | `addLoaderPackageRoot(java.lang.String packageRoot)` Add a package root to the list of packages which must be loaded using this loader.
`void` | `addSystemPackageRoot(java.lang.String packageRoot)` Add a package root to the list of packages which must be loaded on the system loader.
`java.lang.Class` | `findClass(java.lang.String name)` Search for and load a class on the classpath of this class loader.
`java.lang.Class` | `forceLoadClass(java.lang.String classname)` Load a class through this class loader even if that class is available on the system classpath.
`java.lang.Class` | `forceLoadSystemClass(java.lang.String classname)` Load a class through this class loader but defer to the system class loader This ensures that instances of the returned class will be compatible with instances which which have already been loaded on the system loader.
`java.io.InputStream` | `getResourceAsStream(java.lang.String name)` Get a stream to read the requested resource name.
`protected java.lang.Class` | `loadClass(java.lang.String classname, boolean resolve)` Load a class with this class loader.
`void` | `setIsolated(boolean isolated)` Set this classloader to run in isolated mode.

Methods inherited from class java.lang.ClassLoader
`defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setSigners`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AntClassLoader

    public AntClassLoader(Project project,
                          Path classpath)

  Create a classloader for the given project using the classpath given.
  Parameters:
    `project` - the project to ehich this classloader is to belong.
    `classpath` - the classpath to use to load the classes. This is combined with the system classpath in a manner determined by the value of ${build.sysclasspath}

### AntClassLoader

    public AntClassLoader(Project project,
                          Path classpath,
                          boolean systemFirst)

  Create a classloader for the given project using the classpath given.
  Parameters:
    `project` - the project to which this classloader is to belong.
    `classpath` - the classpath to use to load the classes.

Method Detail

### setIsolated

    public void setIsolated(boolean isolated)

  Set this classloader to run in isolated mode. In isolated mode, classes not found on the given classpath will not be referred to the base class loader but will cause a classNotFoundException.

### addSystemPackageRoot

    public void addSystemPackageRoot(java.lang.String packageRoot)

  Add a package root to the list of packages which must be loaded on the system loader. All subpackages are also included.
  Parameters:
    `packageRoot` - the root of all packages to be included.

### addLoaderPackageRoot

    public void addLoaderPackageRoot(java.lang.String packageRoot)

  Add a package root to the list of packages which must be loaded using this loader. All subpackages are also included.
  Parameters:
    `packageRoot` - the root of akll packages to be included.

### forceLoadClass

    public java.lang.Class forceLoadClass(java.lang.String classname)
                                   throws java.lang.ClassNotFoundException

  Load a class through this class loader even if that class is available on the system classpath. This ensures that any classes which are loaded by the returned class will use this classloader.
  Parameters:
    `classname` - the classname to be loaded.
  Returns:
    the required Class object
  Throws:
    `java.lang.ClassNotFoundException` - if the requested class does not exist on this loader's classpath.

### forceLoadSystemClass

    public java.lang.Class forceLoadSystemClass(java.lang.String classname)
                                         throws java.lang.ClassNotFoundException

  Load a class through this class loader but defer to the system class loader This ensures that instances of the returned class will be compatible with instances which which have already been loaded on the system loader.
  Parameters:
    `classname` - the classname to be loaded.
  Returns:
    the required Class object
  Throws:
    `java.lang.ClassNotFoundException` - if the requested class does not exist on this loader's classpath.

### getResourceAsStream

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

  Get a stream to read the requested resource name.
  Overrides:
    `getResourceAsStream` in class `java.lang.ClassLoader`
  Parameters:
    `name` - the name of the resource for which a stream is required.
  Returns:
    a stream to the required resource or null if the resource cannot be found on the loader's classpath.

### loadClass

    protected java.lang.Class loadClass(java.lang.String classname,
                                        boolean resolve)
                                 throws java.lang.ClassNotFoundException

  Load a class with this class loader. This method will load a class. This class attempts to load the class firstly using the parent class loader. For JDK 1.1 compatability, this uses the findSystemClass method.
  Overrides:
    `loadClass` in class `java.lang.ClassLoader`
  Parameters:
    `classname` - the name of the class to be loaded.
    `resolve` - true if all classes upon which this class depends are to be loaded.
  Returns:
    the required Class object
  Throws:
    `java.lang.ClassNotFoundException` - if the requested class does not exist on the system classpath or this loader's classpath.

### findClass

    public java.lang.Class findClass(java.lang.String name)
                              throws java.lang.ClassNotFoundException

  Search for and load a class on the classpath of this class loader.
  Overrides:
    `findClass` in class `java.lang.ClassLoader`
  Parameters:
    `name` - the classname to be loaded.
  Returns:
    the required Class object
  Throws:
    `java.lang.ClassNotFoundException` - if the requested class does not exist on this loader's classpath.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000 Apache Software Foundation. All Rights Reserved.