/[cvs]/jsr166/build.xml
ViewVC logotype

Diff of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.27 by tim, Wed May 28 00:33:17 2003 UTC revision 1.113 by jsr166, Sun Jan 20 03:51:38 2013 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage">  <project name="jsr166" default="usage">
2    
3    <description>    <description>
4      Build file for JSR-166  ------------------------------------------------------------------------------
5      Build file for JSR-166
6    
7      JUnit 3.8 or better must be in ${ant.home}/lib for the test target to work.    Usage: ant [target]
8    </description>  
9      User-specific settings are read from user.properties.
10      See user.properties.sample for an explanation of some useful settings.
11    
12      The repository contains all dependencies except for ant and the JDK
13      itself.  Because the JDK version matters and because different
14      targets require different JDKs, we assume that users have created a
15      hierarchy containing:
16      $HOME/jdk/jdk6
17      $HOME/jdk/jdk7
18      $HOME/jdk/jdk8
19      where each of the above is a JDK or a symlink to same, and
20      $HOME/jdk/src/jdk6
21      $HOME/jdk/src/jdk7
22      $HOME/jdk/src/jdk8
23      where each of the above is a complete JDK source tree
24      (e.g. mercurial forest) or a symlink to same.
25    ------------------------------------------------------------------------------
26      </description>
27    
28    <target name="usage" description="Prints this message">    <target name="usage" description="Advises user to run with -projecthelp">
29      <echo>      <echo>Run "ant -projecthelp" for full usage information.</echo>
 ant [target], where target is one of:  
   
  usage       (default) Prints this message  
  compile     Compiles all sources to build folder  
  jar         Builds library jar from compiled sources  
  test        Runs all tests (requires JUnit 1.8 in ${ant.home}/lib)  
  docs        Builds javadocs with custom tags to build folder  
  dist-docs   Builds javadocs without custom tags to dist folder  
  dist        Puts all distributable products in single hierarchy  
   
  clean       Removes all build products  
  dist-clean  Removes all build and distribution products  
   
  checkstyle  Reports on style errors in Java source (verbose, mostly chaff)  
  doccheck    Reports on javadoc style errors (not working yet)  
     </echo>  
30    </target>    </target>
31    
32    
33    <!-- User-specific settings -->    <!-- User-specific settings -->
34    <property file="user.properties"/>    <property file="user.properties"/>
35    
   <!-- Set build.warnings in user.properties to turn on -warnunchecked -->  
   <!-- <property name="build.warnings" value=""/> -->  
   
36    
37    <!-- Compilation options -->    <!-- Compilation options -->
38    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="1.6"/>
   <property name="build.docsourcelevel" value="1.4"/>  
39    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
40    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
41    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
42    
43    <!-- Build locations -->    <!-- Build locations -->
44    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
45    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
46    <property name="build.emulation.dir"  location="${build.dir}/emulation"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
47    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
48    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
49    <property name="build.ant.dir"        location="${build.dir}/ant"/>  
50    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
51    <property name="build.stripped.dir"   location="${build.dir}/stripped"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
52    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
53    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
54    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>  
55      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
56      <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
57      <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
58      <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
59    
60      <!-- JDK binary locations -->
61      <property name="jdks.home"  location="${user.home}/jdk"/>
62    
63      <macrodef name="defjdklocations">
64        <attribute name="v"/>
65        <sequential>
66        <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
67        <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
68        <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
69        <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
70        <property name="bootdir@{v}"    location="${jdk@{v}.home}/jre/lib"/>
71        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
72        <property name="bootclasspath@{v}"
73         value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>
74        </sequential>
75      </macrodef>
76    
77      <defjdklocations v="6"/>
78      <defjdklocations v="7"/>
79      <defjdklocations v="8"/>
80    
81      <macrodef name="run-tck-tests">
82        <attribute name="jvm"/>
83        <attribute name="tck.classes"/>
84        <attribute name="product.jar" default="${product.jar}"/>
85        <attribute name="jvmflags" default=""/>
86        <sequential>
87        <java classname="JSR166TestCase"
88              jvm="@{jvm}" fork="true">
89            <jvmarg value="-Xbootclasspath/p:@{product.jar}"/>
90            <jvmarg line="@{jvmflags}"/>
91            <classpath>
92              <pathelement location="${junit.jar}"/>
93              <pathelement location="@{tck.classes}"/>
94            </classpath>
95        </java>
96        </sequential>
97      </macrodef>
98    
99    <!-- Source locations -->    <!-- Source locations -->
100    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
   <property name="emulation.src.dir"    location="${basedir}/src/emulation"/>  
