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

Diff of /jsr166/build.xml

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

revision 1.223 by jsr166, Thu Nov 24 01:53:50 2016 UTC revision 1.300 by jsr166, Sat Jul 13 18:31:40 2019 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"
3      xmlns:unless="ant:unless"
4      xmlns:ivy="antlib:org.apache.ivy.ant">
5    
6    <description>    <description>
7  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 17  Line 19 
19    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
20    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
21    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
   $HOME/jdk/jdk7  
22    $HOME/jdk/jdk8    $HOME/jdk/jdk8
23    $HOME/jdk/jdk9    $HOME/jdk/jdk9
24      $HOME/jdk/jdk10
25      $HOME/jdk/jdk11
26      $HOME/jdk/jdk12
27      $HOME/jdk/jdk13
28      $HOME/jdk/jdk14
29    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  
30    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
31    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
32      $HOME/jdk/src/jdk10
33      $HOME/jdk/src/jdk11
34      $HOME/jdk/src/jdk12
35      $HOME/jdk/src/jdk13
36      $HOME/jdk/src/jdk14
37    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
38    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
39    
40    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
41    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
42    for $N in 6 7 8 9 ...    for $N in 8 .. 14 ...
43    
44    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.  
45  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
46    </description>    </description>
47    
# Line 52  Line 59 
59    
60    
61    <!-- Compilation options -->    <!-- Compilation options -->
   <property name="build.sourcelevel"    value="6"/>  
62    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
63    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
64    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
# Line 63  Line 69 
69    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
70    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
71    <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"/>  
72    
73    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
74    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
# Line 104  Line 109 
109      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
110        unless:set="have.java.base"/>        unless:set="have.java.base"/>
111      <local name="modules"/>      <local name="modules"/>
112      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
113      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
114      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
115      <path id="bootclasspath@{v}" unless:set="modules">      <path id="bootclasspath@{v}" unless:set="modules">
# Line 134  Line 139 
139    <defjdklocations v="7"/>    <defjdklocations v="7"/>
140    <defjdklocations v="8"/>    <defjdklocations v="8"/>
141    <defjdklocations v="9"/>    <defjdklocations v="9"/>
142      <defjdklocations v="10"/>
143      <defjdklocations v="11"/>
144      <defjdklocations v="12"/>
145      <defjdklocations v="13"/>
146      <defjdklocations v="14"/>
147    
148    <!-- Source locations -->    <!-- Source locations -->
149    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 143  Line 153 
153    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
154    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
155    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
156      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
157      <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
158      <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
159      <property name="jtreg13.src.dir"      location="${test.src.dir}/jtreg"/>
160      <property name="jtreg14.src.dir"      location="${test.src.dir}/jtreg"/>
161    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
162    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
163    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 182  Line 197 
197    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
198    
199    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
200    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
201    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java5.docroot.url"  value="https://docs.oracle.com/javase/1.5.0/docs"/>
202    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java6.docroot.url"  value="https://docs.oracle.com/javase/6/docs"/>
203    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java7.docroot.url"  value="https://docs.oracle.com/javase/7/docs"/>
204    <!-- The expected canonical location does not yet exist as of 2016-04 -->    <property name="java8.docroot.url"  value="https://docs.oracle.com/javase/8/docs"/>
205    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <property name="java9.docroot.url"  value="https://docs.oracle.com/javase/9/docs"/>
206    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>    <property name="java10.docroot.url" value="https://docs.oracle.com/javase/10/docs"/>
207    <!-- Default jdk doc location (latest stable release seems best) -->    <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
208    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
209      <!-- The location of jdk early access docs (RIP) -->
210      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
211      <!-- <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/> -->
212      <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
213    <!--   <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
214      <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/>
215      <property name="java14.docroot.url" value="https://download.java.net/java/early_access/jdk14/docs"/>
216      <!-- Default jdk doc location (latest stable LTS release seems best) -->
217      <property name="java.docroot.url"   value="${java11.docroot.url}"/>
218    
219    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
220    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 198  Line 222 
222    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
223    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
224    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
225      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
226      <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
227      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
228      <property name="java13.api.url"     value="${java13.docroot.url}/api/"/>
229      <property name="java14.api.url"     value="${java14.docroot.url}/api/"/>
230    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
231    
232    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 230  Line 259 
259    
260      <local name="modules"/>      <local name="modules"/>
261      <condition property="modules">      <condition property="modules">
262        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
263        </condition>
264    
265        <local name="use-doclint"/>
266        <condition property="use-doclint">
267          <not> <equals arg1="@{target}" arg2="7"/> </not>
268      </condition>      </condition>
269    
270      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
# Line 252  Line 286 
286        <include name="*.java"/>        <include name="*.java"/>
287        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
288        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
289          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
290        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
291        <compilerarg line="--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
292        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
293        <javac-elements/>        <javac-elements/>
294    
# Line 264  Line 299 
299            jvm="${java@{target}}"            jvm="${java@{target}}"
300            fork="true">            fork="true">
301          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
302          <jvmarg line="--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
303            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
304            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
305            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
306            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
307            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
308          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
309          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
310          <jvmarg line="${vmoptions}" if:set="vmoptions"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
# Line 286  Line 326 
326    </macrodef>    </macrodef>
327    
328    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
329    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
330      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
331        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
332      </patternset>    <macrodef name="defjtregtests">
333    </fileset>      <attribute name="v"/>
334        <sequential>
335    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
336      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
337        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
338        <exclude name="**/SpliteratorCharacteristics.java"/>          </patternset>
339        <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->        </fileset>
340        <exclude name="**/GCDuringIteration.java"/>      </sequential>
341      </patternset>    </macrodef>
   </fileset>  
