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

Diff of /jsr166/build.xml

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

revision 1.212 by jsr166, Sat May 21 00:35:58 2016 UTC revision 1.252 by jsr166, Tue Sep 19 22:41: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 17  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 2016-03, the sources in src/main are for jdk9+ only.  The "docs"    As of 2016-03, the sources in src/main are for jdk9+ only.
   target is currently broken.  
36  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
37    </description>    </description>
38    
# Line 63  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 134  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 143  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 188  Line 187 
187    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
188    <!-- The expected canonical location does not yet exist as of 2016-04 -->    <!-- The expected canonical location does not yet exist as of 2016-04 -->
189    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
190    <property name="java9.docroot.url"      value="http://http://download.java.net/java/jdk9/docs"/>    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>
191    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
192    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java.docroot.url"       value="${java8.docroot.url}"/>
193    
# Line 233  Line 232 
232        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
233      </condition>      </condition>
234    
235        <local name="use-doclint"/>
236        <condition property="use-doclint">
237          <not> <equals arg1="@{target}" arg2="7"/> </not>
238        </condition>
239    
240      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
241    
242      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 245  Line 249 
249             classpath="${junit.jar}"             classpath="${junit.jar}"
250             includeAntRuntime="false"             includeAntRuntime="false"
251             includeJavaRuntime="false"             includeJavaRuntime="false"
252               encoding="ASCII"
253             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
254             fork="true">             fork="true">
255    
256        <include name="*.java"/>        <include name="*.java"/>
257        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
258        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <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"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
261        <compilerarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
262        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
263        <javac-elements/>        <javac-elements/>
264    
# Line 263  Line 269 
269            jvm="${java@{target}}"            jvm="${java@{target}}"
270            fork="true">            fork="true">
271          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272          <jvmarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273            <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}"/>          <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 -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
283          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
284            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
285            <propertyref prefix="jsr166."/>            <propertyref prefix="jsr166."/>
# Line 283  Line 296 
296    </macrodef>    </macrodef>
297    
298    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
299      <fileset dir="${jtreg10.src.dir}">
300        <patternset id="jdk10.jtreg.tests">
301          <include name="**/*.java"/>
302        </patternset>
303      </fileset>
304    
305    <fileset dir="${jtreg9.src.dir}">    <fileset dir="${jtreg9.src.dir}">
306      <patternset id="jdk9.jtreg.tests">      <patternset id="jdk9.jtreg.tests">
307        <include name="**/*.java"/>        <include name="**/*.java"/>
# Line 292  Line 311 
311    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
312      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
313        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
314      </patternset>      </patternset>
315    </fileset>    </fileset>
316    
# Line 309  Line 325 
325    
326    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
327      <!-- 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"/>  
328      <attribute name="target"/>      <attribute name="target"/>
329      <attribute name="workdir"/>      <attribute name="workdir"/>
330      <attribute name="classes"/>      <attribute name="classes"/>
# Line 326  Line 341 
341      </condition>      </condition>
342    
343      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
344      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
345             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
346             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
347        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
348        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
349        <arg value="-vmoption:-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <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"/>        <arg value="-agentvm"/>
352          <arg value="-noreport"/>
353        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:${jtreg.verbose}"/>
354        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
355        <arg value="-automatic"/>        <arg value="-automatic"/>
# Line 357  Line 372 
372    <!-- Main targets -->    <!-- Main targets -->
373    
374    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
375    <property name="build.main.javac" value="${javac9}"/>    <!-- 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"    <target name="dists"
387            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
388            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
389              <!--
390                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
391              -->
392    
393    <target name="compile"    <target name="compile"
394            depends="configure-compiler"            depends="configure-compiler"
395            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
396    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
397      <local name="destdir"/>      <local name="destdir"/>
398      <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"/>  
399    
400      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
401    
# Line 389  Line 407 
407             classpath=""             classpath=""
408             includeAntRuntime="false"             includeAntRuntime="false"
409             includeJavaRuntime="false"             includeJavaRuntime="false"
410               encoding="ASCII"
411             executable="${build.main.javac}"             executable="${build.main.javac}"
412             fork="true">             fork="true">
413    
414        <include name="**/*.java"/>        <include name="**/*.java"/>
415        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
416        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
417        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
418        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
419          <compilerarg line="--doclint-format html5"/>
420          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
421        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
422        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
423        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
424    
# Line 430  Line 450 
450      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
451      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
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}"      <javadoc destdir="${docs.dir}"
459               packagenames="none"               packagenames="none"
460               link="${java9.api.url}"               link="${java9.api.url}"
461               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
462               access="${build.javadoc.access}"               access="${build.javadoc.access}"
463               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
464               classpath=""               classpath=""
465               executable="${javadoc9}">               source="9"
466                 executable="${build.main.javadoc}">
467        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
468          <include name="**/*.java"/>          <include name="**/*.java"/>
469        </fileset>        </fileset>
470        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
471        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
472        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
473  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
474          <arg value="--patch-module=java.base=${src.dir}"/>
475        <arg value="-tag"/>        <arg value="-tag"/>
476        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
477    <!-- @apiNote currently unused -->
478    <!--       <arg value="-tag"/> -->
479    <!--       <arg value="apiNote:a:API Note:"/> -->
480        <arg value="-tag"/>        <arg value="-tag"/>
481        <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"/>  
482        <arg value="-tag"/>        <arg value="-tag"/>
483        <arg value="spec:X"/>        <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>      </javadoc>
490    </target>    </target>
491    
# Line 491  Line 519 
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}"/>
   
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}"/>      <delete dir="${build.dir}"/>
529      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
530    </target>    </target>
531    
532    
# Line 523  Line 547 
547      <run-tck-tests      <run-tck-tests
548        target="${build.main.java.version}"        target="${build.main.java.version}"
549        workdir="${build.dir}"        workdir="${build.dir}"
550        classes="${product.jar}"/>        classes="${product.jar}">
551          <javac-elements>
552            <compilerarg value="-Werror"/>
553          </javac-elements>
554        </run-tck-tests>
555    </target>    </target>
556    
557    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 540  Line 568 
568      </antcall>      </antcall>
569    </target>    </target>
570    
571      <target name="tck-security-manager"
572              description="Runs tck with a security manager">
573        <antcall target="tck">
574          <param name="jsr166.useSecurityManager" value="true"/>
575        </antcall>
576      </target>
577    
578    <target name="jtreg"    <target name="jtreg"
579            depends="jar"            depends="jar"
580            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
# Line 551  Line 586 
586    
587    <target name="test"    <target name="test"
588            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
589            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
590    
591  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
592    
# Line 563  Line 597 
597    
598  <!--   </target> -->  <!--   </target> -->
599    
600  <!--   <target name="test89" -->    <target name="test910"
601  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->            description="Runs tck and jtreg tests for src/main for multiple java versions">
602    
603  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
604  <!--     <antcall target="test"> -->      <antcall target="test">
605  <!--       <param name="build.main.java.version" value="8"/> -->        <param name="build.main.java.version" value="9"/>
606  <!--       <param name="build.main.javac" value="${javac8}"/> -->      </antcall>
 <!--     </antcall> -->  
