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

Diff of /jsr166/build.xml

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

revision 1.218, Sat Sep 10 04:06:10 2016 UTC revision 1.247, Fri Jun 16 21:30:00 2017 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage"  <project name="jsr166" default="usage"
2    xmlns:if="ant:if" xmlns:unless="ant:unless">    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 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 line="--patch-module 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 line="--patch-module 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 -->          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
280          <jvmarg line="${vmoptions}" if:set="vmoptions"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
# Line 285  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 294  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 311  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 328  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="-vmoptions:--patch-module 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 359  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 391  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 434  Line 452 
452    
453  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
454  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->  <!--  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}"
# Line 441  Line 462 
462               access="${build.javadoc.access}"               access="${build.javadoc.access}"
463               sourcepath="${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        <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 495  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 527  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 562  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 595  Line 618 
618    
619    <target name="configure-compiler">    <target name="configure-compiler">
620      <fail message="ant version too old">      <fail message="ant version too old">
621        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
622      </fail>      </fail>
623    
624      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 631  Line 652 
652        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
653             source="${build.sourcelevel}"             source="${build.sourcelevel}"
654             target="${build.sourcelevel}"             target="${build.sourcelevel}"
655             encoding="ASCII"
656               fork="true">               fork="true">
657    
658        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 642  Line 664 
664      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
665        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
666      </java>      </java>
   
667    </target>    </target>
668    
669    
670    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
671            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
672    
673      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
674    
# Line 658  Line 679 
679             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
680             includeAntRuntime="false"             includeAntRuntime="false"
681             includeJavaRuntime="false"             includeJavaRuntime="false"
682             executable="${javac9}"             encoding="ASCII"
683               executable="${build.main.javac}"
684             fork="true">             fork="true">
685    
686        <include name="*.java"/>        <include name="*.java"/>
# Line 666  Line 688 
688        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
689        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
690        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
691      </javac>      </javac>
   
692    </target>    </target>
693    
694    
# Line 691  Line 711 
711             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
712             includeAntRuntime="false"             includeAntRuntime="false"
713             includeJavaRuntime="false"             includeJavaRuntime="false"
714               encoding="ASCII"
715             executable="${javac8}"             executable="${javac8}"
716             fork="true">             fork="true">
   
717        <include name="**/*.java"/>        <include name="**/*.java"/>
718        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
719        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
720        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
721        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
722        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
723      </javac>      </javac>
724    </target>    </target>
725    
# Line 721  Line 740 
740             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
741             includeAntRuntime="false"             includeAntRuntime="false"
742             includeJavaRuntime="false"             includeJavaRuntime="false"
743               encoding="ASCII"
744             executable="${javac8}"             executable="${javac8}"
745             fork="true">             fork="true">
   
746        <include name="**/*.java"/>        <include name="**/*.java"/>
747        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
748        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
749        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
750        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
751        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
752      </javac>      </javac>
753    </target>    </target>
754    
# Line 746  Line 764 
764          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
765        </manifest>        </manifest>
766      </jar>      </jar>
   
767    </target>    </target>
768    
769    
# Line 762  Line 779 
779          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
780          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
781          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
782            <compilerarg value="-Werror"/>
783        </javac-elements>        </javac-elements>
784      </run-tck-tests>      </run-tck-tests>
785    </target>    </target>
# Line 779  Line 797 
797    
798    <target name="4jdk8-test"    <target name="4jdk8-test"
799            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
800            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
801    
802    
803    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 796  Line 813 
813               access="${build.javadoc.access}"               access="${build.javadoc.access}"
814               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
815               classpath=""               classpath=""
816                 source="8"
817               executable="${javadoc8}"               executable="${javadoc8}"
818               failonerror = "true">               failonerror = "true">
819        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 805  Line 823 
823        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
824        <arg value="-tag"/>        <arg value="-tag"/>
825        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
826        <arg value="-tag"/>  <!-- @apiNote currently unused -->
827        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
828    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
829        <arg value="-tag"/>        <arg value="-tag"/>
830        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
831        <arg value="-tag"/>        <arg value="-tag"/>
# Line 822  Line 841 
841    
842    <target name="4jdk8clean"    <target name="4jdk8clean"
843            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
844      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
845    </target>    </target>
846    
847    
# Line 840  Line 857 
857    </target>    </target>
858    
859    
860      <!-- jsr166 4jdk7 (no longer maintained) -->
861    
862    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
863      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
864    
865      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 860  Line 873 
873             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
874             includeAntRuntime="false"             includeAntRuntime="false"
875             includeJavaRuntime="false"             includeJavaRuntime="false"
876               encoding="ASCII"
877             executable="${javac7}"             executable="${javac7}"
878             fork="true">             fork="true">
879    
# Line 869  Line 883 
883        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
884        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
885        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
886      </javac>      </javac>
887    </target>    </target>
888    
889    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
890      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
891    
892      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 890  Line 900 
900             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
901             includeAntRuntime="false"             includeAntRuntime="false"
902             includeJavaRuntime="false"             includeJavaRuntime="false"
903               encoding="ASCII"
904             executable="${javac8}"             executable="${javac8}"
905             fork="true">             fork="true">
906    
# Line 899  Line 910 
910        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
911        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
912        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
913      </javac>      </javac>
914    </target>    </target>
915    
916      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
917      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
918        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
919        <manifest>        <manifest>
# Line 915  Line 921 
921          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
922        </manifest>        </manifest>
923      </jar>      </jar>
   
924    </target>    </target>
925    
926      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
927      <run-tck-tests      <run-tck-tests
928        target="7"        target="7"
929        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 940  Line 941 
941          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
942          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
943          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
944            <compilerarg value="-Werror"/>
945        </javac-elements>        </javac-elements>
946      </run-tck-tests>      </run-tck-tests>
947    </target>    </target>
948    
   
949    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
950    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
951    
952      <junit printsummary="true"      <junit printsummary="true"
953             showoutput="true"             showoutput="true"
# Line 969  Line 969 
969    
970        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
971        </test>        </test>
   
972      </junit>      </junit>
973    </target>    </target>
974    
975    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
976      <run-jtreg-tests      <run-jtreg-tests
977         target="7"         target="7"
978         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
979         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
980    </target>    </target>
981    
982      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
983    
984    <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">  
   
985      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
986      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
987    
# Line 1012  Line 1002 
1002      </javadoc>      </javadoc>
1003    </target>    </target>
1004    
1005      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1006    
1007    <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">  
   
1008      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1009    </target>    </target>
1010    
1011      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1012      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1013    </target>    </target>
1014    
1015      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1016      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1017    </target>    </target>
1018    
1019    
1020    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1021    
1022      <target name="jsr166xcompile" depends="configure-compiler">
1023      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1024    
1025      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1057  Line 1033 
1033             target="5"             target="5"
1034             includeAntRuntime="false"             includeAntRuntime="false"
1035             includeJavaRuntime="false"             includeJavaRuntime="false"
1036               encoding="ASCII"
1037             executable="${javac7}"             executable="${javac7}"
1038             fork="true">             fork="true">
   
1039        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1040        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1041        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1042        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1043        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1044      </javac>      </javac>
1045    </target>    </target>
1046    
1047      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1048      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1049        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1050        <manifest>        <manifest>
# Line 1081  Line 1052 
1052          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1053        </manifest>        </manifest>
1054      </jar>      </jar>
   
1055    </target>    </target>
1056    
1057      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1058      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1059      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1060    
# Line 1102  Line 1069 
1069               failonerror = "true">               failonerror = "true">
1070        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1071        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1072      </javadoc>      </javadoc>
1073    </target>    </target>
1074    
1075      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1076    
1077    <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">  
   
1078      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1079    </target>    </target>
1080    
1081      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1082      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1083    </target>    </target>
1084    
1085    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1086      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1087    </target>    </target>
1088    
   <!-- jsr166y -->  
   