342    
343    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="14"/>
344      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="13"/>
345        <include name="**/*.java"/>    <defjtregtests v="12"/>
346      </patternset>    <defjtregtests v="11"/>
347    </fileset>    <defjtregtests v="10"/>
348      <defjtregtests v="9"/>
349      <defjtregtests v="8"/>
350      <defjtregtests v="7"/>
351    
352    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
353    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
354    
355    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
356      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->      <!-- ant -Djtreg11.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="source" default="7"/>  
357      <attribute name="target"/>      <attribute name="target"/>
358      <attribute name="workdir"/>      <attribute name="workdir"/>
359      <attribute name="classes"/>      <attribute name="classes"/>
360        <attribute name="verbose" default="${jtreg.verbose}"/>
361      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
362        <element name="jtreg-elements" optional="true"/>
363    
364      <sequential>      <sequential>
365    
# Line 325  Line 368 
368    
369      <local name="modules"/>      <local name="modules"/>
370      <condition property="modules">      <condition property="modules">
371        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
372      </condition>      </condition>
373    
374      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
# Line 334  Line 377 
377             workDir="@{workdir}/JTwork">             workDir="@{workdir}/JTwork">
378        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
379        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
380        <arg value="-javacoptions:--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
381        <arg value="-vmoptions:--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>        <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
382        <arg value="-agentvm"/>        <arg value="-agentvm"/>
383        <arg value="-noreport"/>        <arg value="-noreport"/>
384        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:@{verbose}"/>
385        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
386        <arg value="-automatic"/>        <arg value="-automatic"/>
387        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
388        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
389        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
390          <jtreg-elements/>
391      </jtreg>      </jtreg>
392      </sequential>      </sequential>
393    </macrodef>    </macrodef>
# Line 354  Line 398 
398    </path>    </path>
399    
400    <!-- Support @jls tag, used in jdk8+ javadoc -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
401      <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
402    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
403    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
404    
405    <!-- Main targets -->    <!-- Main targets -->
406    
407    <property name="build.main.java.version" value="9"/>    <!-- Default values: may seem strange ... -->
408      <!-- At runtime, target latest LTS, i.e. jdk11 -->
409      <!-- But at build time, target jdk9, for maximal binary portability -->
410      <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
411        o override-methods=summary
412        o {@systemProperty ...}
413        o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
414        o 8202628: javadoc generates bad links in TestModules.java
415        -->
416      <property name="java.runtime.target" value="11"/>
417      <property name="build.main.java" value="${java11}"/>
418    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
419      <property name="build.main.javadoc" value="${javadoc12}"/>
420      <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
421    
422    <target name="dists"    <target name="dists"
423            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
424            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
425              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
426    
427    <target name="compile"    <target name="compile"
428            depends="configure-compiler"            depends="configure-compiler"
429            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
430    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
431      <local name="destdir"/>      <local name="destdir"/>
432      <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"/>  
433    
434      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
435    
# Line 397  Line 446 
446             fork="true">             fork="true">
447    
448        <include name="**/*.java"/>        <include name="**/*.java"/>
449        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
450        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
451        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
452        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all,-removal"/>
453          <compilerarg line="--doclint-format html5"/>
454          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
455          <compilerarg value="-Xdoclint/package:java.util.*"/>
456        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
457        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
458        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
459    
# Line 434  Line 485 
485      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
486      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
487    
488  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->  <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
489  <!--  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" -->
490    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
491    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
492    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
493      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
494               packagenames="none"               packagenames="none"
495               link="${java9.api.url}"               link="${java.api.url}"
496               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
497               access="${build.javadoc.access}"               access="${build.javadoc.access}"
498               sourcepath="${src.dir}"               sourcepath="${src.dir}"
499               classpath=""               classpath=""
500               executable="${javadoc9}">               source="${build.main.javadoc.source}"
501                 executable="${build.main.javadoc}">
502    <!-- TODO: JDK-8214571 failonerror = "true" -->
503        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
504          <include name="**/*.java"/>          <include name="**/*.java"/>
505        </fileset>        </fileset>
506        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
507        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
508        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
509        <arg value="-Xmodule:java.base"/>        <arg value="-html5"/>
510        <arg value="-tag"/>        <arg value="--patch-module=java.base=${src.dir}"/>
511        <arg value="${javadoc.jls.option}"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
512  <!-- @apiNote currently unused -->  <!-- TODO: - -frames no longer a supported option in jdk13+ -->
513  <!--       <arg value="-tag"/> -->        <arg value="--frames"/>
514  <!--       <arg value="apiNote:a:API Note:"/> -->        <arg value="--override-methods=summary"/>
515        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
516        <arg value="implSpec:a:Implementation Requirements:"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
517        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
518        <arg value="implNote:a:Implementation Note:"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
519  <!-- tags added in jdk9: currently unused -->  <!-- tags added in jdk9: currently unused -->
520  <!--       <arg value="-tag"/> -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
521  <!--       <arg value="revised:X"/> -->  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
 <!--       <arg value="-tag"/> -->  
 <!--       <arg value="spec:X"/> -->  