607    
608  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
609  <!--     <antcall target="test"> -->      <antcall target="test">
610  <!--       <param name="build.main.java.version" value="9"/> -->        <param name="build.main.java.version" value="10"/>
611  <!--       <param name="build.main.javac" value="${javac9}"/> -->      </antcall>
 <!--     </antcall> -->  
612    
613  <!--   </target> -->      <!-- Clean up to avoid obscure wrong class file version bugs -->
614        <antcall target="clean"/>
615    
616      </target>
617    
618    
619    
620    <target name="configure-compiler">    <target name="configure-compiler">
621      <fail message="ant version too old">      <fail message="ant version too old">
622        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
623      </fail>      </fail>
624    
625      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 620  Line 653 
653        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
654             source="${build.sourcelevel}"             source="${build.sourcelevel}"
655             target="${build.sourcelevel}"             target="${build.sourcelevel}"
656             encoding="ASCII"
657               fork="true">               fork="true">
658    
659        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 631  Line 665 
665      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
666        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
667      </java>      </java>
   
668    </target>    </target>
669    
670    
671    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
672            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
673    
674      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
675    
# Line 647  Line 680 
680             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
681             includeAntRuntime="false"             includeAntRuntime="false"
682             includeJavaRuntime="false"             includeJavaRuntime="false"
683             executable="${javac9}"             encoding="ASCII"
684               executable="${build.main.javac}"
685             fork="true">             fork="true">
686    
687        <include name="*.java"/>        <include name="*.java"/>
# Line 655  Line 689 
689        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
690        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
691        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
692      </javac>      </javac>
   
693    </target>    </target>
694    
695    
# Line 680  Line 712 
712             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
713             includeAntRuntime="false"             includeAntRuntime="false"
714             includeJavaRuntime="false"             includeJavaRuntime="false"
715               encoding="ASCII"
716             executable="${javac8}"             executable="${javac8}"
717             fork="true">             fork="true">
   
718        <include name="**/*.java"/>        <include name="**/*.java"/>
719        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
720        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
721        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
722        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
723        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
724      </javac>      </javac>
725    </target>    </target>
726    
# Line 710  Line 741 
741             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
742             includeAntRuntime="false"             includeAntRuntime="false"
743             includeJavaRuntime="false"             includeJavaRuntime="false"
744               encoding="ASCII"
745             executable="${javac8}"             executable="${javac8}"
746             fork="true">             fork="true">
   
747        <include name="**/*.java"/>        <include name="**/*.java"/>
748        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
749        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
750        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
751        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
752        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
753      </javac>      </javac>
754    </target>    </target>
755    
# Line 735  Line 765 
765          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
766        </manifest>        </manifest>
767      </jar>      </jar>
   
768    </target>    </target>
769    
770    
# Line 751  Line 780 
780          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
781          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
782          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
783            <compilerarg value="-Werror"/>
784        </javac-elements>        </javac-elements>
785      </run-tck-tests>      </run-tck-tests>
786    </target>    </target>
# Line 768  Line 798 
798    
799    <target name="4jdk8-test"    <target name="4jdk8-test"
800            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
801            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
802    
803    
804    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 785  Line 814 
814               access="${build.javadoc.access}"               access="${build.javadoc.access}"
815               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
816               classpath=""               classpath=""
817                 source="8"
818               executable="${javadoc8}"               executable="${javadoc8}"
819               failonerror = "true">               failonerror = "true">
820        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 794  Line 824 
824        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
825        <arg value="-tag"/>        <arg value="-tag"/>
826        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
827        <arg value="-tag"/>  <!-- @apiNote currently unused -->
828        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
829    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
830        <arg value="-tag"/>        <arg value="-tag"/>
831        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
832        <arg value="-tag"/>        <arg value="-tag"/>
# Line 811  Line 842 
842    
843    <target name="4jdk8clean"    <target name="4jdk8clean"
844            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
845      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
846    </target>    </target>
847    
848    
# Line 829  Line 858 
858    </target>    </target>
859    
860    
861      <!-- jsr166 4jdk7 (no longer maintained) -->
862    
863    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
864      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
865    
866      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 849  Line 874 
874             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
875             includeAntRuntime="false"             includeAntRuntime="false"
876             includeJavaRuntime="false"             includeJavaRuntime="false"
877               encoding="ASCII"
878             executable="${javac7}"             executable="${javac7}"
879             fork="true">             fork="true">
880    
# Line 858  Line 884 
884        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
885        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
886        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
887      </javac>      </javac>
888    </target>    </target>
889    
890    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
891      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
892    
893      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 879  Line 901 
901             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
902             includeAntRuntime="false"             includeAntRuntime="false"
903             includeJavaRuntime="false"             includeJavaRuntime="false"
904               encoding="ASCII"
905             executable="${javac8}"             executable="${javac8}"
906             fork="true">             fork="true">
907    
# Line 888  Line 911 
911        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
912        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
913        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
914      </javac>      </javac>
915    </target>    </target>
916    
917      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
918      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
919        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
920        <manifest>        <manifest>
# Line 904  Line 922 
922          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
923        </manifest>        </manifest>
924      </jar>      </jar>
   
