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

Diff of /jsr166/build.xml

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

revision 1.201 by dl, Sat Mar 26 12:35:25 2016 UTC revision 1.259 by jsr166, Mon Dec 18 21:07:18 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">    xmlns:if="ant:if" xmlns:unless="ant:unless"
3      xmlns:ivy="antlib:org.apache.ivy.ant">
4    
5    <description>    <description>
6  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 7  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    
# Line 14  Line 18 
18    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
19    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
20    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
   $HOME/jdk/jdk7  
21    $HOME/jdk/jdk8    $HOME/jdk/jdk8
22    $HOME/jdk/jdk9    $HOME/jdk/jdk9
23      $HOME/jdk/jdk10
24    where each of the above is a JDK or a symlink to same, and    where each of the above is a JDK or a symlink to same, and
   $HOME/jdk/src/jdk6  
   $HOME/jdk/src/jdk7  
25    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
26    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
27      $HOME/jdk/src/jdk10
28    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
29    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
30    
31    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
32    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
33    for $N in 6 7 8 9 ...    for $N in 8 9 10 ...
34    
35    As of 2015-09, there is incomplete hacky support for jigsaw    As of 2016-03, the sources in src/main are for jdk9+ only.
   Build for jigsaw using something like:  
   ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.home="$HOME/jdk/src/jigsaw" clean test dist  
   "docs" target is still broken.  
36  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
37    </description>    </description>
38    
39    <!-- Display main targets by running 'ant -projecthelp' -->    <!-- Run 'ant -projecthelp' (default target) -->
40    <target name="usage">    <target name="usage">
41      <java classname="org.apache.tools.ant.Main">      <java classname="org.apache.tools.ant.Main">
42        <arg value="-projecthelp" />        <arg value="-projecthelp" />
# Line 62  Line 61 
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.loops.dir"             location="${build.dir}/loops"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
   <property name="build.reports.dir"           location="${build.dir}/reports"/>  
64    
65    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
66    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
# Line 133  Line 131 
131    <defjdklocations v="7"/>    <defjdklocations v="7"/>
132    <defjdklocations v="8"/>    <defjdklocations v="8"/>
133    <defjdklocations v="9"/>    <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"/>
# Line 142  Line 141 
141    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
142    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
143    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <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}"/>    <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"/>
# Line 181  Line 181 
181    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
182    
183    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
184    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
185    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java5.docroot.url"  value="https://docs.oracle.com/javase/1.5.0/docs"/>
186    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java6.docroot.url"  value="https://docs.oracle.com/javase/6/docs"/>
187    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java7.docroot.url"  value="https://docs.oracle.com/javase/7/docs"/>
188    <!-- The expected canonical location does not yet exist as of 2016-03 -->    <property name="java8.docroot.url"  value="https://docs.oracle.com/javase/8/docs"/>
189    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <property name="java9.docroot.url"  value="https://docs.oracle.com/javase/9/docs"/>
190    <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>    <!-- The location of jdk9 early access docs (RIP) -->
191      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
192    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
193    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/>
194      <property name="java.docroot.url"   value="${java9.docroot.url}"/>
195    
196    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
197    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 197  Line 199 
199    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
200    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
201    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
202      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
203    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
204    
205    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 232  Line 235 
235        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
236      </condition>      </condition>
237    
238        <local name="use-doclint"/>
239        <condition property="use-doclint">
240          <not> <equals arg1="@{target}" arg2="7"/> </not>
241        </condition>
242    
243      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
244    
245      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 244  Line 252 
252             classpath="${junit.jar}"             classpath="${junit.jar}"
253             includeAntRuntime="false"             includeAntRuntime="false"
254             includeJavaRuntime="false"             includeJavaRuntime="false"
255               encoding="ASCII"
256             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
257             fork="true">             fork="true">
258    
259        <include name="*.java"/>        <include name="*.java"/>
260        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
261        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
262          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
263        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
264        <compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
265        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
266        <javac-elements/>        <javac-elements/>
267    
# Line 262  Line 272 
272            jvm="${java@{target}}"            jvm="${java@{target}}"
273            fork="true">            fork="true">
274          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
275          <jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
278            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
279            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
280            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
281          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
282            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
283            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
284    
285          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
286          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
287            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
288            <propertyref prefix="jsr166."/>            <propertyref prefix="jsr166."/>
# Line 282  Line 299 
299    </macrodef>    </macrodef>
300    
301    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
302      <fileset dir="${jtreg10.src.dir}">
303        <patternset id="jdk10.jtreg.tests">
304          <include name="**/*.java"/>
305        </patternset>
306      </fileset>
307    
308    <fileset dir="${jtreg9.src.dir}">    <fileset dir="${jtreg9.src.dir}">
309      <patternset id="jdk9.jtreg.tests">      <patternset id="jdk9.jtreg.tests">
310        <include name="**/*.java"/>        <include name="**/*.java"/>
# Line 291  Line 314 
314    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
315      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
316        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
317      </patternset>      </patternset>
318    </fileset>    </fileset>
319    
# Line 308  Line 328 
328    
329    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
330      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="source" default="7"/>  
331      <attribute name="target"/>      <attribute name="target"/>
332      <attribute name="workdir"/>      <attribute name="workdir"/>
333      <attribute name="classes"/>      <attribute name="classes"/>
334        <attribute name="verbose" default="${jtreg.verbose}"/>
335      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
336        <element name="jtreg-elements" optional="true"/>
337    
338      <sequential>      <sequential>
339    
# Line 325  Line 346 
346      </condition>      </condition>
347    
348      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
     <mkdir dir="@{workdir}/JTwork/scratch"/>  
     <!-- workaround for https://bugs.openjdk.java.net/browse/CODETOOLS-7901571 -->  
     <mkdir dir="@{workdir}/JTreport/html"/>  
     <mkdir dir="@{workdir}/JTreport/text"/>  