522      </javadoc>      </javadoc>
523    </target>    </target>
524    
# Line 474  Line 528 
528            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
529    
530    
   <target name="release"  
           depends="dist"  
           description="Puts entire CVS tree, plus distribution productions, in a jar">  
   
     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>  
   
     <jar basedir="${basedir}" destfile="${release.jar}">  
       <!-- <exclude name="build/**"/> -->  
       <exclude name="${release.jar}"/>  
       <exclude name="user.properties"/>  
       <exclude name="etc/notes/**"/>  
       <exclude name="src/emulation/**"/>  
       <exclude name="**/SyntaxTest.java"/>  
       <exclude name="**/SuperfluousAbstract.java"/>  
       <manifest>  
         <attribute name="Built-By" value="${user.name}"/>  
         <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>  
       </manifest>  
     </jar>  
   </target>  
   
   
531    <target name="clean"    <target name="clean"
532            description="Removes all build products">            description="Removes all build products">
   
533      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
534    </target>    </target>
535    
536    
537    <target name="dist-clean"    <target name="dist-clean"
538            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
539      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
540      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
541    </target>    </target>
542    
543    
# Line 528  Line 556 
556            description="Runs tck tests for src/main directly">            description="Runs tck tests for src/main directly">
557    
558      <run-tck-tests      <run-tck-tests
559        target="${build.main.java.version}"        target="${java.runtime.target}"
560        workdir="${build.dir}"        workdir="${build.dir}"
561        classes="${product.jar}"/>        classes="${product.jar}">
562          <javac-elements>
563            <compilerarg value="-Werror"/>
564          </javac-elements>
565        </run-tck-tests>
566    </target>    </target>
567    
568    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 558  Line 590 
590            depends="jar"            depends="jar"
591            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
592      <run-jtreg-tests      <run-jtreg-tests
593         target="${build.main.java.version}"         target="${java.runtime.target}"
594         workdir="${build.dir}"         workdir="${build.dir}"
595         classes="${product.jar}"/>         classes="${product.jar}"/>
596    </target>    </target>
597    
598    <target name="test"    <target name="test"
599            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
600            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
601    
602      <target name="test-version-permutations"
603              depends="test9, test10, test11, test12, test13, test14, test9-11, test9-12, test9-13, test9-14, clean, test, docs">
604    </target>    </target>
605    
606  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->    <target name="test9">
607        <antcall target="clean"/>
608        <antcall>
609          <param name="java.runtime.target" value="9"/>
610          <param name="build.main.javac" value="${javac9}"/>
611          <param name="build.main.javadoc" value="${javadoc12}"/>
612          <param name="build.main.javadoc.source" value="9"/>
613          <target name="test"/>
614          <target name="docs"/>
615        </antcall>
616      </target>
617    
618  <!--     <antcall target="jtreg"> -->    <target name="test10">
619  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall target="clean"/>
620  <!--       <param name="build.main.javac" value="${javac8}"/> -->      <antcall>
621  <!--     </antcall> -->        <param name="java.runtime.target" value="10"/>
622          <param name="build.main.javac" value="${javac10}"/>
623          <param name="build.main.javadoc" value="${javadoc12}"/>
624          <param name="build.main.javadoc.source" value="10"/>
625          <target name="test"/>
626          <target name="docs"/>
627        </antcall>
628      </target>
629    
630  <!--   </target> -->    <target name="test11">
631        <antcall target="clean"/>
632        <antcall>
633          <param name="java.runtime.target" value="11"/>
634          <param name="build.main.javac" value="${javac11}"/>
635          <param name="build.main.javadoc" value="${javadoc12}"/>
636          <param name="build.main.javadoc.source" value="11"/>
637          <target name="test"/>
638          <target name="docs"/>
639        </antcall>
640      </target>
641    
642  <!--   <target name="test89" -->    <target name="test12">
643  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->      <antcall target="clean"/>
644        <antcall>
645          <param name="java.runtime.target" value="12"/>
646          <param name="build.main.javac" value="${javac12}"/>
647          <param name="build.main.javadoc" value="${javadoc12}"/>
648          <param name="build.main.javadoc.source" value="12"/>
649          <target name="test"/>
650          <target name="docs"/>
651        </antcall>
652      </target>
653    
654  <!--     <antcall target="clean"/> -->    <target name="test13">
655  <!--     <antcall target="test"> -->      <antcall target="clean"/>
656  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall>
657  <!--       <param name="build.main.javac" value="${javac8}"/> -->        <param name="java.runtime.target" value="13"/>
658  <!--     </antcall> -->        <param name="build.main.javac" value="${javac13}"/>
659          <param name="build.main.javadoc" value="${javadoc13}"/>
660          <param name="build.main.javadoc.source" value="13"/>
661          <target name="test"/>
662          <target name="docs"/>
663        </antcall>
664      </target>
665    
666  <!--     <antcall target="clean"/> -->    <target name="test14">
667  <!--     <antcall target="test"> -->      <antcall target="clean"/>
668  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
669  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="java.runtime.target" value="14"/>
670  <!--     </antcall> -->        <param name="build.main.javac" value="${javac14}"/>
671          <param name="build.main.javadoc" value="${javadoc14}"/>
672          <param name="build.main.javadoc.source" value="14"/>
673          <target name="test"/>
674          <target name="docs"/>
675        </antcall>
676      </target>
677    
678  <!--   </target> -->    <target name="test9-11">
679        <antcall target="clean"/>
680        <antcall>
681          <param name="java.runtime.target" value="11"/>
682          <param name="build.main.javac" value="${javac9}"/>
683          <param name="build.main.javadoc" value="${javadoc12}"/>
684          <param name="build.main.javadoc.source" value="9"/>
685          <target name="test"/>
686          <target name="docs"/>
687        </antcall>
688      </target>
689    
690      <target name="test9-12">
691        <antcall target="clean"/>
692        <antcall>
693          <param name="java.runtime.target" value="12"/>
694          <param name="build.main.javac" value="${javac9}"/>
695          <param name="build.main.javadoc" value="${javadoc12}"/>
696          <param name="build.main.javadoc.source" value="9"/>
697          <target name="test"/>
698          <target name="docs"/>
699        </antcall>
700      </target>
701    
702      <target name="test9-13">
703        <antcall target="clean"/>
704        <antcall>
705          <param name="java.runtime.target" value="13"/>
706          <param name="build.main.javac" value="${javac9}"/>
707          <param name="build.main.javadoc" value="${javadoc13}"/>
708          <param name="build.main.javadoc.source" value="9"/>
709          <target name="test"/>
710          <target name="docs"/>
711        </antcall>
712      </target>
713    
714      <target name="test9-14">
715        <antcall target="clean"/>
716        <antcall>
717          <param name="java.runtime.target" value="14"/>
718          <param name="build.main.javac" value="${javac9}"/>
719          <param name="build.main.javadoc" value="${javadoc14}"/>
720          <param name="build.main.javadoc.source" value="9"/>
721          <target name="test"/>
722          <target name="docs"/>
723        </antcall>
724      </target>
725    
726    
727    <target name="configure-compiler">    <target name="configure-compiler">
728      <fail message="ant version too old">      <fail message="ant version too old">
729        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
730      </fail>      </fail>
731    
732      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 618  Line 744 
744    </target>    </target>
745    
746    
   
   <!-- Various demos and test programs -->  
   
   
   <!-- description="Benchmark from Doug Lea's AQS paper" -->  
   <target name="loops" depends="configure-compiler">  
   
     <mkdir dir="${build.loops.dir}"/>  
   
     <javac srcdir="${loops.src.dir}"  
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
            target="${build.sourcelevel}"  
          encoding="ASCII"  
              fork="true">  
   
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
   
     </javac>  
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
   </target>  
   
   