101    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
102    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
103    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
104      <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>
105    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
106    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
107      <property name="topsrc.dir"           location="${basedir}/src"/>
108      <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
109      <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
110      <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
111      <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
112      <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
113    
114    <!-- Distribution locations -->    <!-- Distribution locations -->
115    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="dist.javadocs.dir"          location="${dist.dir}/jsr166.docs"/>
116      <property name="dist.4jdk7.docs.dir"        location="${dist.dir}/jsr166-4jdk7.docs"/>
117      <property name="dist.jsr166xjavadocs.dir"   location="${dist.dir}/jsr166x.docs"/>
118      <property name="dist.jsr166yjavadocs.dir"   location="${dist.dir}/jsr166y.docs"/>
119      <property name="dist.jsr166ejavadocs.dir"   location="${dist.dir}/jsr166e.docs"/>
120      <property name="dist.extra166yjavadocs.dir" location="${dist.dir}/extra166y.docs"/>
121    
122    <!-- Jar locations -->    <!-- Jar locations -->
123    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
124    <property name="javac.jar"            location="${lib.dir}/javac.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
125    <property name="collect.jar"          location="${lib.dir}/collect.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
126    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
127    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
128      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
129      <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
130    
131      <!-- Bootclasspath argument -->
132      <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>
133    
134      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
135      <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
136      <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
137      <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>
138    
139      <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
140      <!-- The below does not yet exist as of 2012-11 -->
141      <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
142    
143      <!-- Default jdk api doc location (latest stable release seems best) -->
144      <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>
145    
146    <!--    <!-- Test classpath -->
147     ! Bootclasspath munging for source compilation.    <path id="test.classpath">
148     -->      <pathelement location="${build.testcases.dir}"/>
149        <pathelement location="${junit.jar}"/>
   <path id="javac.bootclasspath.prepend">  
     <!-- <pathelement location="${src.dir}"/> -->  
     <pathelement location="${javac.jar}"/>  
150    </path>    </path>
151    
152    <path id="javac.bootclasspath">    <!-- ALoops classpath -->
153      <!-- <pathelement location="${src.dir}"/> -->    <path id="loops.classpath">
154      <pathelement location="${collect.jar}"/>      <pathelement location="${build.loops.dir}"/>
     <pathelement location="${rt.jar}"/>  
155    </path>    </path>
156    
157    <!-- Flatten bootclasspath prefix into a platform-appropriate string -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
158    <property name="javac.bootclasspath.prepend" refid="javac.bootclasspath.prepend"/>    <!-- TODO: How do we get &trade to work? -->
159      <!-- TODO: Why isn't @jls a "standard" tag? -->
160      <!--   property name="javadoc.jls.cite" value="The Java&trade; Language Specification" -->
161      <property name="javadoc.jls.cite" value="The Java Language Specification"/>
162      <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
163    
164    <!-- Turn the flattened bootclasspath prefix into a javac argument -->    <!-- Main targets -->
   <property name="javac.args" value='-J-Xbootclasspath/p:${javac.bootclasspath.prepend}'/>  
165    
166      <target name="dists"
167              depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
168              description="Builds all public jars and docs"/>
169    
170      <target name="compile"
171              depends="configure-compiler"
172              description="Compiles src/main sources to build dir">
173    
174    <!--      <mkdir dir="${build.classes.dir}"/>
    ! Bootclasspath munging for testing, so JUnit can test our local  
    ! modifications to java.*.  
    -->  
175    
176    <path id="test.classpath">      <javac srcdir="${src.dir}"
177      <pathelement location="${product.jar}"/>             destdir="${build.classes.dir}"
178      <pathelement location="${build.testcases.dir}"/>             debug="${build.debug}"
179      <pathelement location="${junit.jar}"/>             debuglevel="${build.debuglevel}"
180    </path>             deprecation="${build.deprecation}"
181               classpath=""
182               includeAntRuntime="false"
183               includeJavaRuntime="false"
184               executable="${javac8}"
185               fork="true">
186    
187          <include name="**/*.java"/>
188          <compilerarg line="${build.args}"/>
189          <compilerarg value="-XDignore.symbol.file=true"/>
190          <compilerarg value="-Xlint:all"/>
191    
192    <!--
193          <exclude name="java/lang/**"/>
194          <compilerarg line="${build.args}"/>
195          <compilerarg line="-Xlint -Xmaxwarns 1000"/>
196    -->
197    
198        </javac>
199    
200    <!-- Flatten test classpath into a platform-appropriate string -->    </target>
   <property name="test.classpath" refid="test.classpath"/>  
201    
   <!-- Turn the flattened test classpath into a javac argument -->  
   <property name="test.javac.args" value='-Xbootclasspath/p:${test.classpath}'/>  
202    
203    
204      <target name="jar"
205              depends="compile"
206              description="Builds library jar from compiled sources">
207    
208    <!-- Main targets -->      <jar destfile="${product.jar}">
209          <fileset dir="${build.classes.dir}"/>
210        </jar>
211    
212      </target>
213    
   <target name="compile" depends="init"  
           description="Compiles main sources to build folder">  
214    
     <mkdir dir="${build.classes.dir}"/>  
