com.sun.istack.tools
Class ProtectedTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by com.sun.istack.tools.ProtectedTask
All Implemented Interfaces:
java.lang.Cloneable, org.apache.tools.ant.DynamicAttribute, org.apache.tools.ant.DynamicConfigurator, org.apache.tools.ant.DynamicElement

public abstract class ProtectedTask
extends org.apache.tools.ant.Task
implements org.apache.tools.ant.DynamicConfigurator

Executes a 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.

Author:
Kohsuke Kawaguchi, Bhakti Mehta

Field Summary
 
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
ProtectedTask()
           
 
Method Summary
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.
 void setDynamicAttribute(java.lang.String name, java.lang.String value)
           
 
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
 

Constructor Detail

ProtectedTask

public ProtectedTask()
Method Detail

setDynamicAttribute

public void setDynamicAttribute(java.lang.String name,
                                java.lang.String value)
                         throws org.apache.tools.ant.BuildException
Specified by:
setDynamicAttribute in interface org.apache.tools.ant.DynamicAttribute
Throws:
org.apache.tools.ant.BuildException

createDynamicElement

public java.lang.Object createDynamicElement(java.lang.String name)
                                      throws org.apache.tools.ant.BuildException
Specified by:
createDynamicElement in interface org.apache.tools.ant.DynamicElement
Throws:
org.apache.tools.ant.BuildException

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

getCoreClassName

protected abstract java.lang.String getCoreClassName()
Returns the name of the class that extends Task. This class will be loaded int the protected classloader.


createClassLoader

protected abstract java.lang.ClassLoader createClassLoader()
                                                    throws java.lang.ClassNotFoundException,
                                                           java.io.IOException
Creates a protective class loader that will host the actual task.

Throws:
java.lang.ClassNotFoundException
java.io.IOException


Copyright © 2011. All Rights Reserved.