747    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
748            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
749    
750      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
751    
# Line 663  Line 757 
757             includeAntRuntime="false"             includeAntRuntime="false"
758             includeJavaRuntime="false"             includeJavaRuntime="false"
759             encoding="ASCII"             encoding="ASCII"
760             executable="${javac9}"             executable="${build.main.javac}"
761             fork="true">             fork="true">
762    
763        <include name="*.java"/>        <include name="*.java"/>
# Line 671  Line 765 
765        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
766        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
767        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
768      </javac>      </javac>
   
769    </target>    </target>
770    
771    
# Line 699  Line 791 
791             encoding="ASCII"             encoding="ASCII"
792             executable="${javac8}"             executable="${javac8}"
793             fork="true">             fork="true">
   
794        <include name="**/*.java"/>        <include name="**/*.java"/>
795        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
796        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
797        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
798        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
799        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
800      </javac>      </javac>
801    </target>    </target>
802    
# Line 730  Line 820 
820             encoding="ASCII"             encoding="ASCII"
821             executable="${javac8}"             executable="${javac8}"
822             fork="true">             fork="true">
   
823        <include name="**/*.java"/>        <include name="**/*.java"/>
824        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
825        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
826        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
827        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
828        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
829      </javac>      </javac>
830    </target>    </target>
831    
# Line 753  Line 841 
841          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
842        </manifest>        </manifest>
843      </jar>      </jar>
   