349      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
350             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
351             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
352        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
353        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
354        <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
355          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
356        <arg value="-agentvm"/>        <arg value="-agentvm"/>
357        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-noreport"/>
358          <arg value="-verbose:@{verbose}"/>
359        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
360        <arg value="-automatic"/>        <arg value="-automatic"/>
361        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
362        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
363        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
364          <jtreg-elements/>
365      </jtreg>      </jtreg>
366      </sequential>      </sequential>
367    </macrodef>    </macrodef>
# Line 360  Line 378 
378    <!-- Main targets -->    <!-- Main targets -->
379    
380    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
381    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
382      <macrodef name="define-build-main-properties">
383        <attribute name="v"/>
384        <sequential>
385          <property name="build.main.java"    value="${java@{v}}"/>
386          <property name="build.main.javac"   value="${javac@{v}}"/>
387          <property name="build.main.javadoc" value="${javadoc@{v}}"/>
388        </sequential>
389      </macrodef>
390      <define-build-main-properties v="${build.main.java.version}"/>
391    
392    <target name="dists"    <target name="dists"
393            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
394            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
395              <!--
396                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
397              -->
398    
399    <target name="compile"    <target name="compile"
400            depends="configure-compiler"            depends="configure-compiler"
401            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
402    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
403      <local name="destdir"/>      <local name="destdir"/>
404      <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>      <property name="destdir" value="${build.classes.dir}/java.base"/>
     <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>  
405    
406      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
407    
# Line 392  Line 413 
413             classpath=""             classpath=""
414             includeAntRuntime="false"             includeAntRuntime="false"
415             includeJavaRuntime="false"             includeJavaRuntime="false"
416               encoding="ASCII"
417             executable="${build.main.javac}"             executable="${build.main.javac}"
418             fork="true">             fork="true">
419    
420        <include name="**/*.java"/>        <include name="**/*.java"/>
421        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
422        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
423        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
424        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
425          <compilerarg line="--doclint-format html5"/>
426          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
427        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
428        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
429        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
430    
431      </javac>      </javac>
   
     <!-- We need jdk9's Contended annotation, but at compile time only -->  
     <!--  
         <delete file="${destdir}/jdk/internal/vm/annotation/Contended.class"/>  
     -->  