215    
216      <javac srcdir="${src.dir}"    <target name="test"
217            destdir="${build.classes.dir}"            depends="configure-tests, report-tests"
218              description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
219    
220    
221    
222      <target name="docs"
223              description="Builds javadocs for src/main to dist dir">
224    
225        <delete dir="${dist.javadocs.dir}"/>
226        <mkdir dir="${dist.javadocs.dir}"/>
227    
228        <!-- the packagenames="none" hack below prevents scanning the -->
229        <!-- sourcepath for packages -->
230    
231        <javadoc destdir="${dist.javadocs.dir}"
232                 packagenames="none"
233                 link="${jdkapi8docs.url}"
234                 overview="${src.dir}/intro.html"
235                 sourcepath="${src.dir}:${jdk8src.dir}"
236                 classpath=""
237                 executable="${javadoc8}">
238          <arg value="-XDignore.symbol.file=true"/>
239          <arg value="-tag"/>
240          <arg value="${javadoc.jls.option}"/>
241          <fileset dir="${src.dir}" defaultexcludes="yes">
242            <include name="**/*.java"/>
243          </fileset>
244        </javadoc>
245    
246      </target>
247    
248    
249    
250      <target name="dist"
251              depends="dist-clean, dist-jar, docs"
252              description="Puts all distributable products in single hierarchy"/>
253    
254    
255      <target name="release"
256              depends="dist"
257              description="Puts entire CVS tree, plus distribution productions, in a jar">
258    
259        <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
260    
261        <jar basedir="${basedir}" destfile="${release.jar}">
262          <!-- <exclude name="build/**"/> -->
263          <exclude name="${release.jar}"/>
264          <exclude name="user.properties"/>
265          <exclude name="etc/notes/**"/>
266          <exclude name="src/emulation/**"/>
267          <exclude name="**/SyntaxTest.java"/>
268          <exclude name="**/SuperfluousAbstract.java"/>
269        </jar>
270    
271      </target>
272    
273    
274    
275      <target name="clean"
276              description="Removes all build products">
277    
278        <delete dir="${build.dir}"/>
279    
280      </target>
281    
282    
283    
284      <target name="dist-clean"
285              description="Removes all build and distribution products">
286    
287        <delete dir="${dist.dir}"/>
288    
289      </target>
290    
291    
292    
293      <!-- Internal targets -->
294    
295    
296      <target name="dist-jar"
297              depends="clean, jar">
298    
299        <copy file="${product.jar}" todir="${dist.dir}"/>
300    
301      </target>
302    
303    
304      <target name="compile-tests"
305              depends="jar">
306    
307        <mkdir dir="${build.testcases.dir}"/>
308    
309        <javac srcdir="${tck.src.dir}"
310               destdir="${build.testcases.dir}"
311               debug="${build.debug}"
312               debuglevel="${build.debuglevel}"
313               deprecation="${build.deprecation}"
314               source="6"
315               classpath="${junit.jar}"
316               bootclasspath="${product.jar}:${bootclasspath6}"
317               includeAntRuntime="false"
318               includeJavaRuntime="false"
319               executable="${javac8}"
320               fork="true">
321    
322          <include name="**/*.java"/>
323          <compilerarg line="${build.args}"/>
324          <compilerarg value="-XDignore.symbol.file=true"/>
325          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
326    
327        </javac>
328    
329        <javac srcdir="${test.src.dir}"
330               destdir="${build.testcases.dir}"
331               debug="${build.debug}"
332               debuglevel="${build.debuglevel}"
333               deprecation="${build.deprecation}"
334               source="6"
335               classpath=""
336               bootclasspath="${product.jar}:${bootclasspath6}"
337               includeAntRuntime="false"
338               includeJavaRuntime="false"
339               executable="${javac8}"
340               fork="true">
341    
342          <include name="jsr166/test/**/*.java"/>
343    
344          <compilerarg line="${build.args}"/>
345          <compilerarg value="-XDignore.symbol.file=true"/>
346          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
347    
348        </javac>
349    
350    <!--
351        <javac srcdir="${jtreg.src.dir}"
352              destdir="${build.testcases.dir}"
353              debug="${build.debug}"              debug="${build.debug}"
354         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
355        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
356             source="${build.sourcelevel}"             source="${build.sourcelevel}"
357               fork="true">               fork="true">
358    
359        <bootclasspath refid="javac.bootclasspath"/>        <compilerarg value="${bootclasspath.args}"/>
360        <compilerarg line="${javac.args} ${build.warnings.option}"/>        <compilerarg line="${build.args}"/>
361          <compilerarg value="-XDignore.symbol.file=true"/>
362    
363      </javac>      </javac>
364    -->
365    
366    </target>    </target>
367    
368    
369    <target name="jar" depends="native-jar, emulation-jar"/>    <target name="run-tests"
370              depends="compile-tests">
371    
372        <!-- May be overridden by user.properties -->
373        <property name="testcase" value="*"/>
374    
375        <mkdir dir="${build.reports.dir}"/>
376    
377        <junit printsummary="true"
378                 showoutput="true"
379              errorProperty="junit.failed"
380            failureProperty="junit.failed"
381                        dir="${build.reports.dir}"
382                        jvm="${java8}"
383                       fork="true">
384    
385          <jvmarg value="-Xbootclasspath/p:${product.jar}"/>
386          <jvmarg value="-server"/>
387          <jvmarg value="-showversion"/>
388    
389          <classpath refid="test.classpath"/>
390    
391    <target name="test" depends="init, check-junit, report-tests"        <formatter type="xml"/>
           description="Runs all tests (requires JUnit 3.8+ in ${ant.home}/lib)"  
   />  
