|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.lang.ClassLoader | +--org.apache.tools.ant.AntClassLoader
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.
Constructor Summary | |
AntClassLoader(java.lang.ClassLoader parent,
boolean parentFirst)
Create an empty class loader. |
|
AntClassLoader(java.lang.ClassLoader parent,
Project project,
Path classpath,
boolean parentFirst)
Create a classloader for the given project using the classpath given. |
|
AntClassLoader(Project project,
Path classpath)
Create a classloader for the given project using the classpath given. |
|
AntClassLoader(Project project,
Path classpath,
boolean parentFirst)
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 |
addPathElement(java.lang.String pathElement)
Add an element to the classpath to be searched |
void |
addSystemPackageRoot(java.lang.String packageRoot)
Add a package root to the list of packages which must be loaded on the parent loader. |
void |
buildFinished(BuildEvent event)
Fired after the last target has finished. |
void |
buildStarted(BuildEvent event)
Fired before any targets are started. |
void |
cleanup()
|
java.lang.Class |
findClass(java.lang.String name)
Search for and load a class on the classpath of this class loader. |
protected java.util.Enumeration |
findResources(java.lang.String name)
Returns an enumeration of URLs representing all the resources with the given name by searching the class loader's classpath. |
java.lang.Class |
forceLoadClass(java.lang.String classname)
Load a class through this class loader even if that class is available on the parent classpath. |
java.lang.Class |
forceLoadSystemClass(java.lang.String classname)
Load a class through this class loader but defer to the parent class loader This ensures that instances of the returned class will be compatible with instances which which have already been loaded on the parent loader. |
java.net.URL |
getResource(java.lang.String name)
Finds the resource with the given name. |
java.io.InputStream |
getResourceAsStream(java.lang.String name)
Get a stream to read the requested resource name. |
static void |
initializeClass(java.lang.Class theClass)
Force initialization of a class in a JDK 1.1 compatible, albeit hacky way |
protected java.lang.Class |
loadClass(java.lang.String classname,
boolean resolve)
Load a class with this class loader. |
protected void |
log(java.lang.String message,
int priority)
Log a message through the project object if one has been provided. |
void |
messageLogged(BuildEvent event)
Fired whenever a message is logged. |
void |
resetThreadContextLoader()
Reset the current thread's context loader to its original value |
void |
setIsolated(boolean isolated)
Set this classloader to run in isolated mode. |
void |
setThreadContextLoader()
Set the current thread's context loader to this classloader, storing the current loader value for later resetting |
void |
targetFinished(BuildEvent event)
Fired when a target has finished. |
void |
targetStarted(BuildEvent event)
Fired when a target is started. |
void |
taskFinished(BuildEvent event)
Fired when a task has finished. |
void |
taskStarted(BuildEvent event)
Fired when a task is started. |
Methods inherited from class java.lang.ClassLoader |
defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findResource, findSystemClass, getPackage, getPackages, getParent, 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 |
public AntClassLoader(Project project, Path classpath)
project
- the project to which 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}public AntClassLoader(java.lang.ClassLoader parent, Project project, Path classpath, boolean parentFirst)
parent
- the parent classloader to which unsatisfied loading attempts
are delgatedproject
- the project to which this classloader is to belong.classpath
- the classpath to use to load the classes.parentFirst
- if true indicates that the parent classloader should be consulted
before trying to load the a class through this loader.public AntClassLoader(Project project, Path classpath, boolean parentFirst)
project
- the project to which this classloader is to belong.classpath
- the classpath to use to load the classes.parentFirst
- if true indicates that the parent classloader should be consulted
before trying to load the a class through this loader.public AntClassLoader(java.lang.ClassLoader parent, boolean parentFirst)
parent
- the parent classloader to which unsatisfied loading attempts
are delgatedparentFirst
- if true indicates that the parent classloader should be consulted
before trying to load the a class through this loader.Method Detail |
protected void log(java.lang.String message, int priority)
message
- the message to logpriority
- the logging priority of the messagepublic void setThreadContextLoader()
public void resetThreadContextLoader()
public void addPathElement(java.lang.String pathElement) throws BuildException
public void setIsolated(boolean isolated)
public static void initializeClass(java.lang.Class theClass)
public void addSystemPackageRoot(java.lang.String packageRoot)
packageRoot
- the root of all packages to be included.public void addLoaderPackageRoot(java.lang.String packageRoot)
packageRoot
- the root of akll packages to be included.public java.lang.Class forceLoadClass(java.lang.String classname) throws java.lang.ClassNotFoundException
classname
- the classname to be loaded.java.lang.ClassNotFoundException
- if the requested class does not exist on
this loader's classpath.public java.lang.Class forceLoadSystemClass(java.lang.String classname) throws java.lang.ClassNotFoundException
classname
- the classname to be loaded.java.lang.ClassNotFoundException
- if the requested class does not exist on
this loader's classpath.public java.io.InputStream getResourceAsStream(java.lang.String name)
getResourceAsStream
in class java.lang.ClassLoader
name
- the name of the resource for which a stream is required.public java.net.URL getResource(java.lang.String name)
getResource
in class java.lang.ClassLoader
name
- the name of the resource for which a stream is required.protected java.util.Enumeration findResources(java.lang.String name) throws java.io.IOException
findResources
in class java.lang.ClassLoader
name
- the resource name.java.io.IOException
- if I/O errors occurs (can't happen)protected java.lang.Class loadClass(java.lang.String classname, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
classname
- the name of the class to be loaded.resolve
- true if all classes upon which this class depends are to be loaded.java.lang.ClassNotFoundException
- if the requested class does not exist on
the system classpath or this loader's classpath.public java.lang.Class findClass(java.lang.String name) throws java.lang.ClassNotFoundException
findClass
in class java.lang.ClassLoader
name
- the classname to be loaded.java.lang.ClassNotFoundException
- if the requested class does not exist on
this loader's classpath.public void cleanup()
public void buildStarted(BuildEvent event)
BuildListener
buildStarted
in interface BuildListener
public void buildFinished(BuildEvent event)
BuildListener
buildFinished
in interface BuildListener
org.apache.tools.ant.BuildListener
BuildEvent.getException()
public void targetStarted(BuildEvent event)
BuildListener
targetStarted
in interface BuildListener
org.apache.tools.ant.BuildListener
BuildEvent.getTarget()
public void targetFinished(BuildEvent event)
BuildListener
targetFinished
in interface BuildListener
org.apache.tools.ant.BuildListener
BuildEvent.getException()
public void taskStarted(BuildEvent event)
BuildListener
taskStarted
in interface BuildListener
org.apache.tools.ant.BuildListener
BuildEvent.getTask()
public void taskFinished(BuildEvent event)
BuildListener
taskFinished
in interface BuildListener
org.apache.tools.ant.BuildListener
BuildEvent.getException()
public void messageLogged(BuildEvent event)
BuildListener
messageLogged
in interface BuildListener
org.apache.tools.ant.BuildListener
BuildEvent.getMessage()
,
BuildEvent.getPriority()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |