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

Diff of /jsr166/build.xml

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

revision 1.72 by dl, Fri May 20 16:29:57 2005 UTC revision 1.247 by jsr166, Fri Jun 16 21:30:00 2017 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage">  <project name="jsr166" default="usage"
2      xmlns:if="ant:if" xmlns:unless="ant:unless"
3      xmlns:ivy="antlib:org.apache.ivy.ant">
4    
5    <description>    <description>
6  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 6  Line 8 
8    
9    Usage: ant [target]    Usage: ant [target]
10    
11      See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for
12      more details.
13    
14    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
15    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
16    
17      The repository contains all dependencies except for ant and the JDK
18      itself.  Because the JDK version matters and because different
19      targets require different JDKs, we assume that users have created a
20      hierarchy containing:
21      $HOME/jdk/jdk8
22      $HOME/jdk/jdk9
23      $HOME/jdk/jdk10
24      where each of the above is a JDK or a symlink to same, and
25      $HOME/jdk/src/jdk8
26      $HOME/jdk/src/jdk9
27      $HOME/jdk/src/jdk10
28      where each of the above is a complete JDK source tree
29      (e.g. mercurial forest) or a symlink to same.
30    
31      Alternatively, define ant variables thus:
32      ant -Djdk$N.home=... -Djdk$N.src.home=...
33      for $N in 8 9 10 ...
34    
35      As of 2016-03, the sources in src/main are for jdk9+ only.
36  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
37    </description>    </description>
38    
39    <target name="usage" description="Advises user to run with -projecthelp">    <!-- Run 'ant -projecthelp' (default target) -->
40      <echo>Run "ant -projecthelp" for full usage information.</echo>    <target name="usage">
41        <java classname="org.apache.tools.ant.Main">
42          <arg value="-projecthelp" />
43        </java>
44    </target>    </target>
45    
46      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
47    
48    <!-- User-specific settings -->    <!-- User-specific settings -->
49    <property file="user.properties"/>    <property file="user.properties"/>
50    
51    
52    <!-- Compilation options -->    <!-- Compilation options -->
53    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
54    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
55    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
56    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
57      <property name="build.javadoc.access" value="protected"/>
58    
59    <!-- Build locations -->    <!-- Build locations -->
60    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
61    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
62    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
63    <property name="build.j1.dir"         location="${build.dir}/j1"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
64    <property name="build.loops.dir"      location="${build.dir}/loops"/>  
65    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
66    <property name="build.ant.dir"        location="${build.dir}/ant"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
67    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
68    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
69    <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>  
70    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>    <property name="build.4jdk8.dir"             location="${build.dir}/jsr166-4jdk8"/>
71    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.4jdk8.classes.dir"     location="${build.4jdk8.dir}/classes"/>
72    <property name="build.dc-filter.dir"  location="${build.dir}/filterdocchk"/>    <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/>
73    <property name="build.jsr166x.dir"    location="${build.dir}/jsr166x"/>    <property name="build.4jdk8.docs.dir"        location="${build.4jdk8.dir}/docs"/>
74    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>  
75    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
76      <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
77      <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
78      <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
79    
80      <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
81      <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
82      <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
83      <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
84    
85      <!-- JDK locations -->
86      <property name="jdks.home"  location="${user.home}/jdk"/>
87    
88      <macrodef name="defjdklocations">
89        <attribute name="v"/>
90        <sequential>
91        <property name="jdk@{v}.home"     location="${jdks.home}/jdk@{v}"/>
92        <property name="java@{v}"         location="${jdk@{v}.home}/bin/java"/>
93        <property name="javac@{v}"        location="${jdk@{v}.home}/bin/javac"/>
94        <property name="javadoc@{v}"      location="${jdk@{v}.home}/bin/javadoc"/>
95        <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
96        <local name="have.java.base"/>
97        <available property="have.java.base"
98          file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
99        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
100          if:set="have.java.base"/>
101        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
102          unless:set="have.java.base"/>
103        <local name="modules"/>
104        <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
105        <local name="boot.jar.dir"/>
106        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
107        <path id="bootclasspath@{v}" unless:set="modules">
108          <pathelement path="${boot.jar.dir}/resources.jar"/>
109          <pathelement path="${boot.jar.dir}/rt.jar"/>
110          <pathelement path="${boot.jar.dir}/jsse.jar"/>
111          <pathelement path="${boot.jar.dir}/jce.jar"/>
112          <pathelement path="${boot.jar.dir}/charsets.jar"/>
113        </path>
114        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
115        </sequential>
116      </macrodef>
117    
118      <macrodef name="mirror-dir">
119        <attribute name="src"/>
120        <attribute name="dst"/>
121        <sequential>
122        <delete dir="@{dst}"/>
123        <mkdir dir="@{dst}"/>
124        <copy todir="@{dst}" preservelastmodified="true">
125          <fileset dir="@{src}"/>
126        </copy>
127        </sequential>
128      </macrodef>
129    
130      <defjdklocations v="6"/>
131      <defjdklocations v="7"/>
132      <defjdklocations v="8"/>
133      <defjdklocations v="9"/>
134      <defjdklocations v="10"/>
135    
136    <!-- Source locations -->    <!-- Source locations -->
137    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
138    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
   <property name="j1.src.dir"           location="${basedir}/src/javaone"/>  
139    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
140    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
141    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
142    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
143    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
144      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
145      <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
146    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
147    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
148    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
149    <property name="jsr166xsrc.dir"       location="${basedir}/src/jsr166x"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
150      <property name="4jdk8src.dir"         location="${topsrc.dir}/jdk8"/>
151    <!-- Distribution locations -->    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
152    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
153    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
154      <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
155    
156      <!-- Javadoc locations -->
157      <property name="docs.dir"          location="${build.dir}/docs"/>
158      <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
159      <property name="4jdk8docs.dir"     location="${build.4jdk8.dir}/docs"/>
160      <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
161      <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
162      <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
163      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
164    
165      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
166      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
167      <property name="dist.4jdk8docs.dir"     location="${dist.dir}/jsr166-4jdk8docs"/>
168      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
169      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
170      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
171      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
172    
173    <!-- Jar locations -->    <!-- Jar locations -->
174    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
175    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
176    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
177    <property name="concurrent.jar"       location="${lib.dir}/concurrent.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
178      <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
179    <!-- Bootclasspath argument -->    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
180    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
181      <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
182    <!-- Test classpath -->  
183    <path id="test.classpath">    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
184      <pathelement location="${build.testcases.dir}"/>    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
185      <pathelement location="${junit.jar}"/>    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
186    </path>    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
187      <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
188    <!-- ALoops classpath -->    <!-- The expected canonical location does not yet exist as of 2016-04 -->
189    <path id="loops.classpath">    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
190      <pathelement location="${build.loops.dir}"/>    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>
191    </path>    <!-- Default jdk doc location (latest stable release seems best) -->
192      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
193    <!-- J1 classpath -->  
194    <path id="j1.classpath">    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
195      <pathelement location="${build.classes.dir}"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
196      <pathelement location="${build.j1.dir}"/>    <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
197      <pathelement location="${junit.jar}"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
198      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
199      <!-- Include dl.u.c for BoundedBuffer comparison -->    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
200      <pathelement location="${concurrent.jar}"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
201    </path>  
202      <!-- Define the "jtreg" task -->
203      <!-- See the docs in "jtreg -onlineHelp" -->
204    <!-- Main targets -->    <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
205               classpath="${lib.dir}/jtreg.jar" />
206    
207      <!-- Tck options; see JSR166TestCase.java
208       To profile a single tck test class:
209       ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
210       To stress test a single tck test class:
211       ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
212       To stress test a single tck test method:
213       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
214      -->
215      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
216      <macrodef name="run-tck-tests">
217        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
218        <attribute name="target"/>
219        <attribute name="compile-target" default="@{target}"/>
220        <attribute name="workdir"/>
221        <attribute name="classes"/>
222        <!--
223            <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/>
224        -->
225            <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
226        <element name="javac-elements" optional="true"/>
227    
228        <sequential>
229    
230    <target name="compile"      <local name="modules"/>
231            depends="init, configure-compiler"      <condition property="modules">
232            description="Compiles main sources to build folder">        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
233        </condition>
234    
235      <mkdir dir="${build.classes.dir}"/>      <local name="use-doclint"/>
236        <condition property="use-doclint">
237          <not> <equals arg1="@{target}" arg2="7"/> </not>
238        </condition>
239    
240      <javac srcdir="${src.dir}"      <mkdir dir="@{workdir}/tck-classes"/>
           destdir="${build.classes.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
241    
242        <include name="**/*.java"/>      <javac srcdir="@{tck.src.dir}"
243  <!--             destdir="@{workdir}/tck-classes"
244        <exclude name="java/lang/**"/>             debug="${build.debug}"
245  -->             debuglevel="${build.debuglevel}"
246               deprecation="${build.deprecation}"
247               source="@{compile-target}"
248               target="@{compile-target}"
249               classpath="${junit.jar}"
250               includeAntRuntime="false"
251               includeJavaRuntime="false"
252               encoding="ASCII"
253               executable="${javac@{compile-target}}"
254               fork="true">
255    
256          <include name="*.java"/>
257          <compilerarg value="-XDignore.symbol.file=true"/>
258          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
259          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
260          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
261          <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
262        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
263          <javac-elements/>
264    
265      </javac>      </javac>
266    
267    </target>      <java classname="${jsr166.tckTestClass}"
268              failonerror="true"
269              jvm="${java@{target}}"
270              fork="true">
271    <target name="jar"          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272            depends="compile"          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273            description="Builds library jar from compiled sources">          <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
274            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
275            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
278            <jvmarg line="@{jvmflags}"/>
279            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
280            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
281    
282            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
283            <syspropertyset id="system-properties-used-by-tck">
284              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
285              <propertyref prefix="jsr166."/>
286              <propertyref name="test.timeout.factor"/>
287            </syspropertyset>
288    
289            <classpath>
290              <pathelement location="${junit.jar}"/>
291              <pathelement location="@{workdir}/tck-classes"/>
292            </classpath>
293        </java>
294    
295      <mkdir dir="${build.lib.dir}"/>      </sequential>
296      </macrodef>
297    
298      <jar destfile="${product.jar}">    <!-- Define jtreg test sets for different jdk versions -->
299        <fileset dir="${build.classes.dir}"/>    <fileset dir="${jtreg10.src.dir}">
300      </jar>      <patternset id="jdk10.jtreg.tests">
301          <include name="**/*.java"/>
302    </target>      </patternset>
303      </fileset>
304    
305      <fileset dir="${jtreg9.src.dir}">
306        <patternset id="jdk9.jtreg.tests">
307          <include name="**/*.java"/>
308        </patternset>
309      </fileset>
310    
311      <fileset dir="${jtreg8.src.dir}">
312        <patternset id="jdk8.jtreg.tests">
313          <include name="**/*.java"/>
314        </patternset>
315      </fileset>
316    
317    <target name="test"    <fileset dir="${jtreg7.src.dir}">
318            depends="init, configure-tests, report-tests"      <patternset id="jdk7.jtreg.tests">
319            description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />        <include name="**/*.java"/>
320        </patternset>
321      </fileset>
322    
323      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
324      <property name="jtreg.flags" value=""/>
325    
326      <macrodef name="run-jtreg-tests">
327        <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
328        <attribute name="target"/>
329        <attribute name="workdir"/>
330        <attribute name="classes"/>
331        <attribute name="jtregflags" default=""/>
332    
333        <sequential>
334    
335        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
336        <property name="jtreg.verbose" value="nopass,fail,error"/>
337    
338        <local name="modules"/>
339        <condition property="modules">
340          <available file="${jdk@{target}.home}/jmods" type="dir"/>
341        </condition>
342    
343    <target name="docs"      <delete dir="@{workdir}/JTwork"   quiet="true"/>
344            description="Builds javadocs with custom tags to build folder">      <jtreg dir="${jtreg@{target}.src.dir}"
345               jdk="${jdk@{target}.home}"
346               workDir="@{workdir}/JTwork">
347          <patternset refid="jdk@{target}.jtreg.tests"/>
348          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
349          <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
350          <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
351          <arg value="-agentvm"/>
352          <arg value="-noreport"/>
353          <arg value="-verbose:${jtreg.verbose}"/>
354          <arg value="-vmoptions:-esa -ea"/>
355          <arg value="-automatic"/>
356          <arg value="-k:!ignore"/>
357          <arg line="@{jtregflags}"/>
358          <arg line="${jtreg.flags}"/>
359        </jtreg>
360        </sequential>
361      </macrodef>
362    
363      <delete dir="${build.javadocs.dir}"/>    <!-- ALoops classpath -->
364      <mkdir dir="${build.javadocs.dir}"/>    <path id="loops.classpath">
365        <pathelement location="${build.loops.dir}"/>
366      </path>
367    
368      <javadoc destdir="${build.javadocs.dir}"    <!-- Support @jls tag, used in jdk8+ javadoc -->
369                  link="http://java.sun.com/j2se/1.5.0/docs/api"    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
370              overview="${src.dir}/intro.html"    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
             sourcepath="${src.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
     >            
371    
372        <packageset dir="${src.dir}"/>    <!-- Main targets -->
373    
374      </javadoc>    <property name="build.main.java.version" value="9"/>
375      <!-- Workaround "no nested properties in ant" -->
376      <macrodef name="define-build-main-properties">
377        <attribute name="v"/>
378        <sequential>
379          <property name="build.main.java"    value="${java@{v}}"/>
380          <property name="build.main.javac"   value="${javac@{v}}"/>
381          <property name="build.main.javadoc" value="${javadoc@{v}}"/>
382        </sequential>
383      </macrodef>
384      <define-build-main-properties v="${build.main.java.version}"/>
385    
386      <target name="dists"
387              depends="dist, 4jdk8dist"
388              description="Builds all public jars and docs"/>
389              <!--
390                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
391              -->
392    
393    </target>    <target name="compile"
394              depends="configure-compiler"
395              description="Compiles src/main sources to build dir">
396    
397        <local name="destdir"/>
398        <property name="destdir" value="${build.classes.dir}/java.base"/>
399    
400        <mkdir dir="${destdir}"/>
401    
402    <target name="doccheck"      <javac srcdir="${src.dir}"
403            depends="filter-doccheck"             destdir="${destdir}"
404            description="Reports on javadoc style errors">             debug="${build.debug}"
405               debuglevel="${build.debuglevel}"
406      <delete dir="${build.doccheck.dir}"/>             deprecation="${build.deprecation}"
407      <mkdir dir="${build.doccheck.dir}"/>             classpath=""
408               includeAntRuntime="false"
409      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"             includeJavaRuntime="false"
410           docletpath="${lib.dir}/doccheck.jar"             encoding="ASCII"
411              destdir="${build.doccheck.dir}">             executable="${build.main.javac}"
412        <packageset dir="${build.dc-filter.dir}"/>             fork="true">
     </javadoc>  
413    
414      <echo>DocCheck output is in ${build.doccheck.dir}</echo>        <include name="**/*.java"/>
415          <compilerarg value="--patch-module=java.base=${src.dir}"/>
416          <compilerarg value="-Xprefer:source"/>
417          <compilerarg value="-XDignore.symbol.file=true"/>
418          <compilerarg value="-Xlint:all"/>
419          <compilerarg line="--doclint-format html5"/>
420          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
421          <compilerarg value="-Werror"/>
422          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
423          <compilerarg line="${build.args}"/>
424    
425        </javac>
426    </target>    </target>
427    
428    
429      <target name="jar"
430              depends="compile"
431              description="Builds library jar for src/main from compiled sources">
432        <local name="subdir"/>
433        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
434        <jar destfile="${product.jar}">
435          <fileset dir="${build.classes.dir}${subdir}"/>
436          <manifest>
437            <attribute name="Built-By" value="${user.name}"/>
438            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
439          </manifest>
440        </jar>
441      </target>
442    
   <target name="checkstyle"  
           depends="filter-src"  
           description="Reports on style errors in Java source (verbose, mostly chaff)">  
   
     <taskdef resource="checkstyletask.properties"  
             classpath="${lib.dir}/checkstyle-all-3.1.jar"/>  
443    
444      <mkdir dir="${build.checkstyle.dir}"/>    <target name="docs"
445              description="Builds javadocs for src/main to dist dir">
446    
447      <checkstyle config="etc/checkstyle/sun_checks.xml"      <delete dir="${docs.dir}"/>
448         failOnViolation="false">      <mkdir dir="${docs.dir}"/>
       <formatter type="xml" toFile="${build.checkstyle.dir}/checkstyle-report.xml"/>  
       <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
     </checkstyle>  
449    
450      <style in="${build.checkstyle.dir}/checkstyle-report.xml"      <!-- the packagenames="none" hack below prevents scanning the -->
451            out="${build.checkstyle.dir}/checkstyle-report.html"      <!-- sourcepath for packages -->
         style="${stylesheet.dir}/checkstyle-frames.xsl"/>  