844    </target>    </target>
845    
846    
# Line 769  Line 856 
856          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
857          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
858          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
859            <compilerarg value="-Werror"/>
860        </javac-elements>        </javac-elements>
861      </run-tck-tests>      </run-tck-tests>
862    </target>    </target>
# Line 786  Line 874 
874    
875    <target name="4jdk8-test"    <target name="4jdk8-test"
876            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
877            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
878    
879    
880    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 803  Line 890 
890               access="${build.javadoc.access}"               access="${build.javadoc.access}"
891               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
892               classpath=""               classpath=""
893                 source="8"
894               executable="${javadoc8}"               executable="${javadoc8}"
895               failonerror = "true">               failonerror = "true">
896        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 810  Line 898 
898        </fileset>        </fileset>
899        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
900        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
901        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
902        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
903  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
904  <!--       <arg value="-tag"/> -->  <!-- @apiNote tag currently unused -->
905  <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->  <!--  <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
       <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;"/>  
906      </javadoc>      </javadoc>
907    </target>    </target>
908    
# Line 830  Line 914 
914    
915    <target name="4jdk8clean"    <target name="4jdk8clean"
916            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
917      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
918    </target>    </target>
919    
920    
# Line 848  Line 930 
930    </target>    </target>
931    
932    
933      <!-- jsr166 4jdk7 (no longer maintained) -->
934    
935    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
936      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
937    
938      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 878  Line 956 
956        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
957        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
958        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
959      </javac>      </javac>
960    </target>    </target>
961    
962    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
963      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
964    
965      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 909  Line 983 
983        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
984        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
985        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
986      </javac>      </javac>
987    </target>    </target>
988    
989      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
990      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
991        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
992        <manifest>        <manifest>
# Line 925  Line 994 
994          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
995        </manifest>        </manifest>
996      </jar>      </jar>
   