392    
393          <batchtest todir="${build.reports.dir}" unless="no.test.tck">
394            <fileset dir="${tck.src.dir}">
395              <include name="**/${testcase}Test.java"/>
396            </fileset>
397          </batchtest>
398    
399    <target name="checkstyle" depends="filter-src"        <batchtest todir="${build.reports.dir}" if="do.test.old">
400            description="Reports on style errors in Java source (verbose, mostly chaff)">          <fileset dir="${test.src.dir}">
401              <include name="jsr166/test/**/${testcase}Test.java"/>
402            </fileset>
403          </batchtest>
404    
405      <taskdef resource="checkstyletask.properties"  <!--
406              classpath="${lib.dir}/checkstyle-all-2.4.jar"/>        <batchtest todir="${build.reports.dir}" if="do.test.jtreg">
407            <fileset dir="${jtreg.src.dir}">
408              <include name="**/${testcase}Test.java"/>
409            </fileset>
410          </batchtest>
411    -->
412    
413      <checkstyle>      </junit>
       <formatter type="plain"/>  <!-- also available: type="xml" -->  
       <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
     </checkstyle>  
414    
415    </target>    </target>
416    
417    
418    <target name="doccheck" depends="filter-src"    <target name="report-tests"
419            description="Reports on javadoc style errors (not working yet)">            depends="run-tests">
420    
421      <delete dir="${build.doccheck.dir}"/>      <!-- Sets junit.report.format to frames if redirection is present,
422      <mkdir dir="${build.doccheck.dir}"/>           otherwise sets it to noframes. -->
423        <available property="junit.report.format"
424                      value="frames"
425                  classname="org.apache.xalan.lib.Redirect"
426        />
427        <property name="junit.report.format" value="noframes"/>
428    
429      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"      <junitreport todir="${build.reports.dir}">
430           docletpath="${lib.dir}/doccheck.jar"        <fileset dir="${build.reports.dir}">
431              destdir="${build.doccheck.dir}">          <include name="TEST-*.xml"/>
432        <packageset dir="${build.filter.src.dir}"/>        </fileset>
433      </javadoc>        <report format="${junit.report.format}" todir="${build.reports.dir}"
434          />
435        </junitreport>
436    
437        <fail message="Test Cases Failed" if="junit.failed"/>
438    
439    </target>    </target>
440    
441    
442    <target name="docs" depends="filter-src"    <target name="configure-compiler">
           description="Builds javadocs with custom tags to build folder">  
443    
444      <delete dir="${build.javadocs.dir}"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
     <mkdir dir="${build.javadocs.dir}"/>  
445    
446      <javadoc destdir="${build.javadocs.dir}"      <condition property="warnunchecked.arg" value="${unchecked.option}">
447                  link="http://java.sun.com/j2se/1.4.1/docs/api"        <istrue value="${build.warnunchecked}"/>
448              overview="${src.dir}/intro.html"      </condition>
               source="${build.docsourcelevel}">  
   
       <tag name="revised" description="Last revised:"/>  
       <tag name="spec" description="Specified by:"/>  
       <tag name="editor" description="Last edited by:"/>  
       <tag name="fixme" description="FIX ME:"/>  
       <packageset dir="${build.filter.src.dir}"/>  
449    
450      </javadoc>      <property name="warnunchecked.arg" value=""/>
451    
452    
453        <!-- Common options in javac invocations -->
454        <property name="build.args" value="${warnunchecked.arg}"/>
455    
456    </target>    </target>
457    
458    
459    <!--    <target name="configure-tests"
460     # javac -s doesn't reliably generate compilable code. It generates         depends="configure-compiler">
    # bridge methods (marked as "synthetic") that can have identical  
    # signatures to existing methods except for the return value.  
    -->  
   <target name="strip" depends="init">  
