public abstract class ProtectedTask
extends org.apache.tools.ant.Task
implements org.apache.tools.ant.DynamicConfigurator
Task in a special class loader that allows
us to control where to load 2.1 APIs, even if we run in Java 6.
No JDK 1.5 code here, please. This allows us to detect "require JDK5" bug nicely.
| Modifier and Type | Class and Description |
|---|---|
private class |
ProtectedTask.AntElement
Captures the elements and attributes.
|
| Modifier and Type | Field and Description |
|---|---|
private ProtectedTask.AntElement |
root |
| Constructor and Description |
|---|
ProtectedTask() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract java.lang.ClassLoader |
createClassLoader()
Creates a protective class loader that will host the actual task.
|
java.lang.Object |
createDynamicElement(java.lang.String name) |
void |
execute() |
protected abstract java.lang.String |
getCoreClassName()
Returns the name of the class that extends
Task. |
private java.lang.ClassLoader |
getParentClassLoader(java.lang.ClassLoader cl) |
private java.lang.ClassLoader |
getPCL(java.lang.ClassLoader cl) |
void |
setDynamicAttribute(java.lang.String name,
java.lang.String value) |
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskTypeprivate final ProtectedTask.AntElement root
public void setDynamicAttribute(java.lang.String name,
java.lang.String value)
throws org.apache.tools.ant.BuildException
setDynamicAttribute in interface org.apache.tools.ant.DynamicAttributeorg.apache.tools.ant.BuildExceptionpublic java.lang.Object createDynamicElement(java.lang.String name)
throws org.apache.tools.ant.BuildException
createDynamicElement in interface org.apache.tools.ant.DynamicElementorg.apache.tools.ant.BuildExceptionpublic void execute()
throws org.apache.tools.ant.BuildException
execute in class org.apache.tools.ant.Taskorg.apache.tools.ant.BuildExceptionprotected abstract java.lang.String getCoreClassName()
Task.
This class will be loaded int the protected classloader.protected abstract java.lang.ClassLoader createClassLoader()
throws java.lang.ClassNotFoundException,
java.io.IOException
java.lang.ClassNotFoundExceptionjava.io.IOExceptionprivate java.lang.ClassLoader getParentClassLoader(java.lang.ClassLoader cl)
private java.lang.ClassLoader getPCL(java.lang.ClassLoader cl)