antoine 2003/04/21 13:03:53
Modified: proposal/sandbox/antlib/src/main/org/apache/tools/ant
Project.java antlib.xml opt-antlib.xml
proposal/sandbox/antlib build.xml
Removed: proposal/sandbox/antlib/src/main/org/apache/tools/ant
ProjectHelper.java
Log:
make antlib work
Revision Changes Path
1.7 +209 -69
ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/Project.java
Index: Project.java
===================================================================
RCS file:
/home/cvs/ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/Project.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Project.java 11 Apr 2003 13:54:47 -0000 1.6
+++ Project.java 21 Apr 2003 20:03:52 -0000 1.7
@@ -56,6 +56,7 @@
import java.io.File;
import java.io.InputStream;
import java.io.IOException;
+import java.io.EOFException;
import java.util.Hashtable;
import java.util.Vector;
import java.util.Properties;
@@ -266,6 +267,16 @@
}
/**
+ * Get this project's input stream
+ *
+ * @return the InputStream instance in use by this Porject instance to
+ * read input
+ */
+ public InputStream getDefaultInputStream() {
+ return defaultInputStream;
+ }
+
+ /**
* Retrieves the current input handler.
*
* @return the InputHandler instance currently in place for the project
@@ -277,6 +288,11 @@
private FileUtils fileUtils;
+ /**
+ * Flag which catches Listeners which try to use System.out or System.err
+ */
+ private boolean loggingMessage = false;
+
/**
* <p>
@@ -413,6 +429,7 @@
*/
public void init() throws BuildException {
setJavaVersionProperty();
+ setSystemProperties();
if (!isRoleDefined(TASK_ROLE)) {
// Top project, need to load the core definitions
loadDefinitions();
@@ -452,7 +469,6 @@
throw new BuildException("Can't load default datatype list");
}
- setSystemProperties();
}
@@ -564,7 +580,7 @@
[EMAIL PROTECTED] The buildListeners value
*/
public Vector getBuildListeners() {
- return listeners;
+ return (Vector) listeners.clone();
}
@@ -697,6 +713,23 @@
properties.put(name, value);
}
+ /**
+ * Sets a user property, which cannot be overwritten by set/unset
+ * property calls. Any previous value is overwritten. Also marks
+ * these properties as properties that have not come from the
+ * command line.
+ *
+ * @param name The name of property to set.
+ * Must not be <code>null</code>.
+ * @param value The new value of the property.
+ * Must not be <code>null</code>.
+ * @see #setProperty(String,String)
+ */
+ public synchronized void setInheritedProperty(String name, String value)
{
+ PropertyHelper ph = PropertyHelper.getPropertyHelper(this);
+ ph.setInheritedProperty(null, name, value);
+ }
+
/**
* Allows Project and subclasses to set a property unless its already
@@ -796,6 +829,40 @@
return propertiesCopy;
}
+ /**
+ * Copies all user properties that have been set on the command
+ * line or a GUI tool from this instance to the Project instance
+ * given as the argument.
+ *
+ * <p>To copy all "user" properties, you will also have to call
+ * [EMAIL PROTECTED] #copyInheritedProperties
copyInheritedProperties}.</p>
+ *
+ * @param other the project to copy the properties to. Must not be null.
+ *
+ * @since Ant 1.5
+ */
+ public void copyUserProperties(Project other) {
+ PropertyHelper ph = PropertyHelper.getPropertyHelper(this);
+ ph.copyUserProperties(other);
+ }
+
+ /**
+ * Copies all user properties that have not been set on the
+ * command line or a GUI tool from this instance to the Project
+ * instance given as the argument.
+ *
+ * <p>To copy all "user" properties, you will also have to call
+ * [EMAIL PROTECTED] #copyUserProperties copyUserProperties}.</p>
+ *
+ * @param other the project to copy the properties to. Must not be null.
+ *
+ * @since Ant 1.5
+ */
+ public void copyInheritedProperties(Project other) {
+ PropertyHelper ph = PropertyHelper.getPropertyHelper(this);
+ ph.copyInheritedProperties(other);
+ }
+
/**
* set the default target of the project
@@ -1205,7 +1272,7 @@
try {
Object o = f.create(this);
- // Do special book keeping for ProjectComponents
+ setProjectReference( o );
if (o instanceof ProjectComponent) {
((ProjectComponent) o).setProject(this);
if (o instanceof Task) {
@@ -1402,10 +1469,11 @@
if (defaultInputStream != null) {
return defaultInputStream.read(buffer, offset, length);
} else {
- return System.in.read(buffer, offset, length);
+ throw new EOFException("No input provided for project");
}
}
+
/**
* Demux an input request to the correct task.
*
@@ -1949,26 +2017,30 @@
}
/**
- * send build started event to the listeners
+ * Sends a "build started" event to the build listeners for this project.
*/
- protected void fireBuildStarted() {
+ public void fireBuildStarted() {
BuildEvent event = new BuildEvent(this);
- for (int i = 0; i < listeners.size(); i++) {
+ Vector listeners = getBuildListeners();
+ int size = listeners.size();
+ for (int i = 0; i < size; i++) {
BuildListener listener = (BuildListener) listeners.elementAt(i);
listener.buildStarted(event);
}
}
-
/**
- * send build finished event to the listeners
- *
- [EMAIL PROTECTED] exception exception which indicates failure if not
null
+ * Sends a "build finished" event to the build listeners for this
project.
+ * @param exception an exception indicating a reason for a build
+ * failure. May be <code>null</code>, indicating
+ * a successful build.
*/
- protected void fireBuildFinished(Throwable exception) {
+ public void fireBuildFinished(Throwable exception) {
BuildEvent event = new BuildEvent(this);
event.setException(exception);
- for (int i = 0; i < listeners.size(); i++) {
+ Vector listeners = getBuildListeners();
+ int size = listeners.size();
+ for (int i = 0; i < size; i++) {
BuildListener listener = (BuildListener) listeners.elementAt(i);
listener.buildFinished(event);
}
@@ -1976,82 +2048,111 @@
/**
- * send target started event to the listeners
+ * Sends a "target started" event to the build listeners for this
project.
*
- [EMAIL PROTECTED] target Description of the Parameter
+ * @param target The target which is starting to build.
+ * Must not be <code>null</code>.
*/
protected void fireTargetStarted(Target target) {
BuildEvent event = new BuildEvent(target);
- for (int i = 0; i < listeners.size(); i++) {
+ Vector listeners = getBuildListeners();
+ int size = listeners.size();
+ for (int i = 0; i < size; i++) {
BuildListener listener = (BuildListener) listeners.elementAt(i);
listener.targetStarted(event);
}
}
-
/**
- * send build finished event to the listeners
+ * Sends a "target finished" event to the build listeners for this
+ * project.
*
- [EMAIL PROTECTED] exception exception which indicates failure if not
null
- [EMAIL PROTECTED] target Description of the Parameter
+ * @param target The target which has finished building.
+ * Must not be <code>null</code>.
+ * @param exception an exception indicating a reason for a build
+ * failure. May be <code>null</code>, indicating
+ * a successful build.
*/
protected void fireTargetFinished(Target target, Throwable exception) {
BuildEvent event = new BuildEvent(target);
event.setException(exception);
- for (int i = 0; i < listeners.size(); i++) {
+ Vector listeners = getBuildListeners();
+ int size = listeners.size();
+ for (int i = 0; i < size; i++) {
BuildListener listener = (BuildListener) listeners.elementAt(i);
listener.targetFinished(event);
}
}
-
/**
- * Description of the Method
+ * Sends a "task started" event to the build listeners for this project.
*
- [EMAIL PROTECTED] task Description of the Parameter
+ * @param task The target which is starting to execute.
+ * Must not be <code>null</code>.
*/
protected void fireTaskStarted(Task task) {
// register this as the current task on the current thread.
- threadTasks.put(Thread.currentThread(), task);
+ registerThreadTask(Thread.currentThread(), task);
BuildEvent event = new BuildEvent(task);
- for (int i = 0; i < listeners.size(); i++) {
+ Vector listeners = getBuildListeners();
+ int size = listeners.size();
+ for (int i = 0; i < size; i++) {
BuildListener listener = (BuildListener) listeners.elementAt(i);
listener.taskStarted(event);
}
}
-
/**
- * Description of the Method
+ * Sends a "task finished" event to the build listeners for this
+ * project.
*
- [EMAIL PROTECTED] task Description of the Parameter
- [EMAIL PROTECTED] exception Description of the Parameter
+ * @param task The task which has finished executing.
+ * Must not be <code>null</code>.
+ * @param exception an exception indicating a reason for a build
+ * failure. May be <code>null</code>, indicating
+ * a successful build.
*/
protected void fireTaskFinished(Task task, Throwable exception) {
- threadTasks.remove(Thread.currentThread());
+ registerThreadTask(Thread.currentThread(), null);
System.out.flush();
System.err.flush();
BuildEvent event = new BuildEvent(task);
event.setException(exception);
- for (int i = 0; i < listeners.size(); i++) {
+ Vector listeners = getBuildListeners();
+ int size = listeners.size();
+ for (int i = 0; i < size; i++) {
BuildListener listener = (BuildListener) listeners.elementAt(i);
listener.taskFinished(event);
}
}
-
/**
- * Description of the Method
+ * Sends a "message logged" event to the build listeners for this
project.
*
- [EMAIL PROTECTED] event Description of the Parameter
- [EMAIL PROTECTED] message Description of the Parameter
- [EMAIL PROTECTED] priority Description of the Parameter
+ * @param event The event to send. This should be built up with the
+ * appropriate task/target/project by the caller, so that
+ * this method can set the message and priority, then
send
+ * the event. Must not be <code>null</code>.
+ * @param message The message to send. Should not be <code>null</code>.
+ * @param priority The priority of the message.
*/
- private void fireMessageLoggedEvent(BuildEvent event, String message,
int priority) {
+ private void fireMessageLoggedEvent(BuildEvent event, String message,
+ int priority) {
event.setMessage(message, priority);
- for (int i = 0; i < listeners.size(); i++) {
- BuildListener listener = (BuildListener) listeners.elementAt(i);
- listener.messageLogged(event);
+ Vector listeners = getBuildListeners();
+ synchronized (this) {
+ if (loggingMessage) {
+ throw new BuildException("Listener attempted to access "
+ + (priority == MSG_ERR ? "System.err" : "System.out")
+ + " - infinite loop terminated");
+ }
+ loggingMessage = true;
+ int size = listeners.size();
+ for (int i = 0; i < size; i++) {
+ BuildListener listener = (BuildListener)
listeners.elementAt(i);
+ listener.messageLogged(event);
+ }
+ loggingMessage = false;
}
}
@@ -2134,7 +2235,7 @@
// Should move to a separate public class - and have API to add
// listeners, etc.
private static class AntRefTable extends Hashtable {
- Project project;
+ private Project project;
public AntRefTable(Project project) {
super();
this.project = project;
@@ -2175,9 +2276,9 @@
}
private static class AntTaskTable extends LazyHashtable {
- Project project;
- Properties props;
- boolean tasks = false;
+ private Project project;
+ private Properties props;
+ private boolean tasks = false;
public AntTaskTable(Project p, boolean tasks) {
this.project = p;
@@ -2189,46 +2290,56 @@
}
protected void initAll() {
- if (initAllDone ) return;
+ if (initAllDone) {
+ return;
+ }
project.log("InitAll", Project.MSG_DEBUG);
- if (props==null ) return;
+ if (props == null) {
+ return;
+ }
Enumeration enum = props.propertyNames();
while (enum.hasMoreElements()) {
String key = (String) enum.nextElement();
- Class taskClass=getTask( key );
- if (taskClass!=null ) {
+ Class taskClass = getTask(key);
+ if (taskClass != null) {
// This will call a get() and a put()
- if (tasks )
+ if (tasks)
project.addTaskDefinition(key, taskClass);
else
project.addDataTypeDefinition(key, taskClass );
}
}
- initAllDone=true;
+ initAllDone = true;
}
protected Class getTask(String key) {
- if (props==null ) return null; // for tasks loaded before init()
- String value=props.getProperty(key);
- if (value==null) {
- //project.log( "No class name for " + key,
Project.MSG_VERBOSE );
+ if (props == null) {
+ return null; // for tasks loaded before init()
+ }
+ String value = props.getProperty(key);
+ if (value == null) {
+ //project.log( "No class name for " + key,
Project.MSG_VERBOSE);
return null;
}
try {
- Class taskClass=null;
+ Class taskClass = null;
if (project.getCoreLoader() != null &&
!("only".equals(project.getProperty("build.sysclasspath")))) {
try {
- taskClass=project.getCoreLoader().loadClass(value);
- if (taskClass != null ) return taskClass;
- } catch( Exception ex ) {
+ taskClass = project.getCoreLoader().loadClass(value);
+ if (taskClass != null) {
+ return taskClass;
+ }
+ } catch (Exception ex) {
+ // ignore
}
}
taskClass = Class.forName(value);
return taskClass;
} catch (NoClassDefFoundError ncdfe) {
project.log("Could not load a dependent class ("
- + ncdfe.getMessage() + ") for task " + key,
Project.MSG_DEBUG);
+ + ncdfe.getMessage() + ") for task "
+ + key, Project.MSG_DEBUG);
} catch (ClassNotFoundException cnfe) {
project.log("Could not load class (" + value
+ ") for task " + key, Project.MSG_DEBUG);
@@ -2237,14 +2348,20 @@
}
// Hashtable implementation
- public Object get( Object key ) {
- Object orig=super.get( key );
- if (orig!= null ) return orig;
- if (! (key instanceof String) ) return null;
- project.log("Get task " + key, Project.MSG_DEBUG );
- Object taskClass=getTask( (String) key);
- if (taskClass != null)
- super.put( key, taskClass );
+ public Object get(Object key) {
+ Object orig = super.get(key);
+ if (orig != null) {
+ return orig;
+ }
+ if (!(key instanceof String)) {
+ return null;
+ }
+
+ project.log("Get task " + key, Project.MSG_DEBUG);
+ Object taskClass = getTask((String) key);
+ if (taskClass != null) {
+ super.put(key, taskClass);
+ }
return taskClass;
}
@@ -2253,5 +2370,28 @@
}
}
-
+ /**
+ * Set a reference to this Project on the parameterized object.
+ * Need to set the project before other set/add elements
+ * are called
+ * @param obj the object to invoke setProject(this) on
+ */
+ public final void setProjectReference( final Object obj ) {
+ if ( obj instanceof ProjectComponent ) {
+ ( (ProjectComponent) obj ).setProject( this );
+ return;
+ }
+ try {
+ Method method =
+ obj.getClass().getMethod(
+ "setProject", new Class[] {Project.class} );
+ if ( method != null ) {
+ method.invoke( obj, new Object[] { this } );
+ }
+ } catch (Throwable e) {
+ // ignore this if the object does not have
+ // a set project method or the method
+ // is private/protected.
+ }
+ }
}
1.3 +36 -20
ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/antlib.xml
Index: antlib.xml
===================================================================
RCS file:
/home/cvs/ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/antlib.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- antlib.xml 11 Apr 2003 13:54:47 -0000 1.2
+++ antlib.xml 21 Apr 2003 20:03:53 -0000 1.3
@@ -62,6 +62,7 @@
<task name="jar" class="org.apache.tools.ant.taskdefs.Jar"/>
<task name="rmic" class="org.apache.tools.ant.taskdefs.Rmic"/>
<task name="cvs" class="org.apache.tools.ant.taskdefs.Cvs"/>
+ <task name="get" class="org.apache.tools.ant.taskdefs.Get"/>
<task name="unzip" class="org.apache.tools.ant.taskdefs.Expand"/>
<task name="unjar" class="org.apache.tools.ant.taskdefs.Expand"/>
<task name="unwar" class="org.apache.tools.ant.taskdefs.Expand"/>
@@ -74,6 +75,7 @@
<task name="java" class="org.apache.tools.ant.taskdefs.Java"/>
<task name="tstamp" class="org.apache.tools.ant.taskdefs.Tstamp"/>
<task name="property" class="org.apache.tools.ant.taskdefs.Property"/>
+ <task name="xmlproperty"
class="org.apache.tools.ant.taskdefs.XmlProperty"/>
<task name="taskdef" class="org.apache.tools.ant.taskdefs.Taskdef"/>
<task name="ant" class="org.apache.tools.ant.taskdefs.Ant"/>
<task name="exec" class="org.apache.tools.ant.taskdefs.ExecTask"/>
@@ -84,6 +86,7 @@
<task name="fixcrlf" class="org.apache.tools.ant.taskdefs.FixCRLF"/>
<task name="patch" class="org.apache.tools.ant.taskdefs.Patch"/>
<task name="style" class="org.apache.tools.ant.taskdefs.XSLTProcess"/>
+ <task name="xslt" class="org.apache.tools.ant.taskdefs.XSLTProcess"/>
<task name="touch" class="org.apache.tools.ant.taskdefs.Touch"/>
<task name="signjar" class="org.apache.tools.ant.taskdefs.SignJar"/>
<task name="genkey" class="org.apache.tools.ant.taskdefs.GenerateKey"/>
@@ -112,34 +115,47 @@
<task name="waitfor" class="org.apache.tools.ant.taskdefs.WaitFor"/>
<task name="input" class="org.apache.tools.ant.taskdefs.Input"/>
<task name="loadfile" class="org.apache.tools.ant.taskdefs.LoadFile"/>
- <task name="manifest" class="org.apache.tools.ant.taskdefs.Manifest"/>
+ <task name="manifest" class="org.apache.tools.ant.taskdefs.ManifestTask"/>
+ <task name="loadproperties"
class="org.apache.tools.ant.taskdefs.LoadProperties"/>
+ <task name="basename" class="org.apache.tools.ant.taskdefs.Basename"/>
+ <task name="dirname" class="org.apache.tools.ant.taskdefs.Dirname"/>
+ <task name="cvschangelog"
class="org.apache.tools.ant.taskdefs.cvslib.ChangeLogTask"/>
+ <task name="buildnumber"
class="org.apache.tools.ant.taskdefs.BuildNumber"/>
+ <task name="concat" class="org.apache.tools.ant.taskdefs.Concat"/>
+ <task name="cvstagdiff"
class="org.apache.tools.ant.taskdefs.cvslib.CvsTagDiff"/>
+ <task name="tempfile" class="org.apache.tools.ant.taskdefs.TempFile"/>
+ <task name="classloader"
class="org.apache.tools.ant.taskdefs.Classloader"/>
+ <task name="import" class="org.apache.tools.ant.taskdefs.ImportTask"/>
+ <task name="whichresource"
class="org.apache.tools.ant.taskdefs.WhichResource"/>
+ <task name="subant" class="org.apache.tools.ant.taskdefs.SubAnt"/>
+ <task name="sync" class="org.apache.tools.ant.taskdefs.Sync"/>
<task name="antjar" class="org.apache.tools.ant.taskdefs.Antjar"/>
<task name="antlib" class="org.apache.tools.ant.taskdefs.Antlib"/>
- <data-type name="path" class="org.apache.tools.ant.types.Path"/>
- <data-type name="fileset" class="org.apache.tools.ant.types.FileSet"/>
- <data-type name="filelist" class="org.apache.tools.ant.types.FileList"/>
- <data-type name="patternset"
class="org.apache.tools.ant.types.PatternSet"/>
- <data-type name="mapper" class="org.apache.tools.ant.types.Mapper"/>
- <data-type name="filterset" class="org.apache.tools.ant.types.FilterSet"/>
- <data-type name="filterchain"
class="org.apache.tools.ant.types.FilterChain" />
- <data-type name="filterreader"
class="org.apache.tools.ant.types.AntFilterReader" />
- <data-type name="description"
class="org.apache.tools.ant.types.Description"/>
- <data-type name="substitution"
class="org.apache.tools.ant.types.Substitution"/>
- <data-type name="regexp"
class="org.apache.tools.ant.types.RegularExpression"/>
- <data-type name="selector"
class="org.apache.tools.ant.types.selectors.SelectSelector"/>
- <data-type name="zipfileset"
class="org.apache.tools.ant.types.ZipFileSet"/>
- <data-type name="xmlcatalog" class="org.apache.tools.ant.types.XMLCatalog"
/>
- <data-type name="extensionSet"
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet" />
- <data-type name="extension"
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter" />
- <data-type name="libfileset"
class="org.apache.tools.ant.taskdefs.optional.extension.LibFileSet" />
-
<!-- deprecated ant tasks (kept for back compatibility) -->
-
<task name="javadoc2" class="org.apache.tools.ant.taskdefs.Javadoc"/>
<task name="copydir" class="org.apache.tools.ant.taskdefs.Copydir"/>
<task name="copyfile" class="org.apache.tools.ant.taskdefs.Copyfile"/>
<task name="deltree" class="org.apache.tools.ant.taskdefs.Deltree"/>
<task name="rename" class="org.apache.tools.ant.taskdefs.Rename"/>
+
+ <data-type name="description"
class="org.apache.tools.ant.types.Description"/>
+ <data-type name="dirset" class="org.apache.tools.ant.types.DirSet"/>
+ <data-type name="filelist" class="org.apache.tools.ant.types.FileList"/>
+ <data-type name="fileset" class="org.apache.tools.ant.types.FileSet"/>
+ <data-type name="filterchain"
class="org.apache.tools.ant.types.FilterChain"/>
+ <data-type name="filterreader"
class="org.apache.tools.ant.types.AntFilterReader"/>
+ <data-type name="filterset" class="org.apache.tools.ant.types.FilterSet"/>
+ <data-type name="mapper" class="org.apache.tools.ant.types.Mapper"/>
+ <data-type name="path" class="org.apache.tools.ant.types.Path"/>
+ <data-type name="patternset"
class="org.apache.tools.ant.types.PatternSet"/>
+ <data-type name="regexp"
class="org.apache.tools.ant.types.RegularExpression"/>
+ <data-type name="substitution"
class="org.apache.tools.ant.types.Substitution"/>
+ <data-type name="xmlcatalog"
class="org.apache.tools.ant.types.XMLCatalog"/>
+ <data-type name="extensionSet"
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet"/>
+ <data-type name="extension"
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter"/>
+ <data-type name="libfileset"
class="org.apache.tools.ant.taskdefs.optional.extension.LibFileSet"/>
+ <data-type name="selector"
class="org.apache.tools.ant.types.selectors.SelectSelector"/>
+ <data-type name="zipfileset"
class="org.apache.tools.ant.types.ZipFileSet"/>
</antlib>
1.2 +41 -8
ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/opt-antlib.xml
Index: opt-antlib.xml
===================================================================
RCS file:
/home/cvs/ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/opt-antlib.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- opt-antlib.xml 2 Mar 2002 22:21:43 -0000 1.1
+++ opt-antlib.xml 21 Apr 2003 20:03:53 -0000 1.2
@@ -55,6 +55,7 @@
<antlib version="1.5" >
<!-- Declaration of optional tasks -->
+ <task name="image"
class="org.apache.tools.ant.taskdefs.optional.image.Image"/>
<task name="script" class="org.apache.tools.ant.taskdefs.optional.Script"/>
<task name="netrexxc"
class="org.apache.tools.ant.taskdefs.optional.NetRexxC"/>
<task name="renameext"
class="org.apache.tools.ant.taskdefs.optional.RenameExtensions"/>
@@ -62,7 +63,14 @@
<task name="ddcreator"
class="org.apache.tools.ant.taskdefs.optional.ejb.DDCreator"/>
<task name="wlrun"
class="org.apache.tools.ant.taskdefs.optional.ejb.WLRun"/>
<task name="wlstop"
class="org.apache.tools.ant.taskdefs.optional.ejb.WLStop"/>
+ <task name="vssadd"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSADD"/>
+ <task name="vsscheckin"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKIN"/>
+ <task name="vsscheckout"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKOUT"/>
+ <task name="vsscp"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCP"/>
+ <task name="vsscreate"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCREATE"/>
<task name="vssget"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSGET"/>
+ <task name="vsshistory"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSHISTORY"/>
+ <task name="vsslabel"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSLABEL"/>
<task name="ejbjar"
class="org.apache.tools.ant.taskdefs.optional.ejb.EjbJar"/>
<task name="mparse"
class="org.apache.tools.ant.taskdefs.optional.metamata.MParse"/>
<task name="mmetrics"
class="org.apache.tools.ant.taskdefs.optional.metamata.MMetrics"/>
@@ -89,31 +97,42 @@
<task name="telnet"
class="org.apache.tools.ant.taskdefs.optional.net.TelnetTask"/>
<task name="csc"
class="org.apache.tools.ant.taskdefs.optional.dotnet.CSharp"/>
<task name="ilasm"
class="org.apache.tools.ant.taskdefs.optional.dotnet.Ilasm"/>
+ <task name="WsdlToDotnet"
class="org.apache.tools.ant.taskdefs.optional.dotnet.WsdlToDotnet"/>
+ <task name="wsdltodotnet"
class="org.apache.tools.ant.taskdefs.optional.dotnet.WsdlToDotnet"/>
<task name="stylebook"
class="org.apache.tools.ant.taskdefs.optional.StyleBook"/>
<task name="test" class="org.apache.tools.ant.taskdefs.optional.Test"/>
<task name="pvcs"
class="org.apache.tools.ant.taskdefs.optional.pvcs.Pvcs"/>
<task name="p4change"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Change"/>
+ <task name="p4delete"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Delete"/>
<task name="p4label"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Label"/>
+ <task name="p4labelsync"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Labelsync"/>
<task name="p4have"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Have"/>
<task name="p4sync"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Sync"/>
<task name="p4edit"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Edit"/>
+ <task name="p4integrate"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Integrate"/>
+ <task name="p4resolve"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Resolve"/>
<task name="p4submit"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Submit"/>
<task name="p4counter"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Counter"/>
+ <task name="p4revert"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Revert"/>
+ <task name="p4reopen"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Reopen"/>
+ <task name="p4fstat"
class="org.apache.tools.ant.taskdefs.optional.perforce.P4Fstat"/>
<task name="javah" class="org.apache.tools.ant.taskdefs.optional.Javah"/>
<task name="ccupdate"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCUpdate"/>
<task name="cccheckout"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckout"/>
<task name="cccheckin"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckin"/>
<task name="ccuncheckout"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCUnCheckout"/>
+ <task name="ccmklbtype"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCMklbtype"/>
+ <task name="ccmklabel"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCMklabel"/>
+ <task name="ccrmtype"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCRmtype"/>
+ <task name="cclock"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCLock"/>
+ <task name="ccunlock"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCUnlock"/>
+ <task name="ccmkbl"
class="org.apache.tools.ant.taskdefs.optional.clearcase.CCMkbl"/>
<task name="sound"
class="org.apache.tools.ant.taskdefs.optional.sound.SoundTask"/>
<task name="junitreport"
class="org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator"/>
- <task name="vsslabel"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSLABEL"/>
- <task name="vsshistory"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSHISTORY"/>
<task name="blgenclient"
class="org.apache.tools.ant.taskdefs.optional.ejb.BorlandGenerateClient"/>
<task name="rpm" class="org.apache.tools.ant.taskdefs.optional.Rpm"/>
<task name="xmlvalidate"
class="org.apache.tools.ant.taskdefs.optional.XMLValidateTask"/>
- <task name="vsscheckin"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKIN"/>
- <task name="vsscheckout"
class="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKOUT"/>
- <task name="iplanet"
class="ejbc=org.apache.tools.ant.taskdefs.optional.ejb.IPlanetEjbcTask"/>
+ <task name="iplanet-ejbc"
class="org.apache.tools.ant.taskdefs.optional.ejb.IPlanetEjbcTask"/>
<task name="jdepend"
class="org.apache.tools.ant.taskdefs.optional.jdepend.JDependTask"/>
<task name="mimemail"
class="org.apache.tools.ant.taskdefs.optional.net.MimeMail"/>
<task name="ccmcheckin"
class="org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckin"/>
@@ -133,12 +152,26 @@
<task name="soscheckout"
class="org.apache.tools.ant.taskdefs.optional.sos.SOSCheckout"/>
<task name="soslabel"
class="org.apache.tools.ant.taskdefs.optional.sos.SOSLabel"/>
<task name="echoproperties"
class="org.apache.tools.ant.taskdefs.optional.EchoProperties"/>
+ <task name="splash"
class="org.apache.tools.ant.taskdefs.optional.splash.SplashTask"/>
+ <task name="serverdeploy"
class="org.apache.tools.ant.taskdefs.optional.j2ee.ServerDeploy"/>
+ <task name="jarlib-display"
class="org.apache.tools.ant.taskdefs.optional.extension.JarLibDisplayTask"/>
+ <task name="jarlib-manifest"
class="org.apache.tools.ant.taskdefs.optional.extension.JarLibManifestTask"/>
+ <task name="jarlib-available"
class="org.apache.tools.ant.taskdefs.optional.extension.JarLibAvailableTask"/>
+ <task name="jarlib-resolve"
class="org.apache.tools.ant.taskdefs.optional.extension.JarLibResolveTask"/>
+ <task name="setproxy"
class="org.apache.tools.ant.taskdefs.optional.net.SetProxy"/>
+ <task name="vbc"
class="org.apache.tools.ant.taskdefs.optional.dotnet.VisualBasicCompile"/>
+ <task name="symlink"
class="org.apache.tools.ant.taskdefs.optional.unix.Symlink"/>
+ <task name="chgrp"
class="org.apache.tools.ant.taskdefs.optional.unix.Chgrp"/>
+ <task name="chown"
class="org.apache.tools.ant.taskdefs.optional.unix.Chown"/>
+ <task name="attrib"
class="org.apache.tools.ant.taskdefs.optional.windows.Attrib"/>
+ <task name="scp" class="org.apache.tools.ant.taskdefs.optional.ssh.Scp"/>
+ <task name="sshexec"
class="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec"/>
+ <task name="jsharpc"
class="org.apache.tools.ant.taskdefs.optional.dotnet.JSharp"/>
- <!-- I have no idea why this task is here -->
-
- <task name="get" class="org.apache.tools.ant.taskdefs.Get"/>
+ <!-- datatypes -->
<data-type name="classfileset"
class="org.apache.tools.ant.types.optional.depend.ClassfileSet"/>
+ <data-type name="scriptfilter"
class="org.apache.tools.ant.types.optional.ScriptFilter"/>
<!-- deprecated ant tasks (kept for back compatibility) -->
1.5 +0 -2 ant/proposal/sandbox/antlib/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/ant/proposal/sandbox/antlib/build.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- build.xml 3 Mar 2002 12:37:33 -0000 1.4
+++ build.xml 21 Apr 2003 20:03:53 -0000 1.5
@@ -20,8 +20,6 @@
<fileset dir='${orig-classes}'>
<include name='**' />
<exclude name='org/apache/tools/ant/Project.class' />
- <exclude name='org/apache/tools/ant/ProjectHelper.class' />
- <exclude name='org/apache/tools/ant/IntrospectionHelper.class' />
<exclude name='org/apache/tools/ant/TaskAdapter.class' />
<exclude name='org/apache/tools/ant/taskdefs/Ant.class' />
</fileset>