452    
453    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
454    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
455    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
456    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
457    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
458        <javadoc destdir="${docs.dir}"
459                 packagenames="none"
460                 link="${java9.api.url}"
461                 overview="${src.dir}/intro.html"
462                 access="${build.javadoc.access}"
463                 sourcepath="${src.dir}"
464                 classpath=""
465                 source="9"
466                 executable="${build.main.javadoc}">
467          <fileset dir="${src.dir}" defaultexcludes="yes">
468            <include name="**/*.java"/>
469          </fileset>
470          <arg line="-Xdocrootparent ${java9.docroot.url}"/>
471          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
472          <arg value="-XDignore.symbol.file=true"/>
473          <arg value="-html5"/>
474          <arg value="--patch-module=java.base=${src.dir}"/>
475          <arg value="-tag"/>
476          <arg value="${javadoc.jls.option}"/>
477    <!-- @apiNote currently unused -->
478    <!--       <arg value="-tag"/> -->
479    <!--       <arg value="apiNote:a:API Note:"/> -->
480          <arg value="-tag"/>
481          <arg value="implSpec:a:Implementation Requirements:"/>
482          <arg value="-tag"/>
483          <arg value="implNote:a:Implementation Note:"/>
484    <!-- tags added in jdk9: currently unused -->
485    <!--       <arg value="-tag"/> -->
486    <!--       <arg value="revised:X"/> -->
487    <!--       <arg value="-tag"/> -->
488    <!--       <arg value="spec:X"/> -->
489        </javadoc>
490    </target>    </target>
491    
492    
   
493    <target name="dist"    <target name="dist"
494            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
495            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
496    
497    
   
498    <target name="release"    <target name="release"
499            depends="dist"            depends="dist"
500            description="Puts entire CVS tree, plus distribution productions, in a jar">            description="Puts entire CVS tree, plus distribution productions, in a jar">
# Line 224  Line 509 
509        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
510        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
511        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
512          <manifest>
513            <attribute name="Built-By" value="${user.name}"/>
514            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
515          </manifest>
516      </jar>      </jar>
   
517    </target>    </target>
518    
519    
   
520    <target name="clean"    <target name="clean"
521            description="Removes all build products">            description="Removes all build products">
   
522      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
   
523    </target>    </target>
524    
525    
   
526    <target name="dist-clean"    <target name="dist-clean"
527            description="Removes all build and distribution products">            description="Removes all build and distribution products">
528        <delete dir="${build.dir}"/>
529      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
   </target>  
   
   
   
   <target name="dist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
   
     <javadoc destdir="${dist.javadocs.dir}"  
               link="http://java.sun.com/j2se/1.5.0/docs/api"  
             overview="${src.dir}/intro.html"  
   
             sourcepath="${src.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
      >  
       <packageset dir="${src.dir}" defaultexcludes="yes">  
       <include name="java/util/concurrent"/>  
       <include name="java/util/concurrent/atomic"/>  
       <include name="java/util/concurrent/locks"/>  
       </packageset>  
       <fileset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="main/java/util/*.java"/>  
 <!--      <include name="jsr166x/*.java"/> -->  
       </fileset>  
     </javadoc>  
   
   </target>  
   
   
   
   <!-- Internal targets -->  
   
   
   <target name="init">  
   
     <!-- Version is kept in a separate file -->  
     <loadfile property="version" srcFile="version.properties"/>  
     <echo>Building JSR-166 version ${version}</echo>  
     <echo>java.home is ${java.home}</echo>  
   
530    </target>    </target>
531    
532    
533    <target name="dist-jar"    <target name="dist-jar"
534            depends="clean, jar">            depends="clean, jar">
   
535      <copy file="${product.jar}" todir="${dist.dir}"/>      <copy file="${product.jar}" todir="${dist.dir}"/>
   
536    </target>    </target>
537    
538      <target name="dist-docs"
539    <target name="compile-ant-filter"            depends="clean, docs">
540            depends="init">      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
   
     <mkdir dir="${build.ant.dir}"/>  
   
     <javac srcdir="${ant.src.dir}"  
           destdir="${build.ant.dir}"  
            source="1.4"/>  
   
541    </target>    </target>
542    
543      <target name="tck"
544    <target name="filter-src"            depends="jar"
545            depends="compile-ant-filter">            description="Runs tck tests for src/main directly">
546    
547      <mkdir dir="${build.filter.src.dir}"/>      <run-tck-tests
548          target="${build.main.java.version}"
549      <copy todir="${build.filter.src.dir}">        workdir="${build.dir}"
550        <fileset dir="${src.dir}">        classes="${product.jar}">
551          <include name="**/*.html"/>        <javac-elements>
552        </fileset>          <compilerarg value="-Werror"/>
553      </copy>        </javac-elements>
554        </run-tck-tests>
555      <copy todir="${build.filter.src.dir}">    </target>
556        <fileset dir="${src.dir}">  
557          <exclude name="**/*.html"/>    <target name="tck-parallelism-1"
558          <!-- Files excluded from dist-docs -->            description="Runs tck with common pool parallelism 1">
559          <exclude name="java/util/Random.*"/>      <antcall target="tck">
560          <exclude name="sun/misc/Unsafe.*"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
561        </fileset>      </antcall>
562        <!--    </target>
563        <filterchain>  
564        -->    <target name="tck-parallelism-0"
565              description="Runs tck with common pool parallelism 0">
566          <!--      <antcall target="tck">
567           # This filter gets rid of angle-bracketed type parameters        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
568           # so that javadoc can run on the result. The following      </antcall>
569           # heuristic seems to work:    </target>
570           #  
571           # For all lines not starting with space(s)-asterisk-space(s),    <target name="tck-security-manager"
572           #   replace <something> with a space, where there may be more            description="Runs tck with a security manager">
573           #   than one right angle bracket at the end, and "something"      <antcall target="tck">
574           #   must not contain parens or pipes. (This may need some        <param name="jsr166.useSecurityManager" value="true"/>
575           #   tweaking.)      </antcall>
576           -->    </target>
577    
578          <!--    <target name="jtreg"
579          <filterreader classname="jsr166.ant.filters.ReplaceFilter"            depends="jar"
580                        classpath="${build.ant.dir}">            description="Runs jtreg tests for src/main using the jtreg ant task">
581            <param name="notmatching" value="^\s+\*\s.*$"/>      <run-jtreg-tests
582            <param name="pattern"     value="&lt;[^|>()]+?>+"/>         target="${build.main.java.version}"
583            <param name="replacement" value=" "/>         workdir="${build.dir}"
584          </filterreader>         classes="${product.jar}"/>
         -->  
   
       <!--  
       </filterchain>  
       -->  
     </copy>  
   
585    </target>    </target>
586    
587      <target name="test"
588              depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
589              description="Runs tck and jtreg tests for src/main"/>
590    
591    <target name="filter-doccheck"  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
           depends="filter-src">  
592    
593      <mkdir dir="${build.dc-filter.dir}"/>  <!--     <antcall target="jtreg"> -->
594    <!--       <param name="build.main.java.version" value="8"/> -->
595    <!--       <param name="build.main.javac" value="${javac8}"/> -->
596    <!--     </antcall> -->
597    
598    <!--   </target> -->
599    
600    <!--   <target name="test89" -->
601    <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
602    
603    <!--     <antcall target="clean"/> -->
604    <!--     <antcall target="test"> -->
605    <!--       <param name="build.main.java.version" value="8"/> -->
606    <!--       <param name="build.main.javac" value="${javac8}"/> -->
607    <!--     </antcall> -->
608    
609    <!--     <antcall target="clean"/> -->
610    <!--     <antcall target="test"> -->
611    <!--       <param name="build.main.java.version" value="9"/> -->
612    <!--       <param name="build.main.javac" value="${javac9}"/> -->
613    <!--     </antcall> -->
614    
615      <copy todir="${build.dc-filter.dir}">  <!--   </target> -->
       <fileset dir="${build.filter.src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