925    </target>    </target>
926    
927      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
928      <run-tck-tests      <run-tck-tests
929        target="7"        target="7"
930        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 929  Line 942 
942          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
943          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
944          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
945            <compilerarg value="-Werror"/>
946        </javac-elements>        </javac-elements>
947      </run-tck-tests>      </run-tck-tests>
948    </target>    </target>
949    
   
950    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
951    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
952    
953      <junit printsummary="true"      <junit printsummary="true"
954             showoutput="true"             showoutput="true"
# Line 958  Line 970 
970    
971        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
972        </test>        </test>
   
973      </junit>      </junit>
974    </target>    </target>
975    
976    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
977      <run-jtreg-tests      <run-jtreg-tests
978         target="7"         target="7"
979         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
980         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
981    </target>    </target>
982    
983      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
984    
985    <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">  
   
986      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
987      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
988    
# Line 1001  Line 1003 
1003      </javadoc>      </javadoc>
1004    </target>    </target>
1005    
1006      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1007    
1008    <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">  
   
1009      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1010    </target>    </target>
1011    
1012      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1013      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1014    </target>    </target>
1015    
1016      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1017      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1018    </target>    </target>
1019    
1020    
1021    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1022    
1023      <target name="jsr166xcompile" depends="configure-compiler">
1024      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1025    
1026      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1046  Line 1034 
1034             target="5"             target="5"
1035             includeAntRuntime="false"             includeAntRuntime="false"
1036             includeJavaRuntime="false"             includeJavaRuntime="false"
1037               encoding="ASCII"
1038             executable="${javac7}"             executable="${javac7}"
1039             fork="true">             fork="true">
   
1040        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1041        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1042        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1043        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1044        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1045      </javac>      </javac>
1046    </target>    </target>
1047    
1048      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1049      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1050        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1051        <manifest>        <manifest>
# Line 1070  Line 1053 
1053          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1054        </manifest>        </manifest>
1055      </jar>      </jar>
   
1056    </target>    </target>
1057    
1058      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1059      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1060      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1061    
# Line 1091  Line 1070 
1070               failonerror = "true">               failonerror = "true">
1071        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1072        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1073      </javadoc>      </javadoc>
1074    </target>    </target>
1075    
1076      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1077    
1078    <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">  
   
1079      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1080    </target>    </target>
1081    
1082      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1083      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1084    </target>    </target>
1085    
1086    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1087      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1088    </target>    </target>
1089    
   <!-- jsr166y -->  
   
1090    
1091    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1092    
1093      <target name="jsr166ycompile" depends="configure-compiler">
1094      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1095    
1096      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1139  Line 1104 
1104             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1105             includeAntRuntime="false"             includeAntRuntime="false"
1106             includeJavaRuntime="false"             includeJavaRuntime="false"
1107               encoding="ASCII"
1108             executable="${javac7}"             executable="${javac7}"
1109             fork="true">             fork="true">
1110    
# Line 1147  Line 1113 
1113        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1114        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1115        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1116      </javac>      </javac>
1117    </target>    </target>
1118    
1119      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1120      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1121        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1122        <manifest>        <manifest>
# Line 1163  Line 1124 
1124          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1125        </manifest>        </manifest>
1126      </jar>      </jar>
   