432    </target>    </target>
433    
434    
435    <target name="jar"    <target name="jar"
436            depends="compile"            depends="compile"
437            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
438        <local name="subdir"/>
439        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
440      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
441        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
442        <manifest>        <manifest>
443          <attribute name="Built-By" value="${user.name}"/>          <attribute name="Built-By" value="${user.name}"/>
444          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
# Line 437  Line 456 
456      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
457      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
458    
459    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
460    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
461    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
462    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
463    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
464      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
465               packagenames="none"               packagenames="none"
466               link="${java9.api.url}"               link="${java9.api.url}"
467               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
468               access="${build.javadoc.access}"               access="${build.javadoc.access}"
469               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
470               classpath=""               classpath=""
471               executable="${javadoc9}">               source="9"
472                 executable="${build.main.javadoc}">
473        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
474          <include name="**/*.java"/>          <include name="**/*.java"/>
475        </fileset>        </fileset>
476        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
477        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
478        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
479  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
480          <arg value="--patch-module=java.base=${src.dir}"/>
481        <arg value="-tag"/>        <arg value="-tag"/>
482        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
483    <!-- @apiNote currently unused -->
484    <!--       <arg value="-tag"/> -->
485    <!--       <arg value="apiNote:a:API Note:"/> -->
486        <arg value="-tag"/>        <arg value="-tag"/>
487        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="implSpec:a:Implementation Requirements:"/>
       <arg value="-tag"/>  
       <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  
       <arg value="-tag"/>  
       <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  
 <!-- tags added in jdk9 -->  
       <arg value="-tag"/>  
       <arg value="revised:X"/>  
488        <arg value="-tag"/>        <arg value="-tag"/>
489        <arg value="spec:X"/>        <arg value="implNote:a:Implementation Note:"/>
490    <!-- tags added in jdk9: currently unused -->
491    <!--       <arg value="-tag"/> -->
492    <!--       <arg value="revised:X"/> -->
493    <!--       <arg value="-tag"/> -->
494    <!--       <arg value="spec:X"/> -->
495      </javadoc>      </javadoc>
496    </target>    </target>
497    
# Line 498  Line 525 
525    
526    <target name="clean"    <target name="clean"
527            description="Removes all build products">            description="Removes all build products">
   
528      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
529    </target>    </target>
530    
531    
532    <target name="dist-clean"    <target name="dist-clean"
533            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
534      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
535      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
536    </target>    </target>
537    
538    
# Line 525  Line 548 
548    
549    <target name="tck"    <target name="tck"
550            depends="jar"            depends="jar"
551            description="Runs tck tests for main directly">            description="Runs tck tests for src/main directly">
552    
553      <run-tck-tests      <run-tck-tests
554        target="${build.main.java.version}"        target="${build.main.java.version}"
555        workdir="${build.dir}"        workdir="${build.dir}"
556        classes="${product.jar}"/>        classes="${product.jar}">
557          <javac-elements>
558            <compilerarg value="-Werror"/>
559          </javac-elements>
560        </run-tck-tests>
561    </target>    </target>
562    
563    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
564            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 1">
565      <antcall target="tck">      <antcall target="tck">
566        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
567      </antcall>      </antcall>
568    </target>    </target>
569    
570    <target name="tck-parallelism-0"    <target name="tck-parallelism-0"
571            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 0">
572      <antcall target="tck">      <antcall target="tck">
573        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
574      </antcall>      </antcall>
575    </target>    </target>
576    
577      <target name="tck-security-manager"
578              description="Runs tck with a security manager">
579        <antcall target="tck">
580          <param name="jsr166.useSecurityManager" value="true"/>
581        </antcall>
582      </target>
583    
584    <target name="jtreg"    <target name="jtreg"
585            depends="jar"            depends="jar"
586            description="Runs jtreg tests for main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
587      <run-jtreg-tests      <run-jtreg-tests
588         target="${build.main.java.version}"         target="${build.main.java.version}"
589         workdir="${build.dir}"         workdir="${build.dir}"
# Line 557  Line 591 
591    </target>    </target>
592    
593    <target name="test"    <target name="test"
594            depends="tck, tck-parallelism-1, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
595            description="Runs tck and jtreg tests for main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
596    
597    <target name="jtreg8" description="Runs jtreg tests with jdk8">  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
598    
599      <antcall target="jtreg">  <!--     <antcall target="jtreg"> -->
600        <param name="build.main.java.version" value="8"/>  <!--       <param name="build.main.java.version" value="8"/> -->
601        <param name="build.main.javac" value="${javac8}"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
602      </antcall>  <!--     </antcall> -->
603    
604    </target>  <!--   </target> -->
605    
606    <target name="test89"    <target name="test910"
607            description="Runs tck and jtreg tests for main for multiple java versions">            description="Runs tck and jtreg tests for src/main for multiple java versions">
608    
609      <antcall target="clean"/>      <antcall target="clean"/>
610      <antcall target="test">      <antcall target="test">
611        <param name="build.main.java.version" value="8"/>        <param name="build.main.java.version" value="9"/>
       <param name="build.main.javac" value="${javac8}"/>  
