Classloader (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs, class: Classloader

# Class Classloader

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

All Implemented Interfaces:
  `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
  Description
  `static final String`
  `SYSTEM_LOADER_REF`

  ### Fields inherited from class Task

  `target, taskName, taskType, wrapper`
  Modifier and Type
  Field
  Description
  `protected Target`
  `target`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskName`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskType`
  Deprecated.
  since 1.6.x.
  `protected RuntimeConfigurable`
  `wrapper`
  Deprecated.
  since 1.6.x.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Classloader()`

- ## Method Summary

  Modifier and Type
  Method
  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(String name)`
  Name of the loader.
  `void`
  `setParentFirst(boolean b)`
  Set reverse attribute.
  `void`
  `setParentName(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 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`
  Modifier and Type
  Method
  Description
  `final void`
  `bindToOwner(Task owner)`
  Bind a task to another; use this when configuring a newly created task to do work on behalf of another.
  `Target`
  `getOwningTarget()`
  Returns the container target of this task.
  `RuntimeConfigurable`
  `getRuntimeConfigurableWrapper()`
  Returns the wrapper used for runtime configuration.
  `String`
  `getTaskName()`
  Returns the name to use in logging messages.
  `String`
  `getTaskType()`
  Return the type of task.
  `protected RuntimeConfigurable`
  `getWrapper()`
  Return the runtime configurable structure for this task.
  `protected void`
  `handleErrorFlush(String output)`
  Handles an error line by logging it with the WARN priority.
  `protected void`
  `handleErrorOutput(String output)`
  Handles an error output by logging it with the WARN priority.
  `protected void`
  `handleFlush(String output)`
  Handles output by logging it with the INFO priority.
  `protected int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handle an input request by this task.
  `protected void`
  `handleOutput(String output)`
  Handles output by logging it with the INFO priority.
  `void`
  `init()`
  Called by the project to let the task initialize properly.
  `protected final boolean`
  `isInvalid()`
  Has this task been marked invalid?
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(String msg, Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `maybeConfigure()`
  Configures this task - if it hasn't been done already.
  `final void`
  `perform()`
  Performs this task if it's still valid, or gets a replacement version and performs that otherwise.
  `void`
  `reconfigure()`
  Force the task to be reconfigured from its RuntimeConfigurable.
  `void`
  `setOwningTarget(Target target)`
  Sets the target container of this task.
  `void`
  `setRuntimeConfigurableWrapper(RuntimeConfigurable wrapper)`
  Sets the wrapper to be used for runtime configuration.
  `void`
  `setTaskName(String name)`
  Sets the name to use in logging messages.
  `void`
  `setTaskType(String type)`
  Sets the name with which the task has been invoked.

  ### Methods inherited from class ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### SYSTEM_LOADER_REF

    public static final String SYSTEM_LOADER_REF
    See Also:
      - `MagicNames.SYSTEM_LOADER_REF`
      - Constant Field Values

- ## Constructor Details

  - ### Classloader

    public Classloader()

- ## Method Details

  - ### setName

    public void setName(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

    @Deprecated 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(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`