1127    </target>    </target>
1128    
1129      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1130      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1131      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1132    
# Line 1184  Line 1141 
1141               failonerror = "true">               failonerror = "true">
1142        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1143        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1144      </javadoc>      </javadoc>
1145    </target>    </target>
1146    
1147      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1148    
1149    <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">  
   
1150      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1151    </target>    </target>
1152    
1153      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1154      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1155    </target>    </target>
1156    
1157    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1158      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1159    </target>    </target>
1160    
1161    
1162    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1163    
1164      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1165      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1166    
1167      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1233  Line 1175 
1175             target="6"             target="6"
1176             includeAntRuntime="false"             includeAntRuntime="false"
1177             includeJavaRuntime="false"             includeJavaRuntime="false"
1178               encoding="ASCII"
1179             executable="${javac7}"             executable="${javac7}"
1180             fork="true">             fork="true">
1181    
# Line 1241  Line 1184 
1184        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1185        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1186        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1187      </javac>      </javac>
1188    </target>    </target>
1189    
1190      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1191      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1192        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1193        <manifest>        <manifest>
# Line 1257  Line 1195 
1195          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1196        </manifest>        </manifest>
1197      </jar>      </jar>
   
1198    </target>    </target>
1199    
1200      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1201      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1202      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1203    
# Line 1277  Line 1211 
1211               executable="${javadoc7}">               executable="${javadoc7}">
1212        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1213        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1214      </javadoc>      </javadoc>
1215    </target>    </target>
1216    
1217      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1218    
1219    <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">  
   
1220      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1221    </target>    </target>
1222    
1223      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1224      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1225    </target>    </target>
1226    
1227    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1228      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1229    </target>    </target>
1230    
1231    <!-- jsr166e -->  
1232      <!-- jsr166e (no longer maintained) -->
1233    
1234    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1235    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1236    
1237    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1238      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1239    
1240      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1334  Line 1255 
1255        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1256        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1257        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1258      </javac>      </javac>
1259    </target>    </target>
1260    
   <!-- jsr166e: find doclint errors -->  
1261    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1262      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1263    
1264      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1362  Line 1280 
1280        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1281        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1282        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1283      </javac>      </javac>
1284    </target>    </target>
1285    
1286      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1287      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1288        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1289        <manifest>        <manifest>
# Line 1378  Line 1291 
1291          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1292        </manifest>        </manifest>
1293      </jar>      </jar>
   
1294    </target>    </target>
1295    
1296      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1297      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1298      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1299    
# Line 1398  Line 1307 
1307               failonerror = "true">               failonerror = "true">
1308        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1309        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1310      </javadoc>      </javadoc>
1311    </target>    </target>
1312    
1313      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1314      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1315      <run-tck-tests      <run-tck-tests
1316        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1317        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1415  Line 1319 
1319        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1320    </target>    </target>
1321    
1322    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1323    
1324  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1325  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1437  Line 1340 
1340      </antcall>      </antcall>
1341    </target>    </target>
1342    
1343      <target name="jsr166e-test" depends="jsr166e-tck"/>
1344    
1345    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
   
   <target name="jsr166edist"  
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
1346    
1347    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1348      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1349    </target>    </target>
1350    
   