612      </antcall>      </antcall>
613    
614      <antcall target="clean"/>      <antcall target="clean"/>
615      <antcall target="test">      <antcall target="test">
616        <param name="build.main.java.version" value="9"/>        <param name="build.main.java.version" value="10"/>
       <param name="build.main.javac" value="${javac9}"/>  
617      </antcall>      </antcall>
618    
619        <!-- Clean up to avoid obscure wrong class file version bugs -->
620        <antcall target="clean"/>
621    
622    </target>    </target>
623    
624    
625    
626    <target name="configure-compiler">    <target name="configure-compiler">
627      <fail message="ant version too old">      <fail message="ant version too old">
628        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
629      </fail>      </fail>
630    
631      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 615  Line 647 
647    <!-- Various demos and test programs -->    <!-- Various demos and test programs -->
648    
649    
650    <target name="loops" depends="configure-compiler"    <!-- description="Benchmark from Doug Lea's AQS paper" -->
651            description="Benchmark from Doug Lea's AQS paper">    <target name="loops" depends="configure-compiler">
652    
653      <mkdir dir="${build.loops.dir}"/>      <mkdir dir="${build.loops.dir}"/>
654    
# Line 627  Line 659 
659        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
660             source="${build.sourcelevel}"             source="${build.sourcelevel}"
661             target="${build.sourcelevel}"             target="${build.sourcelevel}"
662             encoding="ASCII"
663               fork="true">               fork="true">
664    
665        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 638  Line 671 
671      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
672        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
673      </java>      </java>
   
674    </target>    </target>
675    
676    
677    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
678            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
679    
680      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
681    
# Line 654  Line 686 
686             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
687             includeAntRuntime="false"             includeAntRuntime="false"
688             includeJavaRuntime="false"             includeJavaRuntime="false"
689             executable="${javac9}"             encoding="ASCII"
690               executable="${build.main.javac}"
691             fork="true">             fork="true">
692    
693        <include name="*.java"/>        <include name="*.java"/>
# Line 662  Line 695 
695        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
696        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
697        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
698      </javac>      </javac>
   
699    </target>    </target>
700    
701    
# Line 687  Line 718 
718             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
719             includeAntRuntime="false"             includeAntRuntime="false"
720             includeJavaRuntime="false"             includeJavaRuntime="false"
721               encoding="ASCII"
722             executable="${javac8}"             executable="${javac8}"
723             fork="true">             fork="true">
   
724        <include name="**/*.java"/>        <include name="**/*.java"/>
725        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
726        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
727        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
728        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
729        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
730      </javac>      </javac>
731    </target>    </target>
732    
# Line 717  Line 747 
747             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
748             includeAntRuntime="false"             includeAntRuntime="false"
749             includeJavaRuntime="false"             includeJavaRuntime="false"
750               encoding="ASCII"
751             executable="${javac8}"             executable="${javac8}"
752             fork="true">             fork="true">
   
753        <include name="**/*.java"/>        <include name="**/*.java"/>
754        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
755        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
756        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
757        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
758        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
759      </javac>      </javac>
760    </target>    </target>
761    
# Line 742  Line 771 
771          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
772        </manifest>        </manifest>
773      </jar>      </jar>
   