1089    
1090    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1091    
1092      <target name="jsr166ycompile" depends="configure-compiler">
1093      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1094    
1095      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1150  Line 1103 
1103             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1104             includeAntRuntime="false"             includeAntRuntime="false"
1105             includeJavaRuntime="false"             includeJavaRuntime="false"
1106               encoding="ASCII"
1107             executable="${javac7}"             executable="${javac7}"
1108             fork="true">             fork="true">
1109    
# Line 1158  Line 1112 
1112        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1113        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1114        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1115      </javac>      </javac>
1116    </target>    </target>
1117    
1118      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1119      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1120        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1121        <manifest>        <manifest>
# Line 1174  Line 1123 
1123          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1124        </manifest>        </manifest>
1125      </jar>      </jar>
   
1126    </target>    </target>
1127    
1128      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1129      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1130      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1131    
# Line 1195  Line 1140 
1140               failonerror = "true">               failonerror = "true">
1141        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1142        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1143      </javadoc>      </javadoc>
1144    </target>    </target>
1145    
1146      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1147    
1148    <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">  
   
1149      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1150    </target>    </target>
1151    
1152      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1153      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1154    </target>    </target>
1155    
1156    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1157      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1158    </target>    </target>
1159    
1160    
1161    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1162    
1163      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1164      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1165    
1166      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1244  Line 1174 
1174             target="6"             target="6"
1175             includeAntRuntime="false"             includeAntRuntime="false"
1176             includeJavaRuntime="false"             includeJavaRuntime="false"
1177               encoding="ASCII"
1178             executable="${javac7}"             executable="${javac7}"
1179             fork="true">             fork="true">
1180    
# Line 1252  Line 1183 
1183        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1184        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1185        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1186      </javac>      </javac>
1187    </target>    </target>
1188    
1189      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1190      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1191        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1192        <manifest>        <manifest>
# Line 1268  Line 1194 
1194          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1195        </manifest>        </manifest>
1196      </jar>      </jar>
   
1197    </target>    </target>
1198    
1199      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1200      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1201      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1202    
# Line 1288  Line 1210 
1210               executable="${javadoc7}">               executable="${javadoc7}">
1211        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1212        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1213      </javadoc>      </javadoc>
1214    </target>    </target>
1215    
1216      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1217    
1218    <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">  
   
1219      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1220    </target>    </target>
1221    
1222      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1223      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1224    </target>    </target>
1225    
1226    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1227      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1228    </target>    </target>
1229    
1230    <!-- jsr166e -->  
1231      <!-- jsr166e (no longer maintained) -->
1232    
1233    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1234    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1235    
1236    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1237      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1238    
1239      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1345  Line 1254 
1254        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1255        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1256        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1257      </javac>      </javac>
1258    </target>    </target>
1259    
   <!-- jsr166e: find doclint errors -->  
1260    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1261      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1262    
1263      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1373  Line 1279 
1279        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1280        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1281        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1282      </javac>      </javac>
1283    </target>    </target>
1284    
1285      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1286      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1287        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1288        <manifest>        <manifest>
# Line 1389  Line 1290 
1290          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1291        </manifest>        </manifest>
1292      </jar>      </jar>
   
1293    </target>    </target>
1294    
1295      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1296      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1297      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1298    
# Line 1409  Line 1306 
1306               failonerror = "true">               failonerror = "true">
1307        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1308        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1309      </javadoc>      </javadoc>
1310    </target>    </target>
1311    
1312      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1313      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1314      <run-tck-tests      <run-tck-tests
1315        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1316        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1426  Line 1318 
1318        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1319    </target>    </target>
1320    
1321    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1322    
1323  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1324  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1448  Line 1339 
1339      </antcall>      </antcall>
1340    </target>    </target>
1341    
1342      <target name="jsr166e-test" depends="jsr166e-tck"/>
1343    
1344    <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"/>  
   
1345    
1346    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1347      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1348    </target>    </target>
1349    
   