461    
462      <mkdir dir="${build.stripped.dir}"/>      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
463        <available property="junit.available"
464                   classname="junit.framework.Protectable"/>
465    
466      <javac srcdir="${src.dir}"      <!-- Xalan -->
467            destdir="${build.stripped.dir}"      <available property="xalan.available"
468                   classname="org.apache.xalan.Version"/>
469    
470    
471        <!-- Ant 1.6beta and later don't need or want this check -->
472        <!--
473        <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
474              unless="junit.available"/>
475    
476        <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
477              unless="xalan.available"/>
478        -->
479    
480      </target>
481    
482    
483      <!-- Various demos and test programs -->
484    
485    
486      <target name="loops" depends="configure-compiler"
487              description="Benchmark from Doug Lea's AQS paper">
488    
489        <mkdir dir="${build.loops.dir}"/>
490    
491        <javac srcdir="${loops.src.dir}"
492              destdir="${build.loops.dir}"
493              debug="${build.debug}"              debug="${build.debug}"
494         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
495        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
496             source="${build.sourcelevel}"             source="${build.sourcelevel}"
497               fork="true">               fork="true">
498    
499        <bootclasspath refid="javac.bootclasspath"/>        <compilerarg line="${build.args}"/>
500        <compilerarg line="${javac.args} ${build.warnings.option} -s"/>        <classpath refid="loops.classpath"/>
501          <compilerarg value="-XDignore.symbol.file=true"/>
502    
503        </javac>
504    
505        <java classname="ALoops" fork="true">
506          <classpath refid="loops.classpath"/>
507        </java>
508    
509      </target>
510    
511    
512      <!-- jsr166 4jdk7 -->
513    
514    
515      <target name="4jdk7compile"
516              depends="configure-compiler"
517              description="Compiles src/jdk7 sources, targeting jdk7">
518    
519        <mkdir dir="${build.4jdk7.classes.dir}"/>
520    
521        <javac srcdir="${4jdk7src.dir}"
522               destdir="${build.4jdk7.classes.dir}"
523               debug="${build.debug}"
524               debuglevel="${build.debuglevel}"
525               deprecation="${build.deprecation}"
526               source="6"
527               classpath=""
528               bootclasspath="${bootclasspath6}"
529               includeAntRuntime="false"
530               includeJavaRuntime="false"
531               executable="${javac7}"
532               fork="true">
533    
534          <include name="**/*.java"/>
535          <compilerarg line="${build.args}"/>
536          <compilerarg value="-XDignore.symbol.file=true"/>
537          <compilerarg value="-Xlint:all"/>
538    
539        </javac>
540    
541        <jar destfile="${4jdk7product.jar}" index="true">
542          <fileset dir="${build.4jdk7.classes.dir}"/>
543        </jar>
544    
545        <mkdir dir="${build.4jdk7.tck.classes.dir}"/>
546    
547        <javac srcdir="${tck.src.dir}"
548               destdir="${build.4jdk7.tck.classes.dir}"
549               debug="${build.debug}"
550               debuglevel="${build.debuglevel}"
551               deprecation="${build.deprecation}"
552               source="6"
553               classpath="${junit.jar}"
554               bootclasspath="${4jdk7product.jar}:${bootclasspath6}"
555               includeAntRuntime="false"
556               includeJavaRuntime="false"
557               executable="${javac7}"
558               fork="true">
559    
560          <include name="**/*.java"/>
561          <compilerarg line="${build.args}"/>
562          <compilerarg value="-XDignore.symbol.file=true"/>
563          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
564    
565      </javac>      </javac>
566    
567    </target>    </target>
568    
569    
570    <target name="dist" depends="init, dist-clean, dist-jar, dist-docs"    <target name="4jdk7-test-tck"
571              depends="4jdk7compile"
572              description="Runs tck tests for jsr166-4jdk7 directly">
573        <run-tck-tests
574          jvm="${java7}"
575          tck.classes="${build.4jdk7.tck.classes.dir}"
576          product.jar="${4jdk7product.jar}"/>
577      </target>
578    
579    
580      <target name="4jdk7-test-tck-junit"
581              depends="4jdk7compile"
582              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
583    
584        <junit printsummary="true"
585               showoutput="true"
586               errorProperty="junit.failed"
587               failureProperty="junit.failed"
588               includeantruntime="true"
589               jvm="${java7}"
590               fork="true">
591    
592          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
593          <jvmarg value="-server"/>
594    
595          <classpath>
596            <pathelement location="${junit.jar}"/>
597            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
598          </classpath>
599    
600          <formatter type="brief"/>
601    
602          <test name="JSR166TestCase" haltonfailure="no">
603          </test>
604    
605        </junit>
606      </target>
607    
608    
609      <target name="4jdk7docs"
610              description="Builds javadocs for src/jdk7 to dist dir">
611    
612        <delete dir="${dist.4jdk7.docs.dir}"/>
613        <mkdir dir="${dist.4jdk7.docs.dir}"/>
614    
615        <javadoc destdir="${dist.4jdk7.docs.dir}"
616                 packagenames="none"
617                 link="${jdkapi7docs.url}"
618                 overview="${4jdk7src.dir}/intro.html"
619                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
620                 classpath=""
621                 executable="${javadoc7}">
622          <arg value="-XDignore.symbol.file=true"/>
623          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
624            <include name="**/*.java"/>
625          </fileset>
626        </javadoc>
627    
628      </target>
629    
630    
631      <target name="4jdk7dist"
632              depends="4jdk7dist-clean, 4jdk7dist-jar, 4jdk7docs"
633            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
634    
635    
   <target name="clean"  
           description="Removes all build products">  
636    
637      <delete dir="${build.dir}"/>    <target name="4jdk7clean"
638      <delete dir="${build.classes.dir}"/>            description="Removes all 4jdk7 build products">
639      <delete dir="${build.lib.dir}"/>  
640        <delete dir="${build.4jdk7.dir}"/>
641    
642    </target>    </target>
643    
644    
645    <target name="dist-clean"  
646      <target name="4jdk7dist-clean"
647            description="Removes all build and distribution products">            description="Removes all build and distribution products">
648    
649      <delete dir="${dist.dir}"/>    </target>
650    
651      <target name="4jdk7dist-jar"
652              depends="4jdk7clean, 4jdk7compile">
653    
654        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
655    
656    </target>    </target>
657    
658    
659    <!-- Anthill targets -->    <!-- jsr166x -->
660    
661      <target name="jsr166xcompile"
662              depends="configure-compiler"
663              description="Compiles jsr166x sources to build dir">
664    
665        <mkdir dir="${build.jsr166x.dir}"/>
666    
667    <!-- Should really run the tests instead of just the jar target -->      <javac srcdir="${topsrc.dir}"
668    <target name="anthill-build" depends="jar, test, docs, dist-docs"/>             destdir="${build.jsr166x.dir}"
669               debug="${build.debug}"
670               debuglevel="${build.debuglevel}"
671               deprecation="${build.deprecation}"
672               classpath=""
673               source="5"
674               bootclasspath="${bootclasspath6}"
675               includeAntRuntime="false"
676               includeJavaRuntime="false"
677               executable="${javac7}"
678               fork="true">
679    
680          <include name="jsr166x/**/*.java"/>
681          <compilerarg line="${build.args}"/>
682          <compilerarg value="-XDignore.symbol.file=true"/>
683          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
684    
685        </javac>
686    
   <target name="anthill-publish">  
     <copy todir="${deployDir}/docs/private">  
       <fileset dir="${build.javadocs.dir}"/>  
     </copy>  
     <copy todir="${deployDir}/docs/public">  
       <fileset dir="${dist.javadocs.dir}"/>  
     </copy>  
     <copy tofile="${deployDir}/index.html"  
           file="${basedir}/etc/anthill-index.html"/>  
     <copy todir="${deployDir}/notes">  
       <fileset dir="${basedir}/etc/notes"/>  
     </copy>  