774    </target>    </target>
775    
776    
# Line 758  Line 786 
786          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
787          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
788          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
789            <compilerarg value="-Werror"/>
790        </javac-elements>        </javac-elements>
791      </run-tck-tests>      </run-tck-tests>
792    </target>    </target>
# Line 775  Line 804 
804    
805    <target name="4jdk8-test"    <target name="4jdk8-test"
806            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
807            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
808    
809    
810    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 792  Line 820 
820               access="${build.javadoc.access}"               access="${build.javadoc.access}"
821               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
822               classpath=""               classpath=""
823               executable="${javadoc8}">               source="8"
824                 executable="${javadoc8}"
825                 failonerror = "true">
826        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
827          <include name="**/*.java"/>          <include name="**/*.java"/>
828        </fileset>        </fileset>
# Line 800  Line 830 
830        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
831        <arg value="-tag"/>        <arg value="-tag"/>
832        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
833        <arg value="-tag"/>  <!-- @apiNote currently unused -->
834        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
835    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
836        <arg value="-tag"/>        <arg value="-tag"/>
837        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
838        <arg value="-tag"/>        <arg value="-tag"/>
# Line 817  Line 848 
848    
849    <target name="4jdk8clean"    <target name="4jdk8clean"
850            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
851      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
852    </target>    </target>
853    
854    
# Line 835  Line 864 
864    </target>    </target>
865    
866    
867      <!-- jsr166 4jdk7 (no longer maintained) -->
868    
869    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
870      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
871    
872      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 855  Line 880 
880             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
881             includeAntRuntime="false"             includeAntRuntime="false"
882             includeJavaRuntime="false"             includeJavaRuntime="false"
883               encoding="ASCII"
884             executable="${javac7}"             executable="${javac7}"
885             fork="true">             fork="true">
886    
# Line 864  Line 890 
890        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
891        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
892        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
893      </javac>      </javac>
894    </target>    </target>
895    
896    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
897      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
898    
899      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 885  Line 907 
907             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
908             includeAntRuntime="false"             includeAntRuntime="false"
909             includeJavaRuntime="false"             includeJavaRuntime="false"
910               encoding="ASCII"
911             executable="${javac8}"             executable="${javac8}"
912             fork="true">             fork="true">
913    
# Line 894  Line 917 
917        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
918        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
919        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
920      </javac>      </javac>
921    </target>    </target>
922    
923      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
924      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
925        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
926        <manifest>        <manifest>
# Line 910  Line 928 
928          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
929        </manifest>        </manifest>
930      </jar>      </jar>
   
931    </target>    </target>
932    
933      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
934      <run-tck-tests      <run-tck-tests
935        target="7"        target="7"
936        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 935  Line 948 
948          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
949          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
950          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
951            <compilerarg value="-Werror"/>
952        </javac-elements>        </javac-elements>
953      </run-tck-tests>      </run-tck-tests>
954    </target>    </target>
955    
956      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
957    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile"  
           description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">  
958    
959      <junit printsummary="true"      <junit printsummary="true"
960             showoutput="true"             showoutput="true"
# Line 964  Line 976 
976    
977        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
978        </test>        </test>
   
979      </junit>      </junit>
980    </target>    </target>
981    
982    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
983      <run-jtreg-tests      <run-jtreg-tests
984         target="7"         target="7"
985         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
986         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
987    </target>    </target>
988    
989      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
990    
991    <target name="4jdk7-test"    <target name="4jdk7docs">
           depends="4jdk7-tck, 4jdk7-jtreg"  
           description="Runs tck and jtreg tests for jsr166-4jdk7">  
   </target>  
   
   
   <target name="4jdk7docs"  
           description="Builds javadocs for src/jdk7 to dist dir">  
   
992      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
993      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
994    
# Line 997  Line 999 
999               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1000               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1001               classpath=""               classpath=""
1002               executable="${javadoc7}">               executable="${javadoc7}"
1003                 failonerror = "true">
1004        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1005          <include name="**/*.java"/>          <include name="**/*.java"/>
1006        </fileset>        </fileset>
# Line 1006  Line 1009 
1009      </javadoc>      </javadoc>
1010    </target>    </target>
1011    
1012      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1013    
1014    <target name="4jdk7dist"    <target name="4jdk7clean">
           depends="4jdk7dist-jar, 4jdk7dist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="4jdk7clean"  
           description="Removes all 4jdk7 build products">  
   