616    
     <property name="generic.declarations"  
              value="/** Fake type parameter. */ public interface E {} /** Fake type parameter. */ public interface T {} /** Fake type parameter. */ public interface K {} /** Fake type parameter. */ public interface V {}"  
     />  
   
     <copy todir="${build.dc-filter.dir}">  
       <fileset dir="${build.filter.src.dir}">  
         <exclude name="**/*.html"/>  
       </fileset>  
       <filterchain>  
         <!--  
          # These two filters try to make the source look like  
          # something that doccheck can process. The first removes  
          # -source 1.4 assertions and the second adds in a bunch  
          # of single letter public nested marker interfaces so that  
          # the generic type parameters are recognized.  
          -->  
   
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^\s*assert[\s ].*$"/>  
           <param name="pattern"     value="assert"/>  
           <param name="replacement" value="//assert"/>  
         </filterreader>  
   
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^([^*]*(class|interface|implements) .*|)\{.*$"/>  
           <param name="pattern"     value="$"/>  
           <param name="replacement" value=" ${generic.declarations}"/>  
         </filterreader>  
617    
       </filterchain>  
     </copy>  
618    
619    </target>    <target name="configure-compiler">
620        <fail message="ant version too old">
621          <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
622        </fail>
623    
624        <property name="unchecked.option" value="-Xlint:unchecked"/>
625    
626    <target name="compile-tests"      <condition property="warnunchecked.arg" value="${unchecked.option}">
627            depends="jar">        <istrue value="${build.warnunchecked}"/>
628        </condition>
629    
630      <mkdir dir="${build.testcases.dir}"/>      <property name="warnunchecked.arg" value=""/>
631    
     <javac srcdir="${tck.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
632    
633        <compilerarg value="${bootclasspath.args}"/>      <!-- Common options in javac invocations -->
634        <compilerarg line="${build.args}"/>      <property name="build.args" value="${warnunchecked.arg}"/>
635    
636        <classpath refid="test.classpath"/>    </target>
637    
     </javac>  
638    
     <javac srcdir="${test.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
639    
640        <include name="jsr166/test/**"/>    <!-- Various demos and test programs -->
641    
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
642    
643        <classpath refid="test.classpath"/>    <!-- description="Benchmark from Doug Lea's AQS paper" -->
644      <target name="loops" depends="configure-compiler">
645    
646      </javac>      <mkdir dir="${build.loops.dir}"/>
647    
648  <!--      <javac srcdir="${loops.src.dir}"
649      <javac srcdir="${jtreg.src.dir}"            destdir="${build.loops.dir}"
           destdir="${build.testcases.dir}"  
650              debug="${build.debug}"              debug="${build.debug}"
651         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
652        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
653             source="${build.sourcelevel}"             source="${build.sourcelevel}"
654               target="${build.sourcelevel}"
655             encoding="ASCII"
656               fork="true">               fork="true">
657    
       <compilerarg value="${bootclasspath.args}"/>  
658        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
659          <classpath refid="loops.classpath"/>
660        <classpath refid="test.classpath"/>        <compilerarg value="-XDignore.symbol.file=true"/>
661    
662      </javac>      </javac>
 -->  
663    
664        <java classname="ALoops" fork="true">
665          <classpath refid="loops.classpath"/>
666        </java>
667    </target>    </target>
668    
669    
670    <target name="run-tests"    <target name="compile-test-loops" depends="jar"
671            depends="compile-tests">            description="Compiles all the perf tests in src/test/loops">
   
     <!-- May be overridden by user.properties -->  
     <property name="testcase" value="*"/>  
   
     <mkdir dir="${build.reports.dir}"/>  
   
     <junit printsummary="true"  
              showoutput="true"  
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.reports.dir}"  
                    fork="true">  
   
       <jvmarg value="${bootclasspath.args}"/>  
       <jvmarg value="-server"/>  
       <jvmarg value="-showversion"/>  
   
       <classpath refid="test.classpath"/>  
   
       <formatter type="xml"/>  
   
       <batchtest todir="${build.reports.dir}" unless="no.test.tck">  
         <fileset dir="${tck.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
   
       <batchtest todir="${build.reports.dir}" if="do.test.old">  
         <fileset dir="${test.src.dir}">  
           <include name="jsr166/test/**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
   
 <!--  
       <batchtest todir="${build.reports.dir}" if="do.test.jtreg">  
         <fileset dir="${jtreg.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
 -->  
672    
673      </junit>      <mkdir dir="${build.dir}/test/loops"/>
674    
675        <javac srcdir="${basedir}/src/test/loops"
676               destdir="${build.dir}/test/loops"
677               debug="${build.debug}"
678               debuglevel="${build.debuglevel}"
679               deprecation="${build.deprecation}"
680               includeAntRuntime="false"
681               includeJavaRuntime="false"
682               encoding="ASCII"
683               executable="${build.main.javac}"
684               fork="true">
685    
686          <include name="*.java"/>
687          <compilerarg value="-XDignore.symbol.file=true"/>
688          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
689          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
690          <compilerarg line="${build.args}"/>
691        </javac>
692    </target>    </target>
693    
694    
695    <target name="report-tests"    <!-- jsr166 4jdk8 -->
           depends="run-tests">  
   
     <!-- Sets junit.report.format to frames if redirection is present,  
          otherwise sets it to noframes. -->  
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"  
     />  
     <property name="junit.report.format" value="noframes"/>  
   
     <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>  
   
     <fail message="Test Cases Failed" if="junit.failed"/>  
696    
697      <target name="4jdk8compile"
698              depends="configure-compiler"
699              description="Compiles src/jdk8 sources, targeting jdk8">
700    
701        <mkdir dir="${build.4jdk8.classes.dir}"/>
702    
703        <javac srcdir="${4jdk8src.dir}"
704               destdir="${build.4jdk8.classes.dir}"
705               debug="${build.debug}"
706               debuglevel="${build.debuglevel}"
707               deprecation="${build.deprecation}"
708               source="8"
709               target="8"
710               classpath=""
711               bootclasspath="${bootclasspath8}"
712               includeAntRuntime="false"
713               includeJavaRuntime="false"
714               encoding="ASCII"
715               executable="${javac8}"
716               fork="true">
717          <include name="**/*.java"/>
718          <compilerarg value="-Xprefer:source"/>
719          <compilerarg value="-XDignore.symbol.file=true"/>
720          <compilerarg value="-Xlint:all"/>
721          <compilerarg value="-Werror"/>
722          <compilerarg line="${build.args}"/>
723        </javac>
724    </target>    </target>
725    
726      <target name="4jdk8doclint"
727    <target name="configure-compiler">            depends="configure-compiler"
728              description="Finds doclint warnings">
729      <property name="unchecked.option" value="-Xlint:unchecked"/>  
730        <mkdir dir="${build.4jdk8.classes.dir}"/>
731      <condition property="warnunchecked.arg" value="${unchecked.option}">  
732        <istrue value="${build.warnunchecked}"/>      <javac srcdir="${4jdk8src.dir}"
733      </condition>             destdir="${build.4jdk8.classes.dir}"
734               debug="${build.debug}"
735      <property name="warnunchecked.arg" value=""/>             debuglevel="${build.debuglevel}"
736               deprecation="${build.deprecation}"
737               source="8"
738      <!-- Common options in javac invocations -->             target="8"
739      <property name="build.args" value="${warnunchecked.arg}"/>             classpath=""
740               bootclasspath="${bootclasspath8}"
741               includeAntRuntime="false"
742               includeJavaRuntime="false"
743               encoding="ASCII"
744               executable="${javac8}"
745               fork="true">
746          <include name="**/*.java"/>
747          <compilerarg value="-Xprefer:source"/>
748          <compilerarg value="-XDignore.symbol.file=true"/>
749          <compilerarg value="-Xlint:all"/>
750          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
751          <compilerarg line="${build.args}"/>
752        </javac>
753    </target>    </target>
754    
755    
756    <target name="configure-tests"    <target name="4jdk8jar"
757         depends="configure-compiler">            depends="4jdk8compile"
758              description="Builds library jar from compiled sources">
     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->  
     <available property="junit.available"  
                classname="junit.framework.Protectable"/>  
   
     <!-- Xalan -->  
     <available property="xalan.available"  
                classname="org.apache.xalan.Version"/>  
   
   
     <!-- Ant 1.6beta and later don't need or want this check -->  
     <!--  
     <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"  
           unless="junit.available"/>  
   
     <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"  
           unless="xalan.available"/>  
     -->  
759    
760        <jar destfile="${4jdk8product.jar}">
761          <fileset dir="${build.4jdk8.classes.dir}"/>
762          <manifest>
763            <attribute name="Built-By" value="${user.name}"/>
764            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
765          </manifest>
766        </jar>
767    </target>    </target>
768    
769    
770      <target name="4jdk8-tck"
771    <!-- Anthill targets -->            depends="4jdk8jar"
772              description="Runs tck tests for jsr166-4jdk8 directly">
773    <target name="anthill-build">  
774        <run-tck-tests
775      <!-- Override this in user.properties -->        target="8"
776      <property name="tiger.home" location="e:/j2sdk1.5.0"/>        workdir="${build.4jdk8.dir}"
777          classes="${4jdk8product.jar}">
778      <exec resultproperty="result.property" dir="${basedir}" executable="${tiger.home}/bin/java">        <javac-elements>
779        <arg value="-Xmx256000000"/>          <!-- JDK9+ test classes -->
780        <!-- classpath of new JVM -->          <exclude name="*9Test.java"/>
781        <arg value="-classpath"/> <arg path="${java.class.path}"/>          <exclude name="*10Test.java"/>
782        <!-- location of Ant home directory -->          <compilerarg value="-Werror"/>
783        <arg value="-Dant.home=${ant.home}"/>        </javac-elements>
784        <!-- the Ant main class -->      </run-tck-tests>
       <arg value="org.apache.tools.ant.Main"/>  
       <!-- The build file -->  
       <arg value="-buildfile"/>  <arg value="build.xml"/>  
       <!-- the target to build on the new Ant instance -->  
       <arg value="-DJAVA_HOME=${tiger.home}"/>  
       <arg value="do-anthill-build"/>  
     </exec>  