1350    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1351            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1352      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1353    </target>    </target>
1354    
1355    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1356      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1357    </target>    </target>
1358    
# Line 1492  Line 1373 
1373    </target>    </target>
1374    
1375    
1376    <!-- ==============================================================
1377      Experimental errorprone support - http://errorprone.info
1378      You may need to bring your own errorprone jar.
1379    =================================================================== -->
1380      <target name="errorprone"
1381              depends="clean, configure-compiler"
1382              description="Run errorprone over jsr166 source code (experimental)">
1383    
1384        <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 value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1402          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1403          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1404          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1405          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1406          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1407          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1408          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1409          <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1410          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1411          <compilerarg value="-Xplugin:ErrorProne
1412                              -Xep:IdentityBinaryExpression:WARN
1413                              -Xep:MissingOverride:OFF
1414                              -Xep:MixedArrayDimensions:WARN
1415                              -Xep:RemoveUnusedImports:ERROR
1416                              -Xep:ClassName:ERROR
1417                              -Xep:MultipleTopLevelClasses:ERROR
1418                              -Xep:EmptyIf:ERROR
1419                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1420                              -Xep:ArgumentParameterSwap:ERROR
1421                              -Xep:RedundantThrows:ERROR
1422                              -Xep:MethodCanBeStatic:WARN"/>
1423          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1424          <compilerarg value="-Xprefer:source"/>
1425          <compilerarg value="-XDignore.symbol.file=true"/>
1426          <compilerarg value="-Xlint:all"/>
1427          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1428          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1429          <compilerarg line="${build.args}"/>
1430        </javac>
1431    
1432        <jar destfile="${product.jar}">
1433          <fileset dir="${destdir}"/>
1434        </jar>
1435    
1436        <run-tck-tests
1437          target="${build.main.java.version}"
1438          workdir="${build.dir}"
1439          classes="${product.jar}">
1440          <javac-elements>
1441            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1442            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1443            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1444            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1445            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1446            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1447            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1448            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1449            <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1450            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1451            <compilerarg value="-Xplugin:ErrorProne
1452                                -Xep:IdentityBinaryExpression:WARN
1453                                -Xep:BoxedPrimitiveConstructor:OFF
1454                                -Xep:HashtableContains:OFF
1455                                -Xep:ModifyingCollectionWithItself:OFF
1456                                -Xep:MissingOverride:OFF
1457                                -Xep:MixedArrayDimensions:WARN
1458                                -Xep:RemoveUnusedImports:ERROR
1459                                -Xep:ClassName:ERROR
1460                                -Xep:MultipleTopLevelClasses:ERROR
1461                                -Xep:EmptyIf:ERROR
1462                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1463                                -Xep:ArgumentParameterSwap:ERROR
1464                                -Xep:RedundantThrows:ERROR
1465                                -Xep:MethodCanBeStatic:WARN"/>
1466            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1467          </javac-elements>
1468        </run-tck-tests>
1469      </target>
1470    
1471    
1472    <!-- ==============================================================
1473      Running guava tests against jsr166 code
1474    =================================================================== -->
1475    
1476    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1477    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1478    <!-- <property name="guava.version" value="21.0"/> -->
1479    
1480    <!-- HOWTO debug print a path id -->
1481    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1482    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1483    
1484    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1485    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1486    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1487    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1488    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1489    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1490    
1491    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1492    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1493    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1494    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1495    
1496    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1497    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1498    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1499    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1500    
1501    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1502    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1503    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1504    
1505      <target name="init-ivy">
1506        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1507             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1508        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1509                 classpath="${build.dir}/ivy.jar"/>
1510      </target>
1511    
1512      <target name="guava-tests" depends="jar, init-ivy"
1513              description="Guava tests run against jsr166 collections">
1514        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1515        <mkdir dir="${guava.dir}"/>
1516        <ivy:retrieve pathid="guava.testlib.classpath"
1517          type="jar,bundle" inline="true" conf="default,master"
1518          pattern="${guava.dir}/[artifact].[ext]"
1519          organisation="com.google.guava" module="guava-testlib"/>
1520        <property name="guava.version" value="21.0"/>
1521        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1522             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1523        <junit printsummary="true" showoutput="true" haltonfailure="true"
1524               jvm="${build.main.java}" fork="true">
1525          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1526          <formatter type="brief"/>
1527          <classpath>
1528            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1529            <path refid="guava.testlib.classpath"/>
1530          </classpath>
1531    
1532          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1533          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1534        </junit>
1535      </target>
1536    
1537  </project>  </project>

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

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8