997    </target>    </target>
998    
999      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
1000      <run-tck-tests      <run-tck-tests
1001        target="7"        target="7"
1002        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 950  Line 1014 
1014          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
1015          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
1016          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
1017            <compilerarg value="-Werror"/>
1018        </javac-elements>        </javac-elements>
1019      </run-tck-tests>      </run-tck-tests>
1020    </target>    </target>
1021    
   
1022    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
1023    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
1024    
1025      <junit printsummary="true"      <junit printsummary="true"
1026             showoutput="true"             showoutput="true"
# Line 979  Line 1042 
1042    
1043        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
1044        </test>        </test>
   
1045      </junit>      </junit>
1046    </target>    </target>
1047    
1048    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
1049      <run-jtreg-tests      <run-jtreg-tests
1050         target="7"         target="7"
1051         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
1052         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
1053    </target>    </target>
1054    
1055      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1056    
1057    <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">  
   
1058      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1059      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1060    
# Line 1022  Line 1075 
1075      </javadoc>      </javadoc>
1076    </target>    </target>
1077    
1078      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1079    
1080    <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">  
   
1081      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1082    </target>    </target>
1083    
1084      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1085      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1086    </target>    </target>
1087    
1088      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1089      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1090    </target>    </target>
1091    
1092    
1093    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1094    
1095      <target name="jsr166xcompile" depends="configure-compiler">
1096      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1097    
1098      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1070  Line 1109 
1109             encoding="ASCII"             encoding="ASCII"
1110             executable="${javac7}"             executable="${javac7}"
1111             fork="true">             fork="true">
   
1112        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1113        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1114        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1115        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1116        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1117      </javac>      </javac>
1118    </target>    </target>
1119    
1120      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1121      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1122        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1123        <manifest>        <manifest>
# Line 1092  Line 1125 
1125          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1126        </manifest>        </manifest>
1127      </jar>      </jar>
   
1128    </target>    </target>
1129    
1130      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1131      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1132      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1133    
# Line 1113  Line 1142 
1142               failonerror = "true">               failonerror = "true">
1143        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1144        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1145      </javadoc>      </javadoc>
1146    </target>    </target>
1147    
1148      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1149    
1150    <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">  
   
1151      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1152    </target>    </target>
1153    
1154      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1155      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1156    </target>    </target>
1157    
1158    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1159      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1160    </target>    </target>
1161    
   <!-- jsr166y -->  
1162    
1163      <!-- jsr166y (no longer maintained) -->
1164    
1165    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1166      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1167    
1168      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1170  Line 1185 
1185        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1186        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1187        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1188      </javac>      </javac>
1189    </target>    </target>
1190    
1191      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1192      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1193        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1194        <manifest>        <manifest>
# Line 1186  Line 1196 
1196          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1197        </manifest>        </manifest>
1198      </jar>      </jar>
   
1199    </target>    </target>
1200    
1201      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1202      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1203      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1204    
# Line 1207  Line 1213 
1213               failonerror = "true">               failonerror = "true">
1214        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1215        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1216      </javadoc>      </javadoc>
1217    </target>    </target>
1218    
1219      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1220    
1221    <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">  
   
1222      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1223    </target>    </target>
1224    
1225      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1226      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1227    </target>    </target>
1228    
1229    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1230      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1231    </target>    </target>
1232    
1233    
1234    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1235    
1236      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1237      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1238    
1239      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1265  Line 1256 
1256        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1257        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1258        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1259      </javac>      </javac>
1260    </target>    </target>
1261    
1262      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1263      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1264        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1265        <manifest>        <manifest>
# Line 1281  Line 1267 
1267          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1268        </manifest>        </manifest>
1269      </jar>      </jar>
   
1270    </target>    </target>
1271    
1272      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1273      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1274      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1275    
# Line 1301  Line 1283 
1283               executable="${javadoc7}">               executable="${javadoc7}">
1284        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1285        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1286      </javadoc>      </javadoc>
1287    </target>    </target>
1288    
1289      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1290    
1291    <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">  
   