785    </target>    </target>
786    
   <target name="do-anthill-build"  
           depends="jar, test, docs, dist-docs"/>  
   
   <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>  
787    
788      <target name="4jdk8-jtreg"
789              depends="4jdk8jar"
790              description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
791        <run-jtreg-tests
792           target="8"
793           workdir="${build.4jdk8.dir}"
794           classes="${4jdk8product.jar}"/>
795    </target>    </target>
796    
797    
798      <target name="4jdk8-test"
799    <!-- Various demos and test programs -->            depends="4jdk8-tck, 4jdk8-jtreg"
800              description="Runs tck and jtreg tests for jsr166-4jdk8"/>
801    
802    
803      <target name="4jdk8docs"
804              description="Builds javadocs for src/jdk8 to dist dir">
805    
806        <delete dir="${4jdk8docs.dir}"/>
807        <mkdir dir="${4jdk8docs.dir}"/>
808    
809        <javadoc destdir="${4jdk8docs.dir}"
810                 packagenames="none"
811                 link="${java8.api.url}"
812                 overview="${4jdk8src.dir}/intro.html"
813                 access="${build.javadoc.access}"
814                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
815                 classpath=""
816                 source="8"
817                 executable="${javadoc8}"
818                 failonerror = "true">
819          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
820            <include name="**/*.java"/>
821          </fileset>
822          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
823          <arg value="-XDignore.symbol.file=true"/>
824          <arg value="-tag"/>
825          <arg value="${javadoc.jls.option}"/>
826    <!-- @apiNote currently unused -->
827    <!--       <arg value="-tag"/> -->
828    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
829          <arg value="-tag"/>
830          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
831          <arg value="-tag"/>
832          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
833        </javadoc>
834      </target>
835    
836    
837    <target name="sample" depends="init, configure-compiler"    <target name="4jdk8dist"
838            description="Standalone demo program">            depends="4jdk8dist-jar, 4jdk8dist-docs"
839              description="Puts all distributable products in single hierarchy"/>
840    
     <mkdir dir="${build.testcases.dir}"/>  
841    
842      <javac srcdir="${test.src.dir}"    <target name="4jdk8clean"
843            destdir="${build.testcases.dir}"            description="Removes all 4jdk8 build products">
844              debug="${build.debug}"      <delete dir="${build.4jdk8.dir}"/>
845         debuglevel="${build.debuglevel}"    </target>
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
846    
       <include name="jsr166/test/Sample.java"/>  
847    
848      </javac>    <target name="4jdk8dist-jar"
849              depends="4jdk8clean, 4jdk8jar">
850      <copy todir="${build.testcases.dir}">      <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
851        <fileset dir="${test.src.dir}">    </target>
         <include name="**/*.properties"/>  
       </fileset>  
     </copy>  
852    
853    
854      <java classname="jsr166.test.Sample" fork="true">    <target name="4jdk8dist-docs"
855        <classpath refid="test.classpath"/>            depends="4jdk8clean, 4jdk8docs">
856        <!-- <jvmarg value="-ea"/> -->      <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
       <!-- <jvmarg value="-server"/> -->  
       <!-- <arg value="1000"/> -->  
     </java>  
857    </target>    </target>
858    
859    
860    <target name="loops" depends="init, configure-compiler"    <!-- jsr166 4jdk7 (no longer maintained) -->
           description="Benchmark from Doug Lea's AQS paper">  
861    
862      <mkdir dir="${build.loops.dir}"/>    <target name="4jdk7compile" depends="configure-compiler">
863        <mkdir dir="${build.4jdk7.classes.dir}"/>
864    
865      <javac srcdir="${loops.src.dir}"      <javac srcdir="${4jdk7src.dir}"
866            destdir="${build.loops.dir}"             destdir="${build.4jdk7.classes.dir}"
867              debug="${build.debug}"             debug="${build.debug}"
868         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
869        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
870             source="${build.sourcelevel}"             source="6"
871               fork="true">             target="6"
872               classpath=""
873               bootclasspath="${bootclasspath6}"
874               includeAntRuntime="false"
875               includeJavaRuntime="false"
876               encoding="ASCII"
877               executable="${javac7}"
878               fork="true">
879    
880          <include name="**/*.java"/>
881          <compilerarg value="-Xprefer:source"/>
882          <compilerarg value="-XDignore.symbol.file=true"/>
883          <compilerarg value="-Xlint:all"/>
884          <compilerarg value="-Werror"/>
885        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="loops.classpath"/>  
   
886      </javac>      </javac>
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
887    </target>    </target>
888    
889      <target name="4jdk7doclint" depends="configure-compiler">
890        <mkdir dir="${build.4jdk7.classes.dir}"/>
891    
892    <target name="compile-j1" depends="init, configure-compiler, compile">      <javac srcdir="${4jdk7src.dir}"
893               destdir="${build.4jdk7.classes.dir}"
894      <mkdir dir="${build.j1.dir}"/>             debug="${build.debug}"
895               debuglevel="${build.debuglevel}"
896      <javac srcdir="${j1.src.dir}"             deprecation="${build.deprecation}"
897            destdir="${build.j1.dir}"             source="6"
898              debug="${build.debug}"             target="6"
899         debuglevel="${build.debuglevel}"             classpath=""
900        deprecation="${build.deprecation}"             bootclasspath="${bootclasspath6}"
901             source="${build.sourcelevel}" >             includeAntRuntime="false"
902               includeJavaRuntime="false"
903               encoding="ASCII"
904               executable="${javac8}"
905               fork="true">
906    
907        <include name="**/*.java"/>        <include name="**/*.java"/>
908        <exclude name="**/dijkstra/**"/>        <compilerarg value="-Xprefer:source"/>
909          <compilerarg value="-XDignore.symbol.file=true"/>
910          <compilerarg value="-Xlint:all"/>
911          <compilerarg value="-Xdoclint:all/protected"/>
912        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="j1.classpath"/>  
   
913      </javac>      </javac>
   
914    </target>    </target>
915    
916      <target name="4jdk7jar" depends="4jdk7compile">
917    <target name="sw" depends="compile-j1"      <jar destfile="${4jdk7product.jar}">
918            description="Runs the SwingWorker demo">        <fileset dir="${build.4jdk7.classes.dir}"/>
919          <manifest>
920      <!--          <attribute name="Built-By" value="${user.name}"/>
921      <java classname="jsr166.swing.SwingWorkerDemo" fork="true">          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
922        <classpath refid="j1.classpath"/>        </manifest>
923      </java>      </jar>
     -->  
   
     <copy todir="${build.j1.dir}" file="${j1.src.dir}/jsr166/swing/SwingWorker.html"/>  
   
     <exec dir="${build.j1.dir}" executable="appletviewer.exe">  
       <arg value="${build.j1.dir}/SwingWorker.html"/>  
     </exec>  
   
924    </target>    </target>
925    
926    <target name="j1" depends="compile-j1"    <target name="4jdk7-tck" depends="4jdk7jar">
927            description="Runs a standalone JavaOne program">      <run-tck-tests
928          target="7"
929      <java classname="${j1.test}" fork="true">        workdir="${build.4jdk7.dir}"
930        <classpath refid="j1.classpath"/>        classes="${4jdk7product.jar}">
931        <jvmarg value="-client"/>        <javac-elements>
932            <!-- JDK8+ test classes -->
933        <!-- TestPseudoRandom args -->          <exclude name="*8Test.java"/>
934        <arg value="2"/>          <exclude name="*9Test.java"/>
935        <arg value="25"/>          <exclude name="*10Test.java"/>
936        <arg value="100000"/>          <exclude name="DoubleAccumulatorTest.java"/>
937            <exclude name="DoubleAdderTest.java"/>
938        <!-- WebCrawler args -->          <exclude name="LongAccumulatorTest.java"/>
939        <!--          <exclude name="LongAdderTest.java"/>
940        <arg value="jsr166.webcrawler.WebCrawler3"/>          <exclude name="CompletableFutureTest.java"/>
941        <arg value="http://www.priorartisans.com"/>          <exclude name="SplittableRandomTest.java"/>
942        <arg value="25"/>          <exclude name="StampedLockTest.java"/>
943        -->          <exclude name="SubmissionPublisherTest.java"/>
944            <compilerarg value="-Werror"/>
945      </java>        </javac-elements>
946        </run-tck-tests>
947    </target>    </target>
948    
949      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
950    <target name="test-j1" depends="compile-j1"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           description="Runs testcases from the JavaOne source directories">  
951    
952      <junit printsummary="true"      <junit printsummary="true"
953               showoutput="true"             showoutput="true"
954            errorProperty="junit.failed"             errorProperty="junit.failed"
955          failureProperty="junit.failed"             failureProperty="junit.failed"
956                      dir="${build.j1.dir}"             includeantruntime="true"
957                     fork="true">             jvm="${java7}"
958               fork="true">
       <!-- <jvmarg value="-server"/> -->  
       <classpath refid="j1.classpath"/>  
       <formatter type="xml"/>  
   
       <batchtest todir="${build.j1.dir}">  
         <fileset dir="${j1.src.dir}">  
           <include name="**/*Test.java"/>  
         </fileset>  
       </batchtest>  
