You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by ru...@locus.apache.org on 2000/04/01 14:44:52 UTC
cvs commit: jakarta-ant/src/main/org/apache/tools/ant ProjectHelper.java
rubys 00/04/01 04:44:51
Modified: . build.xml
src/main/org/apache/tools/ant ProjectHelper.java
Log:
Restore the ability to define properties and taskdefs outside the scope
of any target.
Revision Changes Path
1.15 +32 -29 jakarta-ant/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-ant/build.xml,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- build.xml 2000/03/19 17:57:03 1.14
+++ build.xml 2000/04/01 12:44:50 1.15
@@ -6,47 +6,50 @@
<project name="Ant" default="main" basedir=".">
- <target name="init">
- <property name="Name" value="Ant"/>
- <property name="name" value="ant"/>
- <property name="version" value="1.0-rc1"/>
-
- <property name="ant.home" value="."/>
- <property name="bin.dir" value="bin"/>
- <property name="src.bin.dir" value="src/bin"/>
- <property name="src.dir" value="${basedir}/src/main"/>
- <property name="lib.dir" value="lib"/>
- <property name="docs.dir" value="docs"/>
- <property name="build.dir" value="build"/>
- <property name="build.classes" value="build/classes"/>
- <property name="build.javadocs" value="build/javadocs"/>
- <property name="ant.dist.dir" value="dist"/>
-
- <property name="classpath" value="lib/xml.jar"/>
- <property name="packages" value="org.apache.tools.*"/>
- <property name="manifest" value="src/etc/manifest"/>
+ <property name="Name" value="Ant"/>
+ <property name="name" value="ant"/>
+ <property name="version" value="1.0-rc1"/>
+
+ <property name="ant.home" value="."/>
+ <property name="bin.dir" value="bin"/>
+ <property name="src.bin.dir" value="src/bin"/>
+ <property name="src.dir" value="${basedir}/src/main"/>
+ <property name="lib.dir" value="lib"/>
+ <property name="docs.dir" value="docs"/>
+ <property name="build.dir" value="build"/>
+ <property name="build.classes" value="build/classes"/>
+ <property name="build.javadocs" value="build/javadocs"/>
+ <property name="ant.dist.dir" value="dist"/>
+
+ <property name="classpath" value="lib/xml.jar"/>
+ <property name="packages" value="org.apache.tools.*"/>
+ <property name="manifest" value="src/etc/manifest"/>
+
+ <property name="build.compiler" value="classic"/>
+
+ <!-- Give user a chance to override without editing this file
+ (and without typing -D each time it compiles it -->
+ <property file="${user.home}/.ant.properties" />
- <property name="build.compiler" value="classic"/>
-
+ <!-- =================================================================== -->
+ <!-- Check to see what optional dependencies are available -->
+ <!-- =================================================================== -->
+ <target name="check_for_optional_packages">
<available property="bsf.present" classname="com.ibm.bsf.BSFManager" />
<available property="netrexx.present" classname="netrexx.lang.Rexx" />
-
- <!-- Give user a chance to override without editing this file
- (and without typing -D each time it compiles it -->
- <property file="${user.home}/.ant.properties" />
</target>
<!-- =================================================================== -->
<!-- Prepares the build directory -->
<!-- =================================================================== -->
- <target name="prepare" depends="init">
+ <target name="prepare">
<mkdir dir="${build.dir}"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the source code -->
<!-- =================================================================== -->
- <target name="compile" depends="prepare">
+ <target name="compile" depends="prepare,check_for_optional_packages">
<mkdir dir="${build.classes}"/>
<javac srcdir="${src.dir}"
destdir="${build.classes}"
@@ -143,7 +146,7 @@
<!-- =================================================================== -->
<!-- Cleans up generated stuff -->
<!-- =================================================================== -->
- <target name="clean" depends="init">
+ <target name="clean">
<deltree dir="${build.dir}"/>
<deltree dir="${ant.dist.dir}"/>
</target>
@@ -161,7 +164,7 @@
<!-- in progress ! (may not work) -->
- <target name="get.snapshot" depends="init">
+ <target name="get.snapshot">
<get src="http://jakarta.apache.org/build/tmp/ant/ant.src.zip" dest="ant-src.zip" />
<expand src="ant-src.zip" dest="." />
</target>
1.10 +28 -9 jakarta-ant/src/main/org/apache/tools/ant/ProjectHelper.java
Index: ProjectHelper.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/ProjectHelper.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ProjectHelper.java 2000/03/19 20:27:44 1.9
+++ ProjectHelper.java 2000/04/01 12:44:50 1.10
@@ -61,6 +61,7 @@
import java.util.*;
import org.xml.sax.SAXException;
import org.w3c.dom.*;
+import org.apache.tools.ant.taskdefs.*;
/**
* Configures a Project (complete with Targets and Tasks) based on
@@ -129,15 +130,33 @@
// configureTaskDefs(project, root);
- // set up the targets into the project
- configureTargets(project, root);
+ // set up the taskdefs, properties, and targets into the project
+ configureProject(project, root);
}
- private static void configureTargets(Project project, Element root)
+ private static void configureProject(Project project, Element root)
throws BuildException
{
+ // configure taskdefs
+ NodeList list = root.getElementsByTagName("taskdef");
+ for (int i = 0; i < list.getLength(); i++) {
+ Taskdef taskdef = new Taskdef();
+ configure(project, taskdef, (Element)list.item(i));
+ taskdef.setProject(project);
+ taskdef.init();
+ }
+
+ // configure properties
+ list = root.getElementsByTagName("property");
+ for (int i = 0; i < list.getLength(); i++) {
+ Property property = new Property();
+ configure(project, property, (Element)list.item(i));
+ property.setProject(project);
+ property.init();
+ }
+
// configure targets
- NodeList list = root.getElementsByTagName("target");
+ list = root.getElementsByTagName("target");
for (int i = 0; i < list.getLength(); i++) {
Element element = (Element)list.item(i);
String targetName = element.getAttribute("name");
@@ -199,8 +218,7 @@
// get the attributes of this element and reflect them
// into the task
- NamedNodeMap nodeMap = element.getAttributes();
- configure(project, task, nodeMap);
+ configure(project, task, element);
task.init();
task.setTarget(target);
target.addTask(task);
@@ -253,8 +271,7 @@
targetClass.getMethod(methodName, new Class[]{});
Object child = addProp.invoke(target, new Object[] {});
- NamedNodeMap nodeMap = element.getAttributes();
- configure(project, child, nodeMap);
+ configure(project, child, element);
processNestedProperties(project, child, element);
} catch (NoSuchMethodException nsme) {
@@ -272,9 +289,11 @@
private static void configure(Project project,
Object target,
- NamedNodeMap nodeMap)
+ Element element)
throws BuildException
{
+ NamedNodeMap nodeMap = element.getAttributes();
+
if( target instanceof TaskAdapter )
target=((TaskAdapter)target).getProxy();