1015      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1016    </target>    </target>
1017    
1018      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1019      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1020    </target>    </target>
1021    
1022      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1023      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1024    </target>    </target>
1025    
1026    
1027    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1028    
1029      <target name="jsr166xcompile" depends="configure-compiler">
1030      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1031    
1032      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1051  Line 1040 
1040             target="5"             target="5"
1041             includeAntRuntime="false"             includeAntRuntime="false"
1042             includeJavaRuntime="false"             includeJavaRuntime="false"
1043               encoding="ASCII"
1044             executable="${javac7}"             executable="${javac7}"
1045             fork="true">             fork="true">
   
1046        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1047        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1048        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1049        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1050        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1051      </javac>      </javac>
1052    </target>    </target>
1053    
1054      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1055      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1056        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1057        <manifest>        <manifest>
# Line 1075  Line 1059 
1059          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1060        </manifest>        </manifest>
1061      </jar>      </jar>
   
1062    </target>    </target>
1063    
1064      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1065      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1066      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1067    
# Line 1092  Line 1072 
1072               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1073               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1074               source="5"               source="5"
1075               executable="${javadoc7}">               executable="${javadoc7}"
1076                 failonerror = "true">
1077        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1078        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1079      </javadoc>      </javadoc>
1080    </target>    </target>
1081    
1082      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1083    
1084    <target name="jsr166xdist"    <target name="jsr166xclean">
           depends="jsr166xdist-jar, jsr166xdist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166xclean"  
           description="Removes all jsr166x build products">  
   
1085      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1086    </target>    </target>
1087    
1088      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1089      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1090    </target>    </target>
1091    
1092    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1093      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1094    </target>    </target>
1095    
   <!-- jsr166y -->  
1096    
1097      <!-- jsr166y (no longer maintained) -->
1098    
1099    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1100      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1101    
1102      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1143  Line 1110 
1110             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1111             includeAntRuntime="false"             includeAntRuntime="false"
1112             includeJavaRuntime="false"             includeJavaRuntime="false"
1113               encoding="ASCII"
1114             executable="${javac7}"             executable="${javac7}"
1115             fork="true">             fork="true">
1116    
# Line 1151  Line 1119 
1119        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1120        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1121        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1122      </javac>      </javac>
1123    </target>    </target>
1124    
1125      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1126      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1127        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1128        <manifest>        <manifest>
# Line 1167  Line 1130 
1130          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1131        </manifest>        </manifest>
1132      </jar>      </jar>
   
1133    </target>    </target>
1134    
1135      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1136      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1137      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1138    
# Line 1184  Line 1143 
1143               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1144               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1145               source="6"               source="6"
1146               executable="${javadoc7}">               executable="${javadoc7}"
1147                 failonerror = "true">
1148        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1149        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1150      </javadoc>      </javadoc>
1151    </target>    </target>
1152    
1153      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1154    
1155    <target name="jsr166ydist"    <target name="jsr166yclean">
           depends="jsr166ydist-jar, jsr166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166yclean"  
           description="Removes all jsr166y build products">  
   
1156      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1157    </target>    </target>
1158    
1159      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1160      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1161    </target>    </target>
1162    
1163    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1164      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1165    </target>    </target>
1166    
1167    
1168    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1169    
1170      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1171      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1172    
1173      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1236  Line 1181 
1181             target="6"             target="6"
1182             includeAntRuntime="false"             includeAntRuntime="false"
1183             includeJavaRuntime="false"             includeJavaRuntime="false"
1184               encoding="ASCII"
1185             executable="${javac7}"             executable="${javac7}"
1186             fork="true">             fork="true">
1187    
# Line 1244  Line 1190 
1190        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1191        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1192        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1193      </javac>      </javac>
1194    </target>    </target>
1195    
1196      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1197      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1198        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1199        <manifest>        <manifest>
# Line 1260  Line 1201 
1201          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1202        </manifest>        </manifest>
1203      </jar>      </jar>
   
1204    </target>    </target>
1205    
1206      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1207      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1208      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1209    
# Line 1280  Line 1217 
1217               executable="${javadoc7}">               executable="${javadoc7}">
1218        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1219        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1220      </javadoc>      </javadoc>
1221    </target>    </target>
1222    
1223      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1224    
1225    <target name="extra166ydist"    <target name="extra166yclean">
           depends="extra166ydist-jar, extra166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="extra166yclean"  
           description="Removes all extra166y build products">  
   