687    </target>    </target>
688    
689    
   <!-- Internal targets -->  
690    
691    <target name="set-warnings-if" if="build.warnings">    <target name="jsr166xjar"
692              depends="jsr166xcompile"
693              description="Builds library jar from compiled sources">
694    
695      <property name="build.warnings.option" value="-warnunchecked"/>      <jar destfile="${jsr166x.jar}">
696          <fileset dir="${build.jsr166x.dir}"/>
697        </jar>
698    
699    </target>    </target>
700    
701    
   <target name="set-warnings-unless" unless="build.warnings">  
702    
703      <property name="build.warnings.option" value=""/>    <target name="jsr166xdocs"
704              description="Builds javadocs to dist dir">
705    
706        <delete dir="${dist.jsr166xjavadocs.dir}"/>
707        <mkdir dir="${dist.jsr166xjavadocs.dir}"/>
708    
709        <javadoc destdir="${dist.jsr166xjavadocs.dir}"
710                 packagenames="jsr166x.*"
711                 link="${jdkapidocs.url}"
712                 source="5"
713                 bootclasspath="${bootclasspath6}"
714                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
715                 executable="${javadoc7}"
716                 additionalparam="-XDignore.symbol.file=true" />
717    
718    </target>    </target>
719    
720    
721    <target name="init" depends="set-warnings-if, set-warnings-unless">    <target name="jsr166xdist"
722              depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdocs"
723              description="Puts all distributable products in single hierarchy"/>
724    
725    
726      <!-- Version is kept in a separate file -->  
727      <loadfile property="version" srcFile="version.properties"/>    <target name="jsr166xclean"
728      <echo>Building JSR-166 version ${version}</echo>            description="Removes all jsr166x build products">
729    
730        <delete dir="${build.jsr166x.dir}"/>
731    
732    </target>    </target>
733    
734    
   <target name="native-jar" depends="compile"  
           description="Builds library jar from compiled sources">  
735    
736      <mkdir dir="${build.lib.dir}"/>    <target name="jsr166xdist-clean"
737              description="Removes all build and distribution products">
738    
739      <jar destfile="${product.jar}">    </target>
740        <fileset dir="${build.classes.dir}"/>  
741      </jar>  
742      <target name="jsr166xdist-jar"
743              depends="jsr166xclean, jsr166xjar">
744    
745        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
746    
747    </target>    </target>
748    
749      <!-- jsr166y -->
750    
   <target name="compile-emulation" depends="init"  
           if="build.emulation"  
           description="Compiles emulation sources to build folder">  
751    
752      <mkdir dir="${build.emulation.dir}"/>    <target name="jsr166ycompile"
753              depends="configure-compiler"
754              description="Compiles jsr166y sources">
755    
756      <javac srcdir="${emulation.src.dir}"      <mkdir dir="${build.jsr166y.dir}"/>
           destdir="${build.emulation.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
757    
758        <bootclasspath refid="javac.bootclasspath"/>      <javac srcdir="${topsrc.dir}"
759        <compilerarg line="${javac.args} ${build.warnings.option}"/>             destdir="${build.jsr166y.dir}"
760               debug="${build.debug}"
761               debuglevel="${build.debuglevel}"
762               deprecation="${build.deprecation}"
763               source="6"
764               classpath=""
765               bootclasspath="${bootclasspath6}"
766               includeAntRuntime="false"
767               includeJavaRuntime="false"
768               executable="${javac7}"
769               fork="true">
770    
771          <include name="jsr166y/**/*.java"/>
772          <compilerarg line="${build.args}"/>
773          <compilerarg value="-XDignore.symbol.file=true"/>
774          <compilerarg value="-Xlint:all"/>
775      </javac>      </javac>
   
776    </target>    </target>
777    
778    
779    <target name="emulation-jar" depends="native-jar, compile-emulation"    <target name="jsr166yjar"
780            if="build.emulation">            depends="jsr166ycompile"
781              description="Builds library jar from compiled sources">
782    
783      <jar destfile="${product.jar}" update="true" duplicate="add">      <jar destfile="${jsr166y.jar}" index="true">
784        <fileset dir="${build.emulation.dir}"/>        <fileset dir="${build.jsr166y.dir}"/>
785      </jar>      </jar>
786    
787    </target>    </target>
788    
789    
   <target name="dist-jar" depends="clean, jar">  