959    
960      </junit>        <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
961          <jvmarg value="-server"/>
962    
963      <available property="junit.report.format"        <classpath>
964                    value="frames"          <pathelement location="${junit.jar}"/>
965                classname="org.apache.xalan.lib.Redirect"/>          <pathelement location="${build.4jdk7.tck.classes.dir}"/>
966      <property name="junit.report.format" value="noframes"/>        </classpath>
   
     <junitreport todir="${build.j1.dir}">  
       <fileset dir="${build.j1.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.j1.dir}"  
       />  
     </junitreport>  
967    
968      <fail message="Test Cases Failed" if="junit.failed"/>        <formatter type="brief"/>
969    
970          <test name="${jsr166.tckTestClass}" haltonfailure="no">
971          </test>
972        </junit>
973    </target>    </target>
974    
975      <target name="4jdk7-jtreg" depends="4jdk7jar">
976        <run-jtreg-tests
977           target="7"
978           workdir="${build.4jdk7.dir}"
979           classes="${4jdk7product.jar}"/>
980      </target>
981    
982      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
983    
984      <target name="4jdk7docs">
985        <delete dir="${4jdk7docs.dir}"/>
986        <mkdir dir="${4jdk7docs.dir}"/>
987    
988        <javadoc destdir="${4jdk7docs.dir}"
989                 packagenames="none"
990                 link="${java7.api.url}"
991                 overview="${4jdk7src.dir}/intro.html"
992                 access="${build.javadoc.access}"
993                 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
994                 classpath=""
995                 executable="${javadoc7}"
996                 failonerror = "true">
997          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
998            <include name="**/*.java"/>
999          </fileset>
1000          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1001          <arg value="-XDignore.symbol.file=true"/>
1002        </javadoc>
1003      </target>
1004    
1005      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1006    
1007    <!-- C++ and JNI definitions and demos -->    <target name="4jdk7clean">
1008        <delete dir="${build.4jdk7.dir}"/>
1009      </target>
1010    
1011    <target name="configure-cpp">    <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
1012        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1013      </target>
1014    
1015      <!-- Define tasks and types -->    <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
1016        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1017      </target>
1018    
     <path id="cpptasks.path">  
       <pathelement location="${lib.dir}/cpptasks.jar"/>  
     </path>  
     <taskdef resource="cpptasks.tasks" classpathref="cpptasks.path"/>  
     <typedef resource="cpptasks.types" classpathref="cpptasks.path"/>  
1019    
1020      <!-- Set platform property for JNI includes -->    <!-- jsr166x (no longer maintained) -->
1021    
1022      <condition property="platform" value="linux">    <target name="jsr166xcompile" depends="configure-compiler">
1023        <os name="Linux"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
     </condition>  
     <condition property="platform" value="win32">  
       <os family="windows"/>  
     </condition>  
     <condition property="platform" value="solaris">  
       <os name="SunOS"/>  
     </condition>  
1024    
1025        <javac srcdir="${topsrc.dir}"
1026               destdir="${build.jsr166x.classes.dir}"
1027               debug="${build.debug}"
1028               debuglevel="${build.debuglevel}"
1029               deprecation="${build.deprecation}"
1030               classpath=""
1031               bootclasspath="${bootclasspath6}"
1032               source="5"
1033               target="5"
1034               includeAntRuntime="false"
1035               includeJavaRuntime="false"
1036               encoding="ASCII"
1037               executable="${javac7}"
1038               fork="true">
1039          <include name="jsr166x/**/*.java"/>
1040          <compilerarg value="-XDignore.symbol.file=true"/>
1041          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1042          <compilerarg value="-Werror"/>
1043          <compilerarg line="${build.args}"/>
1044        </javac>
1045    </target>    </target>
1046    
1047      <target name="jsr166xjar" depends="jsr166xcompile">
1048        <jar destfile="${jsr166x.jar}">
1049          <fileset dir="${build.jsr166x.classes.dir}"/>
1050          <manifest>
1051            <attribute name="Built-By" value="${user.name}"/>
1052            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1053          </manifest>
1054        </jar>
1055      </target>
1056    
1057    <target name="cppdemo" depends="configure-cpp">    <target name="jsr166xdocs">
1058        <delete dir="${jsr166xdocs.dir}"/>
1059      <mkdir dir="${build.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1060    
1061      <cc multithreaded="true"      <javadoc destdir="${jsr166xdocs.dir}"
1062                   name="g++"               packagenames="jsr166x.*"
1063                 objdir="${build.dir}"               link="${java.api.url}"
1064                outfile="${build.dir}/CppDemo">               access="${build.javadoc.access}"
1065        <fileset dir="${test.src.dir}" includes="CppDemo.cpp"/>               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1066        <libset libs="stdc++"/>               bootclasspath="${bootclasspath6}"
1067      </cc>               source="5"
1068                 executable="${javadoc7}"
1069                 failonerror = "true">
1070          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1071          <arg value="-XDignore.symbol.file=true"/>
1072        </javadoc>
1073      </target>
1074    
1075      <exec executable="${build.dir}/CppDemo">    <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
       <arg line="count in word frequency of word in command line count"/>  
     </exec>  
1076    
1077      <target name="jsr166xclean">
1078        <delete dir="${build.jsr166x.dir}"/>
1079    </target>    </target>
1080    
1081      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
1082        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1083      </target>
1084    
1085    <target name="jnidemo" depends="init, configure-compiler, configure-cpp">    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
1086        <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1087      </target>
1088    
     <mkdir dir="${build.testcases.dir}"/>  
1089    
1090      <javac srcdir="${test.src.dir}"    <!-- jsr166y (no longer maintained) -->
1091            destdir="${build.testcases.dir}"  
1092              debug="${build.debug}"    <target name="jsr166ycompile" depends="configure-compiler">
1093         debuglevel="${build.debuglevel}"      <mkdir dir="${build.jsr166y.classes.dir}"/>
1094        deprecation="${build.deprecation}"  
1095             source="${build.sourcelevel}"      <javac srcdir="${topsrc.dir}"
1096               fork="true">             destdir="${build.jsr166y.classes.dir}"
1097        <compilerarg value="${bootclasspath.args}"/>             debug="${build.debug}"
1098               debuglevel="${build.debuglevel}"
1099               deprecation="${build.deprecation}"
1100               source="6"
1101               target="6"
1102               classpath=""
1103               bootclasspath="${bootclasspath6}"
1104               includeAntRuntime="false"
1105               includeJavaRuntime="false"
1106               encoding="ASCII"
1107               executable="${javac7}"
1108               fork="true">
1109    
1110          <include name="jsr166y/**/*.java"/>
1111          <compilerarg value="-XDignore.symbol.file=true"/>
1112          <compilerarg value="-Xlint:all"/>
1113          <compilerarg value="-Werror"/>
1114        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="test.classpath"/>  
       <include name="JniDemo.java"/>  
1115      </javac>      </javac>
   
     <javah destdir="${build.testcases.dir}"  
       classpathref="test.classpath">  
       <class name="JniDemo"/>  
     </javah>  
   
     <cc multithreaded="true"  
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/JniDemo"  
               outtype="shared">  
   
       <compiler>  
         <defineset>  
           <define name="__int64" value="long long"/>  
         </defineset>  
         <includepath location="${java.home}/../include"/>  
         <includepath location="${java.home}/../include/${platform}"/>  
         <compilerarg value="-mno-cygwin"/>  
       </compiler>  
   
       <linker>  
         <linkerarg value="--add-stdcall-alias"/>  
       </linker>  
   
       <includepath location="${build.testcases.dir}"/>  
   
       <fileset dir="${test.src.dir}" includes="JniDemo.cpp"/>  
   
       <libset libs="stdc++"/>  
   
     </cc>  
   
     <!-- Necessary if windows, harmless if not -->  
     <copy file="${build.dir}/libJniDemo.so" tofile="${build.dir}/JniDemo.dll"/>  
   
     <java classname="JniDemo" fork="true">  
       <!-- Watch out: path separator hardwired to semicolon here! -->  
       <sysproperty key="java.library.path" path="${java.library.path};${build.dir}"/>  
       <classpath refid="test.classpath"/>  
       <arg line="count in word frequency of word in command line count"/>  
     </java>  
   
