Top Description Inners Fields Constructors Methods
com.sun.istack.tools

public abstract Class ProtectedTask

extends Task
implements DynamicConfigurator
Class Inheritance
All Implemented Interfaces
org.apache.tools.ant.DynamicConfigurator, org.apache.tools.ant.DynamicElement, org.apache.tools.ant.DynamicAttribute
Known Direct Subclasses
com.sun.tools.xjc.XJCTask
Imports
java.io.Closeable, .IOException, org.apache.tools.ant.BuildException, .DynamicConfigurator, .IntrospectionHelper, .Task, .AntClassLoader, java.util.ArrayList, .HashMap, .List, .Map, .Map.Entry

Executes a Task in a special class loader that allows us to control where to load particular APIs.
Authors
Kohsuke Kawaguchi, Bhakti Mehta

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class
ProtectedTask.AntElement

Captures the elements and attributes.

Field Summary

Modifier and TypeField and Description
private final ProtectedTask.AntElement
Inherited from org.apache.tools.ant.Task:
targettaskNametaskTypewrapper

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected abstract ClassLoader

Returns:

ClassLoader use d for task execution
createClassLoader
()

Creates a protective class loader that will host the actual task.

public Object
createDynamicElement(String name)

Implements org.apache.tools.ant.DynamicElement.createDynamicElement.

Create an element with the given name

public void
execute()

Overrides org.apache.tools.ant.Task.execute.

Called by the project to let the task do its work.

protected abstract String

Returns:

Task class name
getCoreClassName
()

Returns the name of the class that extends Task.This class will be loaded int the protected classloader.

private ClassLoader
public void
setDynamicAttribute(String name, String value)

Implements org.apache.tools.ant.DynamicAttribute.setDynamicAttribute.

Set a named attribute to the given value

Inherited from org.apache.tools.ant.Task:
bindToOwnergetOwningTargetgetRuntimeConfigurableWrappergetTaskNamegetTaskTypegetWrapperhandleErrorFlushhandleErrorOutputhandleFlushhandleInputhandleOutputinitisInvalidloglogloglogmaybeConfigureperformreconfiguresetOwningTargetsetRuntimeConfigurableWrappersetTaskNamesetTaskType

Field Detail

rootback to summary
private final ProtectedTask.AntElement root

Constructor Detail

ProtectedTaskback to summary
public ProtectedTask()

Method Detail

createClassLoaderback to summary
protected abstract ClassLoader createClassLoader() throws ClassNotFoundException, IOException

Creates a protective class loader that will host the actual task.

Returns:ClassLoader

ClassLoader use d for task execution

Exceptions
ClassNotFoundException:
if required APIs are not found
IOException:
if error happens
createDynamicElementback to summary
public Object createDynamicElement(String name) throws BuildException

Implements org.apache.tools.ant.DynamicElement.createDynamicElement.

Doc from org.apache.tools.ant.DynamicElement.createDynamicElement.

Create an element with the given name

Annotations
@Override
Exceptions
BuildException:
when any error occurs
executeback to summary
public void execute() throws BuildException

Overrides org.apache.tools.ant.Task.execute.

Doc from org.apache.tools.ant.Task.execute.

Called by the project to let the task do its work. This method may be called more than once, if the task is invoked more than once. For example, if target1 and target2 both depend on target3, then running "ant target1 target2" will run all tasks in target3 twice.

Annotations
@Override
Exceptions
BuildException:
if something goes wrong with the build.
getCoreClassNameback to summary
protected abstract String getCoreClassName()

Returns the name of the class that extends Task.This class will be loaded int the protected classloader.

Returns:String

Task class name

getParentClassLoaderback to summary
private ClassLoader getParentClassLoader(final ClassLoader cl)
setDynamicAttributeback to summary
public void setDynamicAttribute(String name, String value) throws BuildException

Implements org.apache.tools.ant.DynamicAttribute.setDynamicAttribute.

Doc from org.apache.tools.ant.DynamicAttribute.setDynamicAttribute.

Set a named attribute to the given value

Annotations
@Override
Exceptions
BuildException:
when any error occurs
com.sun.istack.tools back to summary

private Class ProtectedTask.AntElement

extends Object
implements DynamicConfigurator
Class Inheritance
All Implemented Interfaces
org.apache.tools.ant.DynamicConfigurator, org.apache.tools.ant.DynamicElement, org.apache.tools.ant.DynamicAttribute

Captures the elements and attributes.

Field Summary

Modifier and TypeField and Description
private final Map<String, String>
private final List<ProtectedTask.AntElement>
private final String

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
configure(Object antObject)

Copies the properties into the Ant task.

public Object
createDynamicElement(String name)

Implements org.apache.tools.ant.DynamicElement.createDynamicElement.

Create an element with the given name

public void
setDynamicAttribute(String name, String value)

Implements org.apache.tools.ant.DynamicAttribute.setDynamicAttribute.

Set a named attribute to the given value

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

attributesback to summary
private final Map<String, String> attributes
elementsback to summary
private final List<ProtectedTask.AntElement> elements
nameback to summary
private final String name

Constructor Detail

AntElementback to summary
public AntElement(String name)

Method Detail

configureback to summary
public void configure(Object antObject)

Copies the properties into the Ant task.

createDynamicElementback to summary
public Object createDynamicElement(String name) throws BuildException

Implements org.apache.tools.ant.DynamicElement.createDynamicElement.

Doc from org.apache.tools.ant.DynamicElement.createDynamicElement.

Create an element with the given name

Annotations
@Override
Exceptions
BuildException:
when any error occurs
setDynamicAttributeback to summary
public void setDynamicAttribute(String name, String value) throws BuildException

Implements org.apache.tools.ant.DynamicAttribute.setDynamicAttribute.

Doc from org.apache.tools.ant.DynamicAttribute.setDynamicAttribute.

Set a named attribute to the given value

Annotations
@Override
Exceptions
BuildException:
when any error occurs