790    
791      <copy file="${product.jar}" todir="${dist.dir}"/>    <target name="jsr166ydocs"
792              description="Builds javadocs to dist dir">
793    
794        <delete dir="${dist.jsr166yjavadocs.dir}"/>
795        <mkdir dir="${dist.jsr166yjavadocs.dir}"/>
796    
797        <javadoc destdir="${dist.jsr166yjavadocs.dir}"
798                 packagenames="jsr166y.*"
799                 link="${jdkapidocs.url}"
800                 source="6"
801                 bootclasspath="${bootclasspath6}"
802                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
803                 executable="${javadoc7}"
804                 additionalparam="-XDignore.symbol.file=true" />
805    
806    </target>    </target>
807    
808    
809    <target name="dist-docs" depends="filter-src"    <target name="jsr166ydist"
810            description="Builds javadocs without custom tags to dist folder">            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydocs"
811              description="Puts all distributable products in single hierarchy"/>
812    
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
813    
     <javadoc destdir="${dist.javadocs.dir}"  
                 link="http://java.sun.com/j2se/1.4.1/docs/api"  
             overview="${src.dir}/intro.html"  
               source="${build.docsourcelevel}">  
814    
815        <packageset dir="${build.filter.src.dir}"/>    <target name="jsr166yclean"
816              description="Removes all jsr166y build products">
817    
818      </javadoc>      <delete dir="${build.jsr166y.dir}"/>
819    
820    </target>    </target>
821    
822    
   <target name="compile-ant-filter" depends="init">  
823    
824      <mkdir dir="${build.ant.dir}"/>    <target name="jsr166ydist-clean"
825              description="Removes all build and distribution products">
826    
827      <javac srcdir="${ant.src.dir}"    </target>
828            destdir="${build.ant.dir}"  
829             source="1.4"    <target name="jsr166ydist-jar"
830      />            depends="jsr166yclean, jsr166yjar">
831    
832        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
833    
834    </target>    </target>
835    
836    
837    <target name="filter-src" depends="compile-ant-filter">    <!-- extra166y -->
838    
     <mkdir dir="${build.filter.src.dir}"/>  
839    
840      <copy todir="${build.filter.src.dir}">    <target name="extra166ycompile"
841        <fileset dir="${src.dir}">            depends="configure-compiler, jsr166yjar"
842          <include name="**/*.java"/>            description="Compiles extra166y sources">
843          <exclude name="**/Random.java"/>  
844          <exclude name="**/Unsafe.java"/>      <mkdir dir="${build.extra166y.dir}"/>
845        </fileset>  
846        <filterchain>      <javac srcdir="${topsrc.dir}"
847          <filterreader classname="jsr166.ant.filters.ReplaceFilter"             destdir="${build.extra166y.dir}"
848                        classpath="${build.ant.dir}">             debug="${build.debug}"
849            <!--             debuglevel="${build.debuglevel}"
850             # These arguments are to get rid of angle-bracketed type             deprecation="${build.deprecation}"
851             # parameters so that javadoc can run on the result. The             classpath=""
852             # following heuristic that seems to work:             source="6"
853             #             bootclasspath="${jsr166y.jar}:${bootclasspath6}"
854             # For all lines not starting with space(s)-asterisk-space(s),             includeAntRuntime="false"
855             #   replace <something> with a space, where there may be more             includeJavaRuntime="false"
856             #   than one right angle bracket at the end, and "something"             executable="${javac7}"
857             #   must not contain parens or pipes. (This may need some             fork="true">
858             #   tweaking.)  
859             -->        <include name="extra166y/**/*.java"/>
860            <param name="notmatching" value="^\s+\*\s.*$"/>        <compilerarg line="${build.args}"/>
861            <param name="pattern" value="&lt;[^|>()]+?>+"/>        <compilerarg value="-XDignore.symbol.file=true"/>
862            <param name="replacement" value=" "/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
863          </filterreader>  
864          <filterreader classname="jsr166.ant.filters.ReplaceFilter"      </javac>
                       classpath="${build.ant.dir}">  
           <!--  
            # These arguments are to uncomment lines beginning with  
            # "//@" so that javadoc can see imports that are needed  
            # to resolve links but that shouldn't be in the compiled  
            # code.  
            -->  
           <param name="matching" value="^//@.*$"/>  
           <param name="pattern" value="^//@"/>  
           <param name="replacement" value=""/>  
         </filterreader>  
       </filterchain>  
     </copy>  
865    
866    </target>    </target>
867    
868    
   <target name="compile-tests" depends="jar">  