1116    </target>    </target>
1117    
1118      <target name="jsr166yjar" depends="jsr166ycompile">
1119        <jar destfile="${jsr166y.jar}" index="true">
1120          <fileset dir="${build.jsr166y.classes.dir}"/>
1121          <manifest>
1122            <attribute name="Built-By" value="${user.name}"/>
1123            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1124          </manifest>
1125        </jar>
1126      </target>
1127    
1128      <target name="jsr166ydocs">
1129        <delete dir="${jsr166ydocs.dir}"/>
1130        <mkdir dir="${jsr166ydocs.dir}"/>
1131    
1132        <javadoc destdir="${jsr166ydocs.dir}"
1133                 packagenames="jsr166y.*"
1134                 link="${java.api.url}"
1135                 access="${build.javadoc.access}"
1136                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1137                 bootclasspath="${bootclasspath6}"
1138                 source="6"
1139                 executable="${javadoc7}"
1140                 failonerror = "true">
1141          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1142          <arg value="-XDignore.symbol.file=true"/>
1143        </javadoc>
1144      </target>
1145    
1146    <!-- Backward compatibility, work in progress (some files not checked in) -->    <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
   
   
   
   <property name="pretiger.src.dir"     location="${build.dir}/pretiger/src"/>  
   <property name="build.pretiger.dir"   location="${build.dir}/pretiger/classes"/>  
   <property name="pretiger.jar"         location="${build.lib.dir}/jsr166-pretiger.jar"/>  
   <property name="pretiger.sourcelevel" value="1.4"/>  
   
   <target name="defang"  
        depends="init"  
    description="Generates pre-Tiger compatible source">  
1147    
1148      <delete dir="${pretiger.src.dir}"/>    <target name="jsr166yclean">
1149      <mkdir dir="${pretiger.src.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
1150      </target>
1151    
1152      <exec executable="perl">    <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
1153        <arg file="etc/defang.pl"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1154        <!-- <arg value="-v"/> -->    </target>
       <arg value="-s"/> <arg file="${src.dir}"/>  
       <arg value="-t"/> <arg file="${pretiger.src.dir}"/>  
     </exec>  
1155    
1156      <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
1157        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1158    </target>    </target>
1159    
   <target name="compile-pretiger"  
           depends="init, configure-compiler, defang"  
           description="Compiles pre-Tiger sources to build folder">  
1160    
1161      <mkdir dir="${build.pretiger.dir}"/>    <!-- extra166y (no longer maintained) -->
1162    
1163      <javac srcdir="${pretiger.src.dir}"    <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1164            destdir="${build.pretiger.dir}"      <mkdir dir="${build.extra166y.classes.dir}"/>
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${pretiger.sourcelevel}"  
              fork="true">  
1165    
1166        <compilerarg line="${build.args}"/>      <javac srcdir="${topsrc.dir}"
1167        <exclude name="**/Thread.java"/>             destdir="${build.extra166y.classes.dir}"
1168               debug="${build.debug}"
1169               debuglevel="${build.debuglevel}"
1170               deprecation="${build.deprecation}"
1171               bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1172               classpath=""
1173               source="6"
1174               target="6"
1175               includeAntRuntime="false"
1176               includeJavaRuntime="false"
1177               encoding="ASCII"
1178               executable="${javac7}"
1179               fork="true">
1180    
1181          <include name="extra166y/**/*.java"/>
1182          <compilerarg value="-XDignore.symbol.file=true"/>
1183          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1184          <compilerarg value="-Werror"/>
1185          <compilerarg line="${build.args}"/>
1186      </javac>      </javac>
1187      </target>
1188    
1189      <target name="extra166yjar" depends="extra166ycompile">
1190        <jar destfile="${extra166y.jar}" index="true">
1191          <fileset dir="${build.extra166y.classes.dir}"/>
1192          <manifest>
1193            <attribute name="Built-By" value="${user.name}"/>
1194            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1195          </manifest>
1196        </jar>
1197      </target>
1198    
1199      <target name="extra166ydocs">
1200        <delete dir="${extra166ydocs.dir}"/>
1201        <mkdir dir="${extra166ydocs.dir}"/>
1202    
1203        <javadoc destdir="${extra166ydocs.dir}"
1204                 packagenames="extra166y.*"
1205                 link="${java.api.url}"
1206                 access="${build.javadoc.access}"
1207                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1208                 bootclasspath="${bootclasspath6}"
1209                 source="6"
1210                 executable="${javadoc7}">
1211          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1212          <arg value="-XDignore.symbol.file=true"/>
1213        </javadoc>
1214    </target>    </target>
1215    
1216    <target name="pretiger" depends="compile-pretiger">    <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1217    
1218      <mkdir dir="${build.lib.dir}"/>    <target name="extra166yclean">
1219        <delete dir="${build.extra166y.dir}"/>
1220      </target>
1221    
1222      <jar destfile="${pretiger.jar}">    <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
1223        <fileset dir="${build.pretiger.dir}">      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1224        </fileset>    </target>
     </jar>  
1225    
1226      <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
1227        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1228    </target>    </target>
1229    
   <!-- jsr166x -->  
1230    
1231      <!-- jsr166e (no longer maintained) -->
1232    
1233    <target name="jsr166xcompile"    <property name="build.jsr166e.java.version" value="6"/>
1234            depends="init, configure-compiler"    <property name="build.jsr166e.javac" value="${javac6}"/>
           description="Compiles jsr166x sources">  
1235    
1236      <mkdir dir="${build.jsr166x.dir}"/>    <target name="jsr166ecompile" depends="configure-compiler">
1237        <mkdir dir="${build.jsr166e.classes.dir}"/>
1238    
1239      <javac srcdir="${jsr166xsrc.dir}"      <javac srcdir="${topsrc.dir}"
1240            destdir="${build.jsr166x.dir}"             destdir="${build.jsr166e.classes.dir}"
1241              debug="${build.debug}"             debug="${build.debug}"
1242         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1243        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1244             source="${build.sourcelevel}"             source="${build.jsr166e.java.version}"
1245               fork="true">             target="${build.jsr166e.java.version}"
1246               classpath=""
1247               includeAntRuntime="false"
1248               includeJavaRuntime="false"
1249               executable="${build.jsr166e.javac}"
1250               fork="true">
1251    
1252        <include name="**/*.java"/>        <include name="jsr166e/**/*.java"/>
1253          <compilerarg value="-XDignore.symbol.file=true"/>
1254          <compilerarg value="-Xlint:all"/>
1255          <compilerarg value="-Werror"/>
1256        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1257      </javac>      </javac>
   
1258    </target>    </target>
1259    
1260      <target name="jsr166edoclint">
1261        <mkdir dir="${build.jsr166e.classes.dir}"/>
1262    
1263        <javac srcdir="${topsrc.dir}"
1264               destdir="${build.jsr166e.classes.dir}"
1265               debug="${build.debug}"
1266               debuglevel="${build.debuglevel}"
1267               deprecation="${build.deprecation}"
1268               source="${build.jsr166e.java.version}"
1269               target="${build.jsr166e.java.version}"
1270               classpath=""
1271               bootclasspath="${bootclasspath6}"
1272               includeAntRuntime="false"
1273               includeJavaRuntime="false"
1274               executable="${javac8}"
1275               fork="true">
1276    
1277          <include name="jsr166e/**/*.java"/>
1278          <compilerarg value="-XDignore.symbol.file=true"/>
1279          <compilerarg value="-Xlint:all"/>
1280          <compilerarg value="-Werror"/>
1281          <compilerarg value="-Xdoclint:all/protected"/>
1282        </javac>
1283      </target>
1284    
1285    <target name="jsr166xjar"    <target name="jsr166ejar" depends="jsr166ecompile">
1286            depends="jsr166xcompile"      <jar destfile="${jsr166e.jar}" index="true">
1287            description="Builds library jar from compiled sources">        <fileset dir="${build.jsr166e.classes.dir}"/>
1288          <manifest>
1289      <mkdir dir="${build.jsr166xlib.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1290            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1291      <jar destfile="${jsr166xproduct.jar}">        </manifest>
       <fileset dir="${build.jsr166x.dir}"/>  
1292      </jar>      </jar>
   