1292      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1293    </target>    </target>
1294    
1295      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1296      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1297    </target>    </target>
1298    
1299    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1300      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1301    </target>    </target>
1302    
1303    <!-- jsr166e -->  
1304      <!-- jsr166e (no longer maintained) -->
1305    
1306    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1307    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1308    
1309    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1310      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1311    
1312      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1358  Line 1327 
1327        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1328        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1329        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1330      </javac>      </javac>
1331    </target>    </target>
1332    
   <!-- jsr166e: find doclint errors -->  
1333    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1334      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1335    
1336      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1386  Line 1352 
1352        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1353        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1354        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1355      </javac>      </javac>
1356    </target>    </target>
1357    
1358      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1359      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1360        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1361        <manifest>        <manifest>
# Line 1402  Line 1363 
1363          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1364        </manifest>        </manifest>
1365      </jar>      </jar>
   
1366    </target>    </target>
1367    
1368      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1369      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1370      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1371    
# Line 1422  Line 1379 
1379               failonerror = "true">               failonerror = "true">
1380        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1381        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1382      </javadoc>      </javadoc>
1383    </target>    </target>
1384    
1385      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1386      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1387      <run-tck-tests      <run-tck-tests
1388        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1389        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1439  Line 1391 
1391        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1392    </target>    </target>
1393    
1394    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1395    
1396  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1397  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1461  Line 1412 
1412      </antcall>      </antcall>
1413    </target>    </target>
1414    
1415      <target name="jsr166e-test" depends="jsr166e-tck"/>
1416    
1417    <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"/>  
   
1418    
1419    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1420      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1421    </target>    </target>
1422    
   
