Class RootLoaderRef

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.MatchingTask
org.codehaus.groovy.ant.RootLoaderRef
All Implemented Interfaces:
Cloneable, org.apache.tools.ant.types.selectors.SelectorContainer

public class RootLoaderRef extends org.apache.tools.ant.taskdefs.MatchingTask
Sets the RootLoader as reference. Re-execution of this task will set a new instance of RootLoader for the reference. arguments:
  • ref
  • classpath
all arguments are required. As ant requires an AntClassLoader as reference, this will create a RootLoader and set an AntClassLoader as child and stored in the reference. The AntClassLoader instance will not have a classpath nor will it have access to the classpath somehow, all loading is done by the RootLoader parent. To avoid problems with loading classes multiple times and using them at the same time, this task will filter out the ant jars and the commons-logging jars. This only works if the ant jars are starting with "ant-" and the logging jar starts with "commons-logging-". This was needed because if ant wants to access a task argument that uses for example a Path it looks for a matching method which includes a matching class. But two classes of the same name with different class loaders are different, so ant would not be able to find the method.
See Also:
  • Field Summary

    Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask

    fileset

    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
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.tools.ant.types.Path
    Adds a path to the classpath.
    void
     
    void
    setClasspath(org.apache.tools.ant.types.Path classpath)
    Set the classpath to be used for this compilation.
    void
    setClasspathRef(org.apache.tools.ant.types.Reference r)
    Adds a reference to a classpath defined elsewhere.
    void
    sets the name of the reference which should store the Loader

    Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask

    add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems

    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

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RootLoaderRef

      public RootLoaderRef()
  • Method Details

    • setRef

      public void setRef(String n)
      sets the name of the reference which should store the Loader
    • execute

      public void execute() throws org.apache.tools.ant.BuildException
      Overrides:
      execute in class org.apache.tools.ant.Task
      Throws:
      org.apache.tools.ant.BuildException
    • setClasspath

      public void setClasspath(org.apache.tools.ant.types.Path classpath)
      Set the classpath to be used for this compilation.
      Parameters:
      classpath - an Ant Path object containing the compilation classpath.
    • setClasspathRef

      public void setClasspathRef(org.apache.tools.ant.types.Reference r)
      Adds a reference to a classpath defined elsewhere.
      Parameters:
      r - a reference to a classpath
    • createClasspath

      public org.apache.tools.ant.types.Path createClasspath()
      Adds a path to the classpath.
      Returns:
      a class path to be configured