1226      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1227    </target>    </target>
1228    
1229      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1230      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1231    </target>    </target>
1232    
1233    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1234      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1235    </target>    </target>
1236    
1237    <!-- jsr166e -->  
1238      <!-- jsr166e (no longer maintained) -->
1239    
1240    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1241    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1242    
1243    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1244      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1245    
1246      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1337  Line 1261 
1261        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1262        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1263        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1264      </javac>      </javac>
1265    </target>    </target>
1266    
   <!-- jsr166e: find doclint errors -->  
1267    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1268      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1269    
1270      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1365  Line 1286 
1286        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1287        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1288        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1289      </javac>      </javac>
1290    </target>    </target>
1291    
1292      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1293      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1294        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1295        <manifest>        <manifest>
# Line 1381  Line 1297 
1297          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1298        </manifest>        </manifest>
1299      </jar>      </jar>
   
1300    </target>    </target>
1301    
1302      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1303      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1304      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1305    
# Line 1397  Line 1309 
1309               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1310               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1311               source="${build.jsr166e.java.version}"               source="${build.jsr166e.java.version}"
1312               executable="${javadoc7}">               executable="${javadoc7}"
1313                 failonerror = "true">
1314        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1315        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1316      </javadoc>      </javadoc>
1317    </target>    </target>
1318    
1319      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1320      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1321      <run-tck-tests      <run-tck-tests
1322        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1323        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1417  Line 1325 
1325        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1326    </target>    </target>
1327    
1328    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1329    
1330  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1331  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1439  Line 1346 
1346      </antcall>      </antcall>
1347    </target>    </target>
1348    
1349      <target name="jsr166e-test" depends="jsr166e-tck"/>
1350    
1351    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
1352    
1353    <target name="jsr166edist"    <target name="jsr166eclean">
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166eclean"  
           description="Removes all jsr166e build products">  
1354      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1355    </target>    </target>
1356    
   