1423    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1424            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1425      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1426    </target>    </target>
1427    
1428    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1429      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1430    </target>    </target>
1431    
1432    
1433  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1434    
1435    <target name="lint">  <!--   <target name="lint"> -->
1436      <antcall target="dists">  <!--     <antcall target="dists"> -->
1437        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1438      </antcall>  <!--     </antcall> -->
1439    </target>  <!--   </target> -->
1440    
1441  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1442    <target name="lint-private">    <target name="doclint-private">
1443      <antcall target="dist">      <antcall target="dist">
1444        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1445      </antcall>      </antcall>
1446    </target>    </target>
1447    
1448    
1449    <!-- ==============================================================
1450      Experimental errorprone support
1451      https://errorprone.info
1452      https://errorprone.info/docs/installation
1453      https://github.com/google/error-prone/issues/1143
1454    =================================================================== -->
1455      <path id="errorprone.processorpath.path">
1456        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1457        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1458        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1459        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1460      </path>
1461      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1462      <property name="errorprone.jsr166.user.flags" value=""/>
1463      <property name="errorprone.jsr166.flags"
1464                value="-Xep:HashtableContains:OFF
1465                       -Xep:JdkObsolete:OFF
1466                       -Xep:MissingOverride:OFF
1467                       -Xep:MissingFail:OFF
1468                       -Xep:ThreadPriorityCheck:OFF
1469                       -Xep:MixedArrayDimensions:ERROR
1470                       -Xep:RemoveUnusedImports:ERROR
1471                       -Xep:EmptyIf:ERROR
1472                       -Xep:MultipleTopLevelClasses:ERROR
1473                       -Xep:ClassName:ERROR
1474                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1475                       -Xep:RedundantThrows:ERROR
1476                       -Xep:IdentityBinaryExpression:WARN
1477                       -Xep:ConstructorInvokesOverridable:WARN
1478                       -Xep:MethodCanBeStatic:WARN
1479                       ${errorprone.jsr166.user.flags}"/>
1480      <!-- -Xep:WildcardImport:ERROR -->
1481      <property name="errorprone.jsr166.test.flags"
1482                value="-Xep:StringSplitter:OFF
1483                       -Xep:BoxedPrimitiveConstructor:OFF
1484                       -Xep:ModifyingCollectionWithItself:OFF"/>
1485      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1486      <target name="errorprone"
1487              depends="clean, configure-compiler"
1488              description="Run errorprone over jsr166 source code (experimental)">
1489    
1490        <local name="destdir"/>
1491        <property name="destdir" value="${build.classes.dir}/java.base"/>
1492        <mkdir dir="${destdir}"/>
1493    
1494        <javac srcdir="${src.dir}"
1495               destdir="${destdir}"
1496               debug="${build.debug}"
1497               debuglevel="${build.debuglevel}"
1498               deprecation="${build.deprecation}"
1499               classpath=""
1500               includeAntRuntime="false"
1501               includeJavaRuntime="false"
1502               encoding="ASCII"
1503               executable="${build.main.javac}"
1504               fork="true">
1505    
1506          <include name="**/*.java"/>
1507          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1508          <compilerarg value="-J--illegal-access=permit"/>
1509          <compilerarg value="-XDcompilePolicy=simple"/>
1510          <compilerarg value="-processorpath"/>
1511          <compilerarg pathref="errorprone.processorpath.path"/>
1512          <compilerarg value="-Xplugin:ErrorProne
1513                              ${errorprone.jsr166.flags}"/>
1514          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1515          <compilerarg value="-Xprefer:source"/>
1516          <compilerarg value="-XDignore.symbol.file=true"/>
1517          <compilerarg value="-Xlint:all"/>
1518          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1519          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1520          <compilerarg line="${build.args}"/>
1521        </javac>
1522    
1523        <jar destfile="${product.jar}">
1524          <fileset dir="${destdir}"/>
1525        </jar>
1526    
1527        <run-tck-tests
1528          target="${java.runtime.target}"
1529          workdir="${build.dir}"
1530          classes="${product.jar}">
1531          <javac-elements>
1532            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1533            <compilerarg value="-J--illegal-access=permit"/>
1534            <compilerarg value="-XDcompilePolicy=simple"/>
1535            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1536            <compilerarg value="-Xplugin:ErrorProne
1537                                ${errorprone.jsr166.flags}
1538                                ${errorprone.jsr166.test.flags}"/>
1539            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1540          </javac-elements>
1541        </run-tck-tests>
1542      </target>
1543    
1544      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1545      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1546      <target name="errorprone-jtreg"
1547              depends="jar"
1548              description="Run errorprone over jtreg tests (experimental)">
1549    
1550        <run-jtreg-tests
1551           target="${java.runtime.target}"
1552           workdir="${build.dir}"
1553           classes="${product.jar}"
1554           verbose="all">
1555          <jtreg-elements>
1556            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1557            <arg value="-javacoption:-processorpath"/>
1558            <arg value="-javacoption:${errorprone.processorpath}"/>
1559            <arg value="-javacoption:-Xplugin:ErrorProne
1560                                ${errorprone.jsr166.flags}
1561                                ${errorprone.jsr166.test.flags}
1562                                -Xep:MultipleTopLevelClasses:WARN
1563                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1564          </jtreg-elements>
1565        </run-jtreg-tests>
1566      </target>
1567    
1568    
1569    <!-- ==============================================================
1570      Running guava tests against jsr166 code
1571    =================================================================== -->
1572    
1573    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1574    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1575    <!-- <property name="guava.version" value="21.0"/> -->
1576    
1577    <!-- HOWTO debug print a path id -->
1578    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1579    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1580    
1581    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1582    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1583    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1584    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1585    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1586    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1587    
1588    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1589    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1590    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1591    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1592    
1593    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1594    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1595    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1596    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1597    
1598    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1599    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1600    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1601    
1602      <target name="init-ivy">
1603        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1604             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1605        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1606                 classpath="${build.dir}/ivy.jar"/>
1607      </target>
1608    
1609      <target name="guava-tests" depends="jar, init-ivy"
1610              description="Guava tests run against jsr166 collections">
1611        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1612        <mkdir dir="${guava.dir}"/>
1613        <ivy:retrieve pathid="guava.testlib.classpath"
1614          type="jar,bundle" inline="true" conf="default,master"
1615          pattern="${guava.dir}/[artifact].[ext]"
1616          organisation="com.google.guava" module="guava-testlib"/>
1617        <property name="guava.version" value="21.0"/>
1618        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1619             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1620        <junit printsummary="true" showoutput="true" haltonfailure="true"
1621               jvm="${build.main.java}" fork="true">
1622          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1623          <formatter type="brief"/>
1624          <classpath>
1625            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1626            <path refid="guava.testlib.classpath"/>
1627          </classpath>
1628    
1629          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1630          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1631        </junit>
1632      </target>
1633    
1634  </project>  </project>

Legend:
Removed from v.1.223  
changed lines
  Added in v.1.300

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