1293    </target>    </target>
1294    
1295      <target name="jsr166edocs">
1296        <delete dir="${jsr166edocs.dir}"/>
1297    <target name="jsr166xdocs"      <mkdir dir="${jsr166edocs.dir}"/>
1298            description="Builds javadocs with custom tags to build folder">  
1299        <javadoc destdir="${jsr166edocs.dir}"
1300      <delete dir="${build.jsr166xjavadocs.dir}"/>               packagenames="jsr166e.*"
1301      <mkdir dir="${build.jsr166xjavadocs.dir}"/>               link="${java.api.url}"
1302                 access="${build.javadoc.access}"
1303      <javadoc destdir="${build.jsr166xjavadocs.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1304                  link="http://java.sun.com/j2se/1.5.0/docs/api/"               source="${build.jsr166e.java.version}"
1305              sourcepath="${jsr166xsrc.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"               executable="${javadoc7}"
1306                 failonerror = "true">
1307      >        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1308        <packageset dir="${topsrc.dir}" defaultexcludes="yes">        <arg value="-XDignore.symbol.file=true"/>
       <include name="jsr166x"/>  
       </packageset>  
   
   
1309      </javadoc>      </javadoc>
1310      </target>
1311    
1312      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
1313        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1314        <run-tck-tests
1315          tck.src.dir="${test.src.dir}/tck-jsr166e"
1316          target="${build.jsr166e.java.version}"
1317          workdir="${build.jsr166e.dir}"
1318          classes="${jsr166e.jar}"/>
1319    </target>    </target>
1320    
1321      <target name="jsr166e-tck">
1322    
1323    <target name="jsr166xdist"  <!--     <antcall target="clean"/> -->
1324            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1325            description="Puts all distributable products in single hierarchy"/>  <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1326    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1327    <!--     </antcall> -->
1328    
1329        <antcall target="clean"/>
1330        <antcall target="jsr166e-tck-one-java-version">
1331          <param name="build.jsr166e.java.version" value="7"/>
1332          <param name="build.jsr166e.javac" value="${javac7}"/>
1333        </antcall>
1334    
1335        <antcall target="clean"/>
1336        <antcall target="jsr166e-tck-one-java-version">
1337          <param name="build.jsr166e.java.version" value="6"/>
1338          <param name="build.jsr166e.javac" value="${javac6}"/>
1339        </antcall>
1340      </target>
1341    
1342    <target name="jsr166xclean"    <target name="jsr166e-test" depends="jsr166e-tck"/>
           description="Removes all build products">  
1343    
1344      <delete dir="${build.jsr166x.dir}"/>    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
     <delete dir="${build.jsr166xlib.dir}"/>  
1345    
1346      <target name="jsr166eclean">
1347        <delete dir="${build.jsr166e.dir}"/>
1348    </target>    </target>
1349    
1350      <target name="jsr166edist-jar"
1351              depends="jsr166eclean, jsr166ejar">
1352        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1353      </target>
1354    
1355      <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
1356        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1357      </target>
1358    
   <target name="jsr166xdist-clean"  
           description="Removes all build and distribution products">  
1359    
1360    </target>  <!-- Find buglets that can be detected by static build tools -->
1361    
1362      <target name="lint">
1363        <antcall target="dists">
1364          <param name="build.javadoc.access" value="public"/>
1365        </antcall>
1366      </target>
1367    
1368    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1369      <target name="lint-private">
1370        <antcall target="dist">
1371          <param name="build.javadoc.access" value="private"/>
1372        </antcall>
1373      </target>
1374    
   <target name="jsr166xdist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
1375    
1376      <delete dir="${dist.jsr166xjavadocs.dir}"/>  <!-- ==============================================================
1377      <mkdir dir="${dist.jsr166xjavadocs.dir}"/>    Experimental errorprone support - http://errorprone.info
1378      You may need to bring your own errorprone jar.
1379    =================================================================== -->
1380      <target name="errorprone"
1381              depends="clean, configure-compiler"
1382              description="Run errorprone over jsr166 source code (experimental)">
1383    
1384      <javadoc destdir="${dist.jsr166xjavadocs.dir}"      <local name="destdir"/>
1385                  link="http://java.sun.com/j2se/1.5.0/docs/api/"      <property name="destdir" value="${build.classes.dir}/java.base"/>
1386                source="${build.sourcelevel}">      <mkdir dir="${destdir}"/>
   
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1387    
1388      </javadoc>      <javac srcdir="${src.dir}"
1389               destdir="${destdir}"
1390               debug="${build.debug}"
1391               debuglevel="${build.debuglevel}"
1392               deprecation="${build.deprecation}"
1393               classpath=""
1394               includeAntRuntime="false"
1395               includeJavaRuntime="false"
1396               encoding="ASCII"
1397               executable="${build.main.javac}"
1398               fork="true">
1399    
1400    </target>        <include name="**/*.java"/>
1401          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1402          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1403          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1404          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1405          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1406          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1407          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1408          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1409          <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1410          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1411          <compilerarg value="-Xplugin:ErrorProne
1412                              -Xep:IdentityBinaryExpression:WARN
1413                              -Xep:MissingOverride:OFF
1414                              -Xep:MixedArrayDimensions:WARN
1415                              -Xep:RemoveUnusedImports:ERROR
1416                              -Xep:ClassName:ERROR
1417                              -Xep:MultipleTopLevelClasses:ERROR
1418                              -Xep:EmptyIf:ERROR
1419                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1420                              -Xep:ArgumentParameterSwap:ERROR
1421                              -Xep:RedundantThrows:ERROR
1422                              -Xep:MethodCanBeStatic:WARN"/>
1423          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1424          <compilerarg value="-Xprefer:source"/>
1425          <compilerarg value="-XDignore.symbol.file=true"/>
1426          <compilerarg value="-Xlint:all"/>
1427          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1428          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1429          <compilerarg line="${build.args}"/>
1430        </javac>
1431    
1432    <target name="jsr166xdist-jar"      <jar destfile="${product.jar}">
1433            depends="jsr166xclean, jsr166xjar">        <fileset dir="${destdir}"/>
1434        </jar>
1435    
1436      <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>      <run-tck-tests
1437          target="${build.main.java.version}"
1438          workdir="${build.dir}"
1439          classes="${product.jar}">
1440          <javac-elements>
1441            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1442            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1443            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1444            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1445            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1446            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1447            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1448            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1449            <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1450            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1451            <compilerarg value="-Xplugin:ErrorProne
1452                                -Xep:IdentityBinaryExpression:WARN
1453                                -Xep:BoxedPrimitiveConstructor:OFF
1454                                -Xep:HashtableContains:OFF
1455                                -Xep:ModifyingCollectionWithItself:OFF
1456                                -Xep:MissingOverride:OFF
1457                                -Xep:MixedArrayDimensions:WARN
1458                                -Xep:RemoveUnusedImports:ERROR
1459                                -Xep:ClassName:ERROR
1460                                -Xep:MultipleTopLevelClasses:ERROR
1461                                -Xep:EmptyIf:ERROR
1462                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1463                                -Xep:ArgumentParameterSwap:ERROR
1464                                -Xep:RedundantThrows:ERROR
1465                                -Xep:MethodCanBeStatic:WARN"/>
1466            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1467          </javac-elements>
1468        </run-tck-tests>
1469      </target>
1470    
1471    
1472    <!-- ==============================================================
1473      Running guava tests against jsr166 code
1474    =================================================================== -->
1475    
1476    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1477    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1478    <!-- <property name="guava.version" value="21.0"/> -->
1479    
1480    <!-- HOWTO debug print a path id -->
1481    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1482    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1483    
1484    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1485    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1486    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1487    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1488    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1489    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1490    
1491    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1492    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1493    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1494    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1495    
1496    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1497    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1498    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1499    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1500    
1501    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1502    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1503    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1504    
1505      <target name="init-ivy">
1506        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1507             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1508        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1509                 classpath="${build.dir}/ivy.jar"/>
1510      </target>
1511    
1512      <target name="guava-tests" depends="jar, init-ivy"
1513              description="Guava tests run against jsr166 collections">
1514        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1515        <mkdir dir="${guava.dir}"/>
1516        <ivy:retrieve pathid="guava.testlib.classpath"
1517          type="jar,bundle" inline="true" conf="default,master"
1518          pattern="${guava.dir}/[artifact].[ext]"
1519          organisation="com.google.guava" module="guava-testlib"/>
1520        <property name="guava.version" value="21.0"/>
1521        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1522             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1523        <junit printsummary="true" showoutput="true" haltonfailure="true"
1524               jvm="${build.main.java}" fork="true">
1525          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1526          <formatter type="brief"/>
1527          <classpath>
1528            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1529            <path refid="guava.testlib.classpath"/>
1530          </classpath>
1531    
1532          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1533          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1534        </junit>
1535    </target>    </target>
1536    
1537  </project>  </project>

Legend:
Removed from v.1.72  
changed lines
  Added in v.1.247

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