Classloader (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.taskdefs

## Class Classloader

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.Classloader

- All Implemented Interfaces:
    java.lang.Cloneable

      public class Classloader
      extends Task

  EXPERIMENTAL Create or modifies ClassLoader. The required pathRef parameter will be used to add classpath elements. The classpath is a regular path. Currently only file components are supported (future extensions may allow URLs). You can modify the core loader by not specifying any name or using "ant.coreLoader". (the core loader is used to load system ant tasks and for taskdefs that don't specify an explicit path). Taskdef and typedef can use the loader you create if the name follows the "ant.loader.NAME" pattern. NAME will be used as a pathref when calling taskdef. This tasks will not modify the core loader if "build.sysclasspath=only" The typical use is:

        <path id="ant.deps" >
           <fileset dir="myDir" >
              <include name="junit.jar, bsf.jar, js.jar, etc"/>
           </fileset>
        </path>

        <classloader pathRef="ant.deps" />

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `SYSTEM_LOADER_REF`

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Classloader()` Default constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `Path` | `createClasspath()` Create a classpath.
    `void` | `execute()` do the classloader manipulation.
    `void` | `setClasspath(Path classpath)` Set the classpath to be used when searching for component being defined
    `void` | `setClasspathRef(Reference pathRef)` Specify which path will be used.
    `void` | `setName(java.lang.String name)` Name of the loader.
    `void` | `setParentFirst(boolean b)` Set reverse attribute.
    `void` | `setParentName(java.lang.String name)` Set the name of the parent.
    `void` | `setReset(boolean b)` Reset the classloader, if it already exists.
    `void` | `setReverse(boolean b)` Deprecated. use setParentFirst with a negated argument instead

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### SYSTEM_LOADER_REF

          public static final java.lang.String SYSTEM_LOADER_REF

      See Also:
        `MagicNames.SYSTEM_LOADER_REF`, Constant Field Values

  - ### Constructor Detail

    - #### Classloader

          public Classloader()

      Default constructor

  - ### Method Detail

    - #### setName

          public void setName(java.lang.String name)

      Name of the loader. If none, the default loader will be modified
      Parameters:
        `name` - the name of this loader

    - #### setReset

          public void setReset(boolean b)

      Reset the classloader, if it already exists. A new loader will be created and all the references to the old one will be removed. (it is not possible to remove paths from a loader). The new path will be used.
      Parameters:
        `b` - true if the loader is to be reset.

    - #### setReverse

          public void setReverse(boolean b)

      Deprecated. use setParentFirst with a negated argument instead
      Set reverse attribute.
      Parameters:
        `b` - if true reverse the normal classloader lookup.

    - #### setParentFirst

          public void setParentFirst(boolean b)

      Set reverse attribute.
      Parameters:
        `b` - if true reverse the normal classloader lookup.

    - #### setParentName

          public void setParentName(java.lang.String name)

      Set the name of the parent.
      Parameters:
        `name` - the parent name.

    - #### setClasspathRef

          public void setClasspathRef(Reference pathRef)
                               throws BuildException

      Specify which path will be used. If the loader already exists and is an AntClassLoader (or any other loader we can extend), the path will be added to the loader.
      Parameters:
        `pathRef` - a reference to a path.
      Throws:
        `BuildException` - if there is a problem.

    - #### setClasspath

          public void setClasspath(Path classpath)

      Set the classpath to be used when searching for component being defined
      Parameters:
        `classpath` - an Ant Path object containing the classpath.

    - #### createClasspath

          public Path createClasspath()

      Create a classpath.
      Returns:
        a path for configuration.

    - #### execute

          public void execute()

      do the classloader manipulation.
      Overrides:
        `execute` in class `Task`