1357    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1358            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1359      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1360    </target>    </target>
1361    
1362    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1363      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1364    </target>    </target>
1365    
# Line 1483  Line 1380 
1380    </target>    </target>
1381    
1382    
1383    <!-- ==============================================================
1384      Experimental errorprone support - http://errorprone.info
1385    =================================================================== -->
1386      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.1.2.jar"/>
1387      <target name="errorprone"
1388              depends="clean, configure-compiler"
1389              description="Run errorprone over jsr166 source code (experimental)">
1390    
1391        <local name="destdir"/>
1392        <property name="destdir" value="${build.classes.dir}/java.base"/>
1393        <mkdir dir="${destdir}"/>
1394    
1395        <javac srcdir="${src.dir}"
1396               destdir="${destdir}"
1397               debug="${build.debug}"
1398               debuglevel="${build.debuglevel}"
1399               deprecation="${build.deprecation}"
1400               classpath=""
1401               includeAntRuntime="false"
1402               includeJavaRuntime="false"
1403               encoding="ASCII"
1404               executable="${build.main.javac}"
1405               fork="true">
1406    
1407          <include name="**/*.java"/>
1408          <compilerarg line="-processorpath ${errorprone.jar}"/>
1409          <compilerarg value="-Xplugin:ErrorProne
1410                              -Xep:IdentityBinaryExpression:WARN
1411                              -Xep:MissingOverride:OFF
1412                              -Xep:MixedArrayDimensions:ERROR
1413                              -Xep:RemoveUnusedImports:ERROR
1414                              -Xep:ClassName:ERROR
1415                              -Xep:MultipleTopLevelClasses:ERROR
1416                              -Xep:EmptyIf:ERROR
1417                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1418                              -Xep:RedundantThrows:ERROR
1419                              -Xep:MethodCanBeStatic:WARN"/>
1420          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1421          <compilerarg value="-Xprefer:source"/>
1422          <compilerarg value="-XDignore.symbol.file=true"/>
1423          <compilerarg value="-Xlint:all"/>
1424          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1425          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1426          <compilerarg line="${build.args}"/>
1427        </javac>
1428    
1429        <jar destfile="${product.jar}">
1430          <fileset dir="${destdir}"/>
1431        </jar>
1432    
1433        <run-tck-tests
1434          target="${build.main.java.version}"
1435          workdir="${build.dir}"
1436          classes="${product.jar}">
1437          <javac-elements>
1438            <compilerarg line="-processorpath ${errorprone.jar}"/>
1439            <compilerarg value="-Xplugin:ErrorProne
1440                                -Xep:IdentityBinaryExpression:WARN
1441                                -Xep:BoxedPrimitiveConstructor:OFF
1442                                -Xep:HashtableContains:OFF
1443                                -Xep:ModifyingCollectionWithItself:OFF
1444                                -Xep:MissingOverride:OFF
1445                                -Xep:MissingFail:OFF
1446                                -Xep:JdkObsolete:OFF
1447                                -Xep:MixedArrayDimensions:ERROR
1448                                -Xep:RemoveUnusedImports:ERROR
1449                                -Xep:ClassName:ERROR
1450                                -Xep:MultipleTopLevelClasses:ERROR
1451                                -Xep:EmptyIf:ERROR
1452                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1453                                -Xep:RedundantThrows:ERROR
1454                                -Xep:MethodCanBeStatic:WARN"/>
1455            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1456          </javac-elements>
1457        </run-tck-tests>
1458      </target>
1459    
1460      <!-- ant errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1461      <target name="errorprone-jtreg"
1462              depends="jar"
1463              description="Run errorprone over jtreg tests (experimental)">
1464    
1465        <run-jtreg-tests
1466           target="${build.main.java.version}"
1467           workdir="${build.dir}"
1468           classes="${product.jar}"
1469           verbose="all">
1470          <jtreg-elements>
1471            <arg value="-javacoption:-processorpath"/>
1472            <arg value="-javacoption:${errorprone.jar}"/>
1473            <arg value="-javacoption:-Xplugin:ErrorProne
1474                                -Xep:IdentityBinaryExpression:WARN
1475                                -Xep:BoxedPrimitiveConstructor:OFF
1476                                -Xep:HashtableContains:OFF
1477                                -Xep:ModifyingCollectionWithItself:OFF
1478                                -Xep:MissingOverride:OFF
1479                                -Xep:JdkObsolete:OFF
1480                                -Xep:NonAtomicVolatileUpdate:OFF
1481                                -Xep:MixedArrayDimensions:ERROR
1482                                -Xep:RemoveUnusedImports:ERROR
1483                                -Xep:ClassName:ERROR
1484                                -Xep:MultipleTopLevelClasses:ERROR
1485                                -Xep:EmptyIf:ERROR
1486                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1487                                -Xep:RedundantThrows:ERROR
1488                                -Xep:MethodCanBeStatic:WARN"/>
1489          </jtreg-elements>
1490        </run-jtreg-tests>
1491      </target>
1492    
1493    
1494    <!-- ==============================================================
1495      Running guava tests against jsr166 code
1496    =================================================================== -->
1497    
1498    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1499    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1500    <!-- <property name="guava.version" value="21.0"/> -->
1501    
1502    <!-- HOWTO debug print a path id -->
1503    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1504    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1505    
1506    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1507    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1508    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1509    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1510    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1511    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1512    
1513    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1514    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1515    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1516    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1517    
1518    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1519    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1520    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1521    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1522    
1523    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1524    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1525    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1526    
1527      <target name="init-ivy">
1528        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1529             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1530        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1531                 classpath="${build.dir}/ivy.jar"/>
1532      </target>
1533    
1534      <target name="guava-tests" depends="jar, init-ivy"
1535              description="Guava tests run against jsr166 collections">
1536        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1537        <mkdir dir="${guava.dir}"/>
1538        <ivy:retrieve pathid="guava.testlib.classpath"
1539          type="jar,bundle" inline="true" conf="default,master"
1540          pattern="${guava.dir}/[artifact].[ext]"
1541          organisation="com.google.guava" module="guava-testlib"/>
1542        <property name="guava.version" value="21.0"/>
1543        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1544             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1545        <junit printsummary="true" showoutput="true" haltonfailure="true"
1546               jvm="${build.main.java}" fork="true">
1547          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1548          <formatter type="brief"/>
1549          <classpath>
1550            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1551            <path refid="guava.testlib.classpath"/>
1552          </classpath>
1553    
1554          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1555          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1556        </junit>
1557      </target>
1558    
1559  </project>  </project>

Legend:
Removed from v.1.201  
changed lines
  Added in v.1.259

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