1351    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1352            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1353      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1354    </target>    </target>
1355    
1356    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1357      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1358    </target>    </target>
1359    
# Line 1481  Line 1374 
1374    </target>    </target>
1375    
1376    
1377    <!-- ==============================================================
1378      Experimental errorprone support - http://errorprone.info
1379    =================================================================== -->
1380      <target name="errorprone"
1381              depends="clean, configure-compiler"
1382              description="Run errorprone over jsr166 source code (experimental)">
1383    
1384        <local name="destdir"/>
1385        <property name="destdir" value="${build.classes.dir}/java.base"/>
1386        <mkdir dir="${destdir}"/>
1387    
1388        <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          <include name="**/*.java"/>
1401          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.21.jar"/>
1402          <compilerarg value="-Xplugin:ErrorProne
1403                              -Xep:IdentityBinaryExpression:WARN
1404                              -Xep:MissingOverride:OFF
1405                              -Xep:MixedArrayDimensions:WARN
1406                              -Xep:RemoveUnusedImports:ERROR
1407                              -Xep:ClassName:ERROR
1408                              -Xep:MultipleTopLevelClasses:ERROR
1409                              -Xep:EmptyIf:ERROR
1410                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1411                              -Xep:RedundantThrows:ERROR
1412                              -Xep:MethodCanBeStatic:WARN"/>
1413          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1414          <compilerarg value="-Xprefer:source"/>
1415          <compilerarg value="-XDignore.symbol.file=true"/>
1416          <compilerarg value="-Xlint:all"/>
1417          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1418          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1419          <compilerarg line="${build.args}"/>
1420        </javac>
1421    
1422        <jar destfile="${product.jar}">
1423          <fileset dir="${destdir}"/>
1424        </jar>
1425    
1426        <run-tck-tests
1427          target="${build.main.java.version}"
1428          workdir="${build.dir}"
1429          classes="${product.jar}">
1430          <javac-elements>
1431            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.21.jar"/>
1432            <compilerarg value="-Xplugin:ErrorProne
1433                                -Xep:IdentityBinaryExpression:WARN
1434                                -Xep:BoxedPrimitiveConstructor:OFF
1435                                -Xep:HashtableContains:OFF
1436                                -Xep:ModifyingCollectionWithItself:OFF
1437                                -Xep:MissingOverride:OFF
1438                                -Xep:MixedArrayDimensions:WARN
1439                                -Xep:RemoveUnusedImports:ERROR
1440                                -Xep:ClassName:ERROR
1441                                -Xep:MultipleTopLevelClasses:ERROR
1442                                -Xep:EmptyIf:ERROR
1443                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1444                                -Xep:RedundantThrows:ERROR
1445                                -Xep:MethodCanBeStatic:WARN"/>
1446            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1447          </javac-elements>
1448        </run-tck-tests>
1449      </target>
1450    
1451    
1452    <!-- ==============================================================
1453      Running guava tests against jsr166 code
1454    =================================================================== -->
1455    
1456    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1457    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1458    <!-- <property name="guava.version" value="21.0"/> -->
1459    
1460    <!-- HOWTO debug print a path id -->
1461    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1462    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1463    
1464    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1465    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1466    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1467    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1468    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1469    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1470    
1471    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1472    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1473    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1474    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1475    
1476    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1477    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1478    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1479    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1480    
1481    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1482    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1483    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1484    
1485      <target name="init-ivy">
1486        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1487             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1488        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1489                 classpath="${build.dir}/ivy.jar"/>
1490      </target>
1491    
1492      <target name="guava-tests" depends="jar, init-ivy"
1493              description="Guava tests run against jsr166 collections">
1494        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1495        <mkdir dir="${guava.dir}"/>
1496        <ivy:retrieve pathid="guava.testlib.classpath"
1497          type="jar,bundle" inline="true" conf="default,master"
1498          pattern="${guava.dir}/[artifact].[ext]"
1499          organisation="com.google.guava" module="guava-testlib"/>
1500        <property name="guava.version" value="21.0"/>
1501        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1502             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1503        <junit printsummary="true" showoutput="true" haltonfailure="true"
1504               jvm="${build.main.java}" fork="true">
1505          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1506          <formatter type="brief"/>
1507          <classpath>
1508            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1509            <path refid="guava.testlib.classpath"/>
1510          </classpath>
1511    
1512          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1513          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1514        </junit>
1515      </target>
1516    
1517  </project>  </project>

Legend:
Removed from v.1.212  
changed lines
  Added in v.1.252

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