869    
870      <mkdir dir="${build.testcases.dir}"/>    <target name="extra166yjar"
871              depends="extra166ycompile"
872              description="Builds library jar from compiled sources">
873    
874        <jar destfile="${extra166y.jar}" index="true">
875          <fileset dir="${build.extra166y.dir}"/>
876        </jar>
877    
878      </target>
879    
880    
881    
882      <target name="extra166ydocs"
883              description="Builds javadocs to build dir">
884    
885        <delete dir="${dist.extra166yjavadocs.dir}"/>
886        <mkdir dir="${dist.extra166yjavadocs.dir}"/>
887    
888        <javadoc destdir="${dist.extra166yjavadocs.dir}"
889                 packagenames="extra166y.*"
890                 link="${jdkapidocs.url}"
891                 source="6"
892                 bootclasspath="${bootclasspath6}"
893                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
894                 executable="${javadoc7}"
895                 additionalparam="-XDignore.symbol.file=true" />
896    
897      </target>
898    
899    
900      <target name="extra166ydist"
901              depends="extra166ydist-clean, extra166ydist-jar, extra166ydocs"
902              description="Puts all distributable products in single hierarchy"/>
903    
     <javac srcdir="${test.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
904    
905        <bootclasspath refid="javac.bootclasspath"/>  
906        <compilerarg line="${javac.args} ${build.warnings.option}"/>    <target name="extra166yclean"
907        <classpath refid="test.classpath"/>            description="Removes all extra166y build products">
908    
909        <delete dir="${build.extra166y.dir}"/>
910    
911      </target>
912    
913    
914    
915      <target name="extra166ydist-clean"
916              description="Removes all build and distribution products">
917    
918      </target>
919    
920      <target name="extra166ydist-jar"
921              depends="extra166yclean, extra166yjar">
922    
923        <copy file="${extra166y.jar}" todir="${dist.dir}"/>
924    
925      </target>
926    
927      <!-- jsr166e -->
928    
929      <target name="jsr166ecompile"
930              depends="configure-compiler"
931              description="Compiles jsr166e sources">
932    
933        <mkdir dir="${build.jsr166e.dir}"/>
934    
935        <javac srcdir="${topsrc.dir}"
936               destdir="${build.jsr166e.dir}"
937               debug="${build.debug}"
938               debuglevel="${build.debuglevel}"
939               deprecation="${build.deprecation}"
940               source="7"
941               classpath=""
942               includeAntRuntime="false"
943               includeJavaRuntime="false"
944               executable="${javac7}"
945               fork="true">
946    
947          <include name="jsr166e/**/*.java"/>
948          <compilerarg line="${build.args}"/>
949          <compilerarg value="-XDignore.symbol.file=true"/>
950          <compilerarg value="-Xlint:all"/>
951    
952      </javac>      </javac>
953    
954    </target>    </target>
955    
956    
   <target name="run-tests" depends="compile-tests">  
957    
958      <!-- May be overridden by user.properties -->    <target name="jsr166ejar"
959      <property name="testcase" value="*"/>            depends="jsr166ecompile"
960              description="Builds library jar from compiled sources">
961    
962      <mkdir dir="${build.reports.dir}"/>      <jar destfile="${jsr166e.jar}" index="true">
963          <fileset dir="${build.jsr166e.dir}"/>
964        </jar>
965    
966      <junit printsummary="true"    </target>
              showoutput="true"  
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.reports.dir}"  
                    fork="true">  
967    
       <jvmarg value="${test.javac.args}"/>  
968    
       <formatter type="xml"/>  
969    
970        <batchtest todir="${build.reports.dir}">    <target name="jsr166edocs"
971          <fileset dir="${test.src.dir}">            description="Builds javadocs to build dir">
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
972    
973      </junit>      <delete dir="${dist.jsr166ejavadocs.dir}"/>
974        <mkdir dir="${dist.jsr166ejavadocs.dir}"/>
975    
976        <javadoc destdir="${dist.jsr166ejavadocs.dir}"
977                 packagenames="jsr166e.*"
978                 link="${jdkapidocs.url}"
979                 source="7"
980                 sourcepath="${topsrc.dir}:${jdk7src.dir}"
981                 executable="${javadoc7}"
982                 additionalparam="-XDignore.symbol.file=true" >
983        </javadoc>
984    
985    </target>    </target>
986    
987    
988    <target name="report-tests" depends="run-tests">    <target name="jsr166edist"
989      <!-- Sets junit.report.format to frames if Xalan is present,            depends="jsr166edist-clean, jsr166edist-jar, jsr166edocs"
990           otherwise sets it to noframes. -->            description="Puts all distributable products in single hierarchy"/>
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"  
     />  
     <property name="junit.report.format" value="noframes"/>  
991    
     <junitreport todir="${build.reports.dir}">  
       <fileset dir="${build.reports.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.reports.dir}"  
       />  
     </junitreport>  
992    
993      <fail message="Test Cases Failed" if="junit.failed"/>  
994      <target name="jsr166eclean"
995              description="Removes all jsr166e build products">
996    
997        <delete dir="${build.jsr166e.dir}"/>
998    
999    </target>    </target>
1000    
1001    
1002    <target name="check-junit">    <target name="jsr166edist-clean"
1003      <!-- FIXME: this test isn't specific enough -->            description="Removes all build and distribution products">
1004      <available property="junit.available"  
                classname="junit.framework.TestCase"/>  
     <fail message="Need JUnit 3.8 to run tests" unless="junit.available"/>  
1005    </target>    </target>
1006    
1007      <target name="jsr166edist-jar"
1008              depends="jsr166eclean, jsr166ejar">
1009    
1010        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1011    
1012      </target>
1013    
1014  </project>  </project>

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.113

dl@cs.oswego.edu
ViewVC Help
Powered by